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/>.