{"id":24875523,"url":"https://github.com/dotandimet/mojo-feed","last_synced_at":"2025-10-15T19:32:07.568Z","repository":{"id":56841090,"uuid":"124644017","full_name":"dotandimet/Mojo-Feed","owner":"dotandimet","description":"Mojo::DOM based Feed Parser","archived":false,"fork":false,"pushed_at":"2021-05-12T21:28:13.000Z","size":340,"stargazers_count":4,"open_issues_count":4,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-01T08:16:51.112Z","etag":null,"topics":["mojolicious-perl-framework","perl5","rss","rss-feed-parser"],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dotandimet.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","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":"2018-03-10T10:10:57.000Z","updated_at":"2022-11-10T16:40:56.000Z","dependencies_parsed_at":"2022-08-29T12:50:49.750Z","dependency_job_id":null,"html_url":"https://github.com/dotandimet/Mojo-Feed","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotandimet%2FMojo-Feed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotandimet%2FMojo-Feed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotandimet%2FMojo-Feed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotandimet%2FMojo-Feed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotandimet","download_url":"https://codeload.github.com/dotandimet/Mojo-Feed/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236635014,"owners_count":19180819,"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":["mojolicious-perl-framework","perl5","rss","rss-feed-parser"],"created_at":"2025-02-01T08:16:53.397Z","updated_at":"2025-10-15T19:32:02.251Z","avatar_url":"https://github.com/dotandimet.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/dotandimet/Mojo-Feed.svg?branch=master)](https://travis-ci.org/dotandimet/Mojo-Feed)\n# NAME\n\nMojo::Feed - Mojo::DOM-based parsing of RSS \u0026 Atom feeds\n\n# SYNOPSIS\n\n    use Mojo::Feed;\n    use Mojo::File qw(path);\n\n    my $feed = Mojo::Feed-\u003enew-\u003eparse(file =\u003e path(\"atom.xml\"));\n    print $feed-\u003etitle, \"\\n\",\n      $feed-\u003eitems-\u003emap('title')-\u003ejoin(\"\\n\");\n\n    $feed = Mojo::Feed-\u003enew( body =\u003e $string );\n    $feed = Mojo::Feed-\u003enew( url =\u003e $rss_url );\n\n    my $feed = Mojo::Feed-\u003enew(\n      url =\u003e \"https://github.com/dotandimet/Mojo-Feed/commits/master.atom\");\n    say $feed-\u003etitle;\n    $feed-\u003eitems-\u003eeach(\n      sub { say $_-\u003etitle, q{ }, Mojo::Date-\u003enew($_-\u003epublished); });\n\n# DESCRIPTION\n\n[Mojo::Feed](https://metacpan.org/pod/Mojo::Feed) is an Object Oriented module for identifying,\nfetching and parsing RSS and Atom Feeds.  It relies on\n[Mojo::DOM](https://metacpan.org/pod/Mojo::DOM) for XML/HTML parsing. Date parsing is done with [HTTP::Date](https://metacpan.org/pod/HTTP::Date).\n\n[Mojo::Feed](https://metacpan.org/pod/Mojo::Feed) represents the parsed RSS/Atom feed; you can construct it\nby setting an XML string as the `body` attribute, by setting the `file` or `url`\nattributes to a [Mojo::File](https://metacpan.org/pod/Mojo::File) or [Mojo::URL](https://metacpan.org/pod/Mojo::URL) respectively, or by using a\n[Mojo::Feed::Reader](https://metacpan.org/pod/Mojo::Feed::Reader) object.\n\n# ATTRIBUTES\n\n[Mojo::Feed](https://metacpan.org/pod/Mojo::Feed) implements the following attributes.\n\n## body\n\nThe original decoded string of the feed.\n\n## dom\n\nThe parsed feed as [Mojo::DOM](https://metacpan.org/pod/Mojo::DOM) object.\n\n## source\n\nThe source of the feed; either a [Mojo::File](https://metacpan.org/pod/Mojo::File) or [Mojo::URL](https://metacpan.org/pod/Mojo::URL) object, or\nundef if the feed source was a string.\n\n## title\n\nReturns the feed's title.\n\n## description\n\nDescription of the feed, filled from channel description (RSS), subtitle (Atom 1.0) or tagline (Atom 0.3)\n\n## link\n\nWeb page URL associated with the feed\n\n## items\n\n[Mojo::Collection](https://metacpan.org/pod/Mojo::Collection) of [Mojo::Feed::Item](https://metacpan.org/pod/Mojo::Feed::Item) objects representing feed news items\n\n## entries\n\nAlias name for `items`.\n\n## subtitle\n\nOptional feed description\n\n## author\n\nName from `author`, `dc:creator` or `webMaster` field\n\n## published\n\nTime in epoch seconds (may be filled with pubDate, dc:date, created, issued, updated or modified)\n\n## url\n\nA [Mojo::URL](https://metacpan.org/pod/Mojo::URL) object from which to load the file. If set, it will set `source`. The `url` attribute\nmay change when the feed is loaded if the user agent receives a redirect.\n\n## file\n\nA [Mojo::File](https://metacpan.org/pod/Mojo::File) object from which to read the file. If set, it will set `source`.\n\n## is\\_valid\n\nTrue if the top-level element of the DOM is a valid RSS (0.9x, 1.0, 2.0) or Atom tag. Otherwise, false.\n\n## feed\\_type\n\nDetect type of feed - returns one of \"RSS 1.0\", \"RSS 2.0\", \"Atom 0.3\", \"Atom 1.0\" or \"unknown\"\n\n# METHODS\n\n[Mojo::Feed](https://metacpan.org/pod/Mojo::Feed) inherits all methods from\n[Mojo::Base](https://metacpan.org/pod/Mojo::Base) and implements the following new ones.\n\n## new\n\n    my $feed = Mojo::Feed-\u003enew;\n    my $feed = Mojo::Feed-\u003enew( body =\u003e $string);\n\nConstruct a new [Mojo::Feed](https://metacpan.org/pod/Mojo::Feed) object.\n\n## to\\_hash\n\n    my $hash = $feed-\u003eto_hash;\n    print $hash-\u003e{title};\n\nReturn a hash reference representing the feed.\n\n## to\\_string\n\nReturn a XML serialized text of the feed's Mojo::DOM node. Note that this can be different from the original XML text in the feed.\n\n## is\\_feed\\_content\\_type\n\nAccepts a mime type string as an argument; returns true if it is one\nof the accepted mime-types for RSS/Atom feeds, undef otherwise.\n\n## find\\_feed\\_links\n\nAccepts a Mojo::Message::Response returned from an HTML page, uses its dom() method to find either LINK elements in the HEAD or links (A elements) that link to a possible RSS/Atom feed.\n\n# CREDITS\n\nDotan Dimet\n\nMario Domgoergen\n\nSome tests adapted from [Feed::Find](https://metacpan.org/pod/Feed::Find) and [XML:Feed](XML:Feed), Feed auto-discovery adapted from [Feed::Find](https://metacpan.org/pod/Feed::Find).\n\n# COPYRIGHT AND LICENSE\n\nThis software is Copyright (c) Dotan Dimet \u003cdotan@corky.net\u003e.\n\nThis library is free software; you can redistribute it and/or modify\nit under the terms of the Artistic License version 2.0.\n\nTest data (web pages, feeds and excerpts) included in this package is intended\nfor testing purposes only, and is not meant in any way to infringe on the\nrights of the respective authors.\n\n# AUTHOR\n\nDotan Dimet \u003cdotan@corky.net\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotandimet%2Fmojo-feed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotandimet%2Fmojo-feed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotandimet%2Fmojo-feed/lists"}