libfuoten  0.8.1
Qt based library to access the ownCloud/Nextcloud News App API
libfuoten

A Qt based library to provide access to the ownCloud / Nextcloud News App API.

libfuoten implements the complete New App REST API v1.2 and provides interfaces to create Qt applications talking to an ownCloud/Nextcloud server with News App enabled. Beside the API implementation classes there are classes to support local storage and models to represent the stored data. Helper classes make it easier to synchronize local storage with the remote server.

Have a look at the roadmap for further information about the development plans. Find out more in the API documentation of libfuoten.

Features

  • account validation (request version, status and user)
  • folder management (synchronization, adding, deleting, renaming, marking as read)
  • folder list model and filtering
  • feeds management (synchronization, adding, deleting, renaming, marking as read, moving)
  • feeds list model and filtering
  • articles management (synchronization, marking as read/unread/starred/unstarred)
  • articles list model and filtering
  • synchronization class
  • SQLite storage class

Contributing

The source code is available on Github, feel free to clone or branch according to the LGPLv3. Translation is done on Transifex.

Getting libfuoten

Building libfuoten

Either clone the git repository or download one of the release tarballs. zlib, pkg-config and Qt 5.6 or newer are required to build libfuoten as well as the following Qt modules: Qt5Core, Qt5Network and Qt5Sql.

Install dependencies

Install gcc, g++, qmake, make, zlib, Qt5Core, Qt5Network and Qt5Sql.

openSUSE

sudo zypper in gcc-++ make pkg-config zlib-devel libqt5-qtbase-common-devel libqt5-qtbase-devel libQt5Core-devel libQt5Network-devel libQt5Sql-devel

For creating documentation:

sudo zypper in doxygen libqt5-qtdoc-devel libqt5-qttools

Available qmake variables

  • INSTALL_PREFIX_DIR - defaults to QT_INSTALL_PREFIX
  • INSTALL_LIB_DIR - defaults to QT_INSTALL_LIBS
  • INSTALL_TRANSLATIONS_DIR - defaults to QT_INSTALL_TRANSLATIONS
  • INSTALL_HEADERS_DIR - defaults to QT_INSTALL_HEADERS
  • QHG_BIN_PATH - defaults to QT_INSTALL_BINS/qhelpgenerator - used by the qhpdoc target
  • QT_TAG_FILES_PATH - defaults to QT_INSTALL_DOCS - used to link API documentation

You can show the default values with qmake -query.

Available qmake CONFIG options

asan

CONFIG+=asan enables address sanitizer.

no_install_dev_files

CONFIG+=no_install_dev_files disables the installation of the header files.

Additional make targets

docs

Will create HTML and QCH API documentation files. Use the QHG_BIN_PATH variable to set a proper path to the qhelpgenerator executable to create the Qt Compiled Help files for use in Qt Creator. You can link Qt classes into the documentation by setting a valid path to tag files in the QT_TAG_FILES_PATH variable. If the necessary tag files are found, the documenation will automatically link to the appropriate Qt help page.

Get libfuoten and build it

On openSUSE qmake for qt5 is named qmake-qt5.

git clone https://github.com/Huessenbergnetz/libfuoten.git
cd libfuoten
mkdir build && cd build
qmake -r ..
make
sudo make install

## License

libfuoten - Qt based library to access the ownCloud/Nextcloud News App API
Copyright (C) 2016-2019 Hüssenbergnetz/Matthias Fehring
https://github.com/Huessenbergnetz/libfuoten
This library is free software: you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 3 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <http://www.gnu.org/licenses/>.