{"id":15064626,"url":"https://github.com/viccarrasco/arssene","last_synced_at":"2026-01-18T00:21:02.389Z","repository":{"id":34880773,"uuid":"185990783","full_name":"viccarrasco/arssene","owner":"viccarrasco","description":"Simple RSS solution for ruby.","archived":false,"fork":false,"pushed_at":"2024-03-19T00:47:25.000Z","size":70,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-11T02:26:41.424Z","etag":null,"topics":["feed","rss","ruby-gem","ruby-on-rails"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/viccarrasco.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGE_LOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2019-05-10T13:12:00.000Z","updated_at":"2022-11-15T23:30:29.000Z","dependencies_parsed_at":"2024-10-13T00:21:05.786Z","dependency_job_id":null,"html_url":"https://github.com/viccarrasco/arssene","commit_stats":{"total_commits":44,"total_committers":3,"mean_commits":"14.666666666666666","dds":"0.36363636363636365","last_synced_commit":"0f850fa2d4c52c0035a79620f6c33b42f715b786"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viccarrasco%2Farssene","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viccarrasco%2Farssene/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viccarrasco%2Farssene/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viccarrasco%2Farssene/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/viccarrasco","download_url":"https://codeload.github.com/viccarrasco/arssene/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247295883,"owners_count":20915545,"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":["feed","rss","ruby-gem","ruby-on-rails"],"created_at":"2024-09-25T00:22:45.080Z","updated_at":"2026-01-18T00:21:02.358Z","avatar_url":"https://github.com/viccarrasco.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arssene\n\nSimple RSS solution for rails.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'arssene'\n```\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install arssene\n\n## Usage\n\n### Ping a website\n\nTo obtain the rss feed of a website, first you should ping the website.\n\n```ruby\nurl = \"https://www.theonion.com/\"\nrss = Arssene::Feed.ping(url)\n\nputs rss\n# =\u003e [ { feed: \"https://www.theonion.com/rss\"} ]\n```\n\nYou can also send an array of urls.\n\n```ruby\nurls = [\"http://www.lifehacker.com\", \"http://www.deadspin.com\", \"https://www.kotaku.com\"]\nrss = Arssene::Feed.ping(urls)\nputs rss\n# =\u003e\n#   [\n#     { feed: \"https://www.lifehacker.com/rss\" },\n#     { feed: \"http://www.deadspin.com/rss\" },\n#     { feed: \"http://www.kotaku.com/rss\"}\n#   ]\n\n```\n\nIf no valid feed was found, the result will be an empty array. If there's an error with the website or its feed, a response with an error will be issued.\n\n```ruby\nurl = \"http://www.anime-town.com\"\nrss = Arssene::Feed.ping(url)\nputs rss\n\n# =\u003e\n# [\n#     {\n#       :error=\u003e 500 =\u003e Net::HTTPInternalServerError for http://www.anime-town.com/\n#     }\n# ]\n```\n\nIf you send an array of websites that are mixed (valid/invalid) the result will be like so:\n\n```ruby\nurls = [\"http://www.lifehacker.com\", \"http://www.anime-town.com\"]\nrss = Arssene::Feed.ping(urls)\nputs rss\n\n# =\u003e\n# [\n#     { feed: \"https://lifehacker.com/rss\" } ,\n#     { error: 500 =\u003e Net::HTTPInternalServerError for http://www.anime-town.com/ }\n# ]\n```\n\n## Request\n\nOnce you have the correct URL for the feed, you can request the website's feed. You can also pass an array of urls such as like in the ping method.\n\n```ruby\nurl = \"https://www.lifehacker.com/rss\"\nrss = Arssene::Feed.request(url)\n# =\u003e\n# {\n#     feed: \"https://www.lifehacker.com/rss\",\n#     channel: \u003cArssene::Channel:0x00007f0dbc011500\u003e\n# }\n\n# Where if your feed is rss[:channel], you could:\nfeed = rss[:channel]\n\nputs rss.title\n# =\u003e Lifehacker\n\nputs rss.link\n# =\u003e https://www.lifehacker.com\n\nputs rss.feed_type\n# =\u003e rss\n\nputs rss.feed_version\n# =\u003e 2.0\n\nputs rss.description\n# =\u003e Do everything better\n\nputs rss.language\n# =\u003e en\n\nputs rss.relevant\n# =\u003e true\n\nputs rss.entries[0] # Array of type Entry\n# =\u003e\n    # title: RAVPower Struck a 61 Watt Blow In the USB-C GaN Wars\n    # link: https://theinventory.com/ravpower-struck-a-61-watt-blow-in-the-usb-c-gan-wars-1834586407\n    # description: \u003cp\u003e Description in html \u003c/p\u003e\n    # publication_date: 2019-05-13 16:15:00.000000000 +00:00\n    # author:\n    # content:\n```\n\n## Options\n\nYou can send an additional parameter to the request method with a hash of options to filter the response of the feed.\n\n### :ignore parameter\n\nIf you'd like to filter feeds that include the following words in the title, you can by doing the following:\n\n```ruby\nignore = [\"comment\", \"comments\", \"store\", \"corporate\"]\n\nurl = \"https://ignore-feed-website.com/rss\"\nrss = Arssene::Feed.request(url, { ignore: ignore })\n```\n\nIf Arssene finds that the feed is not relevant according to your parameters it will result in a change the 'relevant' property to false. Otherwise, by default all feeds return true for the 'relevant' property.\n\n```ruby\nfeed = rss[:channel]\nputs feed.relevant\n\n# =\u003e false\n```\n\n### :from_date parameter\n\nYou can specify the date from which you'd like to include entries. The :from_date parameter does NOT include the entries of the date sent.\n\n```ruby\nlast_days = DateTime.now - 2\n# =\u003e 2019-05-12T15:45:49+02:00\n\nurl = \"https://www.kotaku.com/rss\"\nrss = Arssene::Feed.request(url, { from_date: last_days })\n```\n\nEntries will include only from the date specifed all the way up to the newest. If you'd like to include the day you need, you can send an aditional day to the :from_date parmeter.\n\n### :limit parameter\n\nYou can also specify a limit of entries that you'd like to receive for a given result.\n\n```ruby\nurl = \"https://www.kotaku.com/rss\"\nrss = Arssene::Feed.request(url, { limit: 5 })\n\nfeed = rss[:channel]\n\n# Should be the latest 5\nputs feed.entries.length\n# =\u003e 5\n```\n\nYou can also combine any of the three specified parameters to suit your request.\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/viccarrasco/arssene. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n\n## Code of Conduct\n\nEveryone interacting in the Arssene project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/viccarrasco/arssene/blob/master/CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviccarrasco%2Farssene","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviccarrasco%2Farssene","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviccarrasco%2Farssene/lists"}