{"id":23236767,"url":"https://github.com/pratikpc/rss-parser-cxx","last_synced_at":"2025-04-05T21:17:25.159Z","repository":{"id":125288850,"uuid":"369617665","full_name":"pratikpc/rss-parser-cxx","owner":"pratikpc","description":"A header only C++ RSS Parser library. Supports C++20 generators","archived":false,"fork":false,"pushed_at":"2021-06-07T10:12:50.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-02-12T00:38:43.910Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pratikpc.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-21T18:08:20.000Z","updated_at":"2021-06-07T10:12:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"a913c4bf-265e-400b-9fd9-334d16afac8b","html_url":"https://github.com/pratikpc/rss-parser-cxx","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pratikpc%2Frss-parser-cxx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pratikpc%2Frss-parser-cxx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pratikpc%2Frss-parser-cxx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pratikpc%2Frss-parser-cxx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pratikpc","download_url":"https://codeload.github.com/pratikpc/rss-parser-cxx/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247399897,"owners_count":20932881,"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":[],"created_at":"2024-12-19T04:12:38.978Z","updated_at":"2025-04-05T21:17:25.142Z","avatar_url":"https://github.com/pratikpc.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RSS Parser CXX\n\n## Usage\n\n```cpp\n#include \u003cpc/rss/parser.hpp\u003e\n\nint main()\n{\n   namespace rss = pc::rss;\n\n   rss::Parser parse{str};\n   if (!parse)\n   {\n      std::cout \u003c\u003c \"Load failed\";\n      return EXIT_FAILURE;\n   }\n   auto const channel = parse.Channel();\n   if (!channel)\n   {\n      std::cout \u003c\u003c \"Parsing failed\";\n      return EXIT_FAILURE;\n   }\n\n   for (rss::Item const\u0026 item : channel.items())\n   {\n      auto const title = item.title();\n      if (title)\n         std::cout \u003c\u003c \"Title : \" \u003c\u003c *title \u003c\u003c \"\\n\";\n      auto const description = item.description();\n      if (description)\n         std::cout \u003c\u003c \"Description : \" \u003c\u003c *description \u003c\u003c \"\\n\";\n\n      for (std::string const\u0026 category : item.category())\n         std::cout \u003c\u003c \"Category : \" \u003c\u003c category \u003c\u003c \"\\n\";\n      std::cout \u003c\u003c \"================================\\n\\n\";\n   }\n   auto const image = channel.image();\n   if (image)\n   {\n      std::cout \u003c\u003c \"Image : \" \u003c\u003c image.link() \u003c\u003c \"\\n\";\n      std::cout \u003c\u003c \"================================\\n\\n\";\n   }\n\n   std::cout \u003c\u003c \"Skip Hours\\n\";\n   for (unsigned int const hour : channel.skipHours())\n      std::cout \u003c\u003c \"Skip this hour : \" \u003c\u003c hour \u003c\u003c \"\\n\";\n   std::cout \u003c\u003c \"================================\\n\\n\";\n\n   std::cout \u003c\u003c \"Skip Days\\n\";\n   for (std::string const\u0026 day : channel.skipDays())\n      std::cout \u003c\u003c \"Skip this day : \" \u003c\u003c day \u003c\u003c \"\\n\";\n   std::cout \u003c\u003c \"================================\\n\\n\";\n\n   return EXIT_SUCCESS;\n}\n```\n\n## Depends on\n- [pugixml](https://github.com/zeux/pugixml)  \nIt helps us parse RSS documents","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpratikpc%2Frss-parser-cxx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpratikpc%2Frss-parser-cxx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpratikpc%2Frss-parser-cxx/lists"}