{"id":17643790,"url":"https://github.com/vanniktech/vntrssreader","last_synced_at":"2025-07-19T10:33:01.915Z","repository":{"id":15254890,"uuid":"17983961","full_name":"vanniktech/VNTRSSReader","owner":"vanniktech","description":"C++ library built on top of Qt to consume RSS feeds","archived":false,"fork":false,"pushed_at":"2018-03-29T19:59:32.000Z","size":437,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-07T00:46:10.782Z","etag":null,"topics":["c-plus-plus","parser","qt","rss"],"latest_commit_sha":null,"homepage":"http://vanniktech.com/","language":"C++","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"abdallahha/abdallah","license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vanniktech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-03-21T15:19:49.000Z","updated_at":"2025-03-29T12:12:28.000Z","dependencies_parsed_at":"2022-08-03T05:15:29.487Z","dependency_job_id":null,"html_url":"https://github.com/vanniktech/VNTRSSReader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vanniktech/VNTRSSReader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2FVNTRSSReader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2FVNTRSSReader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2FVNTRSSReader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2FVNTRSSReader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vanniktech","download_url":"https://codeload.github.com/vanniktech/VNTRSSReader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vanniktech%2FVNTRSSReader/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265916045,"owners_count":23848668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","parser","qt","rss"],"created_at":"2024-10-23T09:42:53.797Z","updated_at":"2025-07-19T10:33:01.876Z","avatar_url":"https://github.com/vanniktech.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"VNTRSSReader\n============\n\nThis is a C++ library built on top of Qt, which allows you to consume RSS feeds, licensed under the GPL v2 terms. It is used in the [SpeedReader application](https://github.com/vanniktech/SpeedReader).\nIf you have any ideas on how to improve the library or its code, simply write an [email](mailto:niklas.baudy@vanniktech.de) to me or fork the library. If you have any problems or you have found any issues or bugs, feel free to report them.\n\n## Features\n- RSS v0.91, v1.0 and v2.0 are supported\n- ATOM v1.0 is supported\n- supports redirect urls\n- nearly every attribute of the channel and entry / item object's are available through the library\n- pubDate will be parsed conveniently into QDateTime\n- option to automatically download the images and provide them for the library user\n- variety of unit tests\n\n## Further plans\n- let me know if you have any\n\n## Sample Code\nIf the things below are not enough information, you can have a look at the Unit Tests to get a deeper understanding.\n\n**Class.h**\n```c++\n#include \u003cQObject\u003e\n\n#include \"vntrssreader.h\"\n#include \"vntrsschannel.h\"\n\nclass RSS : public QObject {\n    Q_OBJECT\n\npublic slots:\n    void loadedRSS(QList\u003cVNTRSSChannel*\u003e rssChannels);\n\npublic:\n    explicit Class(QObject *parent = 0);\n    ~Class();\n\n    void loadRSS(const QUrl \u0026url);\n    void loadRSS(const QList\u003cQUrl\u003e \u0026urls);\n\nprivate:\n    VNTRSSReader* mRSSReader;\n};\n```\n\n**Class.cpp**\n```c++\n#include \"class.h\"\n\n#include \u003cQDebug\u003e\n\nClass::Class(QObject *parent) : QObject(parent) {\n    mRSSReader = new VNTRSSReader();\n    QObject::connect(mRSSReader, SIGNAL(loadedRSS(QList\u003cVNTRSSChannel*\u003e)), this, SLOT(loadedRSS(QList\u003cVNTRSSChannel*\u003e)));\n\n    // Use this if you don't want to use a proxy\n    QNetworkProxy::setApplicationProxy(QNetworkProxy::NoProxy);\n\n    // Use this if you do want to use a specific proxy\n    QNetworkProxy proxy;\n    proxy.setType(QNetworkProxy::HttpProxy);\n    proxy.setHostName(\"proxy.example.com\");\n    proxy.setPort(1080);\n    proxy.setUser(\"username\");\n    proxy.setPassword(\"password\");\n    QNetworkProxy::setApplicationProxy(proxy);\n\n    // Use this if you want Qt to do the work and figure the proxy out\n    QNetworkProxyFactory::setUseSystemConfiguration(true);\n}\n\nClass::~Class() {\n    delete mRSSReader;\n}\n\nvoid Class::loadRSS(const QUrl \u0026url) {\n    mRSSReader-\u003eload(url);  // will automatically download the images. pass false as a second argument if you don't want that\n}\n\nvoid Class::loadRSS(const QList\u003cQUrl\u003e \u0026urls) {\n    mRSSReader-\u003eload(urls); // will automatically download the images. pass false as a second argument if you don't want that\n}\n\nvoid Class::loadedRSS(QList\u003cVNTRSSChannel*\u003e rssChannels) {\n    for (VNTRSSChannel* rssChannel : rssChannels) {\n        if (!rssChannel-\u003ehasError()) {\n            QList\u003cVNTRSSItem*\u003e items = rssChannel-\u003egetRSSItems();\n\n            for (VNTRSSItem* item : items) {\n                qDebug() \u003c\u003c item-\u003etoString();\n            }\n        } else {\n            qDebug() \u003c\u003c rssChannel-\u003egetErrorMessage();\n        }\n\n        delete rssChannel;\n    }\n}\n\n```\n\n## License\nGPL v2\n\nFor more information see the [LICENSE file](LICENSE).\n\nCopyright 2014-2015 Vanniktech - Niklas Baudy\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvanniktech%2Fvntrssreader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvanniktech%2Fvntrssreader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvanniktech%2Fvntrssreader/lists"}