opmlparser 0.1.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Manifest.txt +5 -0
- data/lib/opmlparser.rb +11 -9
- data/lib/opmlparser/version.rb +2 -2
- data/test/outlines/directory.opml.xml +25 -0
- data/test/outlines/feedbase_about.opml.xml +49 -0
- data/test/outlines/feedbase_hotlist.opml.xml +150 -0
- data/test/outlines/simple_script.opml.xml +33 -0
- data/test/outlines/subscription_list.opml.xml +30 -0
- data/test/test_opml.rb +17 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c650b4ab76d9ae9ccb3a0d9c1730793be152ea38
|
4
|
+
data.tar.gz: fabd0c13b0328f1ad8302108cfb39e8d8fd8ffe0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2519ec3443e455b75fdaeb245a23723ff593cabf1afa9aa3e39af04e4b3f78ffcff426c840690b7c44a14090083316a87fb09aeff32b3fb638d8c5b4b443bef
|
7
|
+
data.tar.gz: 2aed2fc5165cc192185734217d8231f95fdd490219498a3b3598dcb895f7d29f6659b7bd5d4504e57468f74028b590e06035c58cdc7ed42981c98dc572fee865
|
data/Manifest.txt
CHANGED
@@ -6,6 +6,11 @@ lib/opmlparser.rb
|
|
6
6
|
lib/opmlparser/version.rb
|
7
7
|
test/helper.rb
|
8
8
|
test/outlines/category.opml.xml
|
9
|
+
test/outlines/directory.opml.xml
|
10
|
+
test/outlines/feedbase_about.opml.xml
|
11
|
+
test/outlines/feedbase_hotlist.opml.xml
|
9
12
|
test/outlines/places_lived.opml.xml
|
13
|
+
test/outlines/simple_script.opml.xml
|
10
14
|
test/outlines/states.opml.xml
|
15
|
+
test/outlines/subscription_list.opml.xml
|
11
16
|
test/test_opml.rb
|
data/lib/opmlparser.rb
CHANGED
@@ -147,19 +147,21 @@ class Outline
|
|
147
147
|
def each( &blk ) @h['outline'].each( &blk ); end
|
148
148
|
|
149
149
|
|
150
|
-
def text()
|
151
|
-
def xmlUrl()
|
150
|
+
def text() @h['text']; end
|
151
|
+
def xmlUrl() @h['xmlUrl']; end
|
152
152
|
alias_method :xml_url, :xmlUrl
|
153
153
|
|
154
|
-
def url()
|
155
|
-
def htmlUrl()
|
154
|
+
def url() @h['url']; end
|
155
|
+
def htmlUrl() @h['htmlUrl']; end
|
156
156
|
alias_method :html_url, :htmlUrl
|
157
157
|
|
158
|
-
def created()
|
159
|
-
def title()
|
160
|
-
def type()
|
161
|
-
def category()
|
162
|
-
|
158
|
+
def created() @h['created']; end
|
159
|
+
def title() @h['title']; end
|
160
|
+
def type() @h['type']; end
|
161
|
+
def category() @h['category']; end
|
162
|
+
def description() @h['description']; end
|
163
|
+
def language() @h['language']; end
|
164
|
+
def version() @h['version']; end
|
163
165
|
|
164
166
|
def meta() @h['meta']; end
|
165
167
|
end # class Outline
|
data/lib/opmlparser/version.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
<opml version="2.0">
|
2
|
+
<head>
|
3
|
+
<title>scriptingNewsDirectory.opml</title>
|
4
|
+
<dateCreated>Thu, 13 Oct 2005 15:34:07 GMT</dateCreated>
|
5
|
+
<dateModified>Tue, 25 Oct 2005 21:33:57 GMT</dateModified>
|
6
|
+
<ownerName>Dave Winer</ownerName>
|
7
|
+
<ownerEmail>dwiner@yahoo.com</ownerEmail>
|
8
|
+
<expansionState></expansionState>
|
9
|
+
<vertScrollState>1</vertScrollState>
|
10
|
+
<windowTop>105</windowTop>
|
11
|
+
<windowLeft>466</windowLeft>
|
12
|
+
<windowBottom>386</windowBottom>
|
13
|
+
<windowRight>964</windowRight>
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<outline text="Scripting News sites" created="Sun, 16 Oct 2005 05:56:10 GMT" type="link" url="http://hosting.opml.org/dave/mySites.opml"/>
|
17
|
+
<outline text="News.Com top 100 OPML" created="Tue, 25 Oct 2005 21:33:28 GMT" type="link" url="http://news.com.com/html/ne/blogs/CNETNewsBlog100.opml"/>
|
18
|
+
<outline text="BloggerCon III Blogroll" created="Mon, 24 Oct 2005 05:23:52 GMT" type="link" url="http://static.bloggercon.org/iii/blogroll.opml"/>
|
19
|
+
<outline text="TechCrunch reviews" type="link" url="http://hosting.opml.org/techcrunch.opml.org/TechCrunch.opml"/>
|
20
|
+
<outline text="Tod Maffin's directory of Public Radio podcasts" type="link" url="http://todmaffin.com/radio.opml"/>
|
21
|
+
<outline text="Adam Curry's iPodder.org directory" type="link" url="http://homepage.mac.com/dailysourcecode/DSC/ipodderDirectory.opml"/>
|
22
|
+
<outline text="Memeorandum" created="Thu, 13 Oct 2005 15:19:05 GMT" type="link" url="http://tech.memeorandum.com/index.opml"/>
|
23
|
+
<outline text="DaveNet archive" created="Wed, 12 Oct 2005 01:39:56 GMT" type="link" url="http://davenet.opml.org/index.opml"/>
|
24
|
+
</body>
|
25
|
+
</opml>
|
@@ -0,0 +1,49 @@
|
|
1
|
+
<opml version="2.0">
|
2
|
+
<head>
|
3
|
+
<title>About feedBase...</title>
|
4
|
+
<dateCreated>Wed, 28 Feb 2018 15:34:12 GMT</dateCreated>
|
5
|
+
<dateModified>Tue, 26 Mar 2019 12:23:58 GMT</dateModified>
|
6
|
+
<ownerId>https://twitter.com/davewiner/</ownerId>
|
7
|
+
<ownerName>scripting.com</ownerName>
|
8
|
+
<ownerTwitterScreenName>davewiner</ownerTwitterScreenName>
|
9
|
+
<expansionState>1,3,8,11,12,16,21</expansionState>
|
10
|
+
<lastCursor>2</lastCursor>
|
11
|
+
<flDisqusComments>true</flDisqusComments>
|
12
|
+
<type>blogpost</type>
|
13
|
+
</head>
|
14
|
+
<body>
|
15
|
+
<outline text="What is this?" created="Wed, 28 Feb 2018 15:34:12 GMT">
|
16
|
+
<outline text="<a href="http://feedbase.io/">feedBase</a> is a project to get feeds into a database." created="Wed, 28 Feb 2018 15:34:17 GMT"/>
|
17
|
+
</outline>
|
18
|
+
<outline text="All info you upload is public" created="Wed, 28 Feb 2018 15:35:03 GMT">
|
19
|
+
<outline text="This is important." created="Wed, 28 Feb 2018 15:35:11 GMT"/>
|
20
|
+
<outline text="All information you upload to this feedBase is public." created="Tue, 26 Mar 2019 12:23:37 GMT"/>
|
21
|
+
<outline text="Do not upload private information." created="Tue, 26 Mar 2019 12:23:43 GMT"/>
|
22
|
+
<outline text="This is a publishing system and a way of sharing information. By definition it's all public. That's the point of uploading the information." created="Tue, 26 Mar 2019 12:23:51 GMT"/>
|
23
|
+
</outline>
|
24
|
+
<outline text="Logging in" created="Wed, 28 Feb 2018 15:37:40 GMT">
|
25
|
+
<outline text="We use Twitter for identity. We will not post anything on your behalf. The only information we access through Twitter is your public profile, which may be used to set defaults for preferences in feedBase. " created="Wed, 28 Feb 2018 15:37:50 GMT"/>
|
26
|
+
<outline text="You can use feedBase with or without logging in. You must be logged in to upload subscription lists, or to subscribe to or unsubscribe from feeds. " created="Wed, 28 Feb 2018 15:37:07 GMT"/>
|
27
|
+
</outline>
|
28
|
+
<outline text="How to" created="Wed, 28 Feb 2018 15:35:50 GMT">
|
29
|
+
<outline text="Upload your OPML file." created="Wed, 28 Feb 2018 15:37:31 GMT" flNumberedSubs="true">
|
30
|
+
<outline text="Export your <a href="http://scripting.com/2016/10/13/whatIsAnOpmlSubscriptionList.html">subscription list</a> in whatever RSS reader or podcast client you use." created="Wed, 28 Feb 2018 16:35:16 GMT"/>
|
31
|
+
<outline text="In feedBase, sign in with Twitter and drag-drop your OPML file onto the <a href="http://scripting.com/images/2018/03/07/uploadIcon.png">Upload icon</a> in the menu bar. You can also click the icon to get a dialog where you choose the OPML file to upload." created="Wed, 28 Feb 2018 16:35:43 GMT"/>
|
32
|
+
<outline text="You can watch a short <a href="http://scripting.com/2018/03/27/164606.html">video</a> demo that shows how to do this." created="Wed, 28 Mar 2018 15:10:24 GMT"/>
|
33
|
+
</outline>
|
34
|
+
<outline text="Browse the network" created="Wed, 28 Feb 2018 16:36:29 GMT" flNumberedSubs="true">
|
35
|
+
<outline text="Start with the hotlist, it's on the <a href="http://feedbase.io/">home page</a> of the feedBase site." created="Wed, 28 Feb 2018 16:36:34 GMT"/>
|
36
|
+
<outline text="Click on one of the feeds to get to its feed description <a href="http://feedbase.io/?feedurl=http%3A%2F%2Finessential.com%2Fxml%2Frss.xml">page</a>." created="Wed, 28 Feb 2018 16:36:47 GMT"/>
|
37
|
+
<outline text="Click on a subscriber <a href="http://feedbase.io/?username=davewiner">name</a> to see the feeds they subscribe to." created="Wed, 28 Feb 2018 16:37:00 GMT"/>
|
38
|
+
</outline>
|
39
|
+
<outline text="See what you're subscribed to" created="Wed, 28 Feb 2018 18:02:03 GMT" flNumberedSubs="true">
|
40
|
+
<outline text="Choose <i>Show my subs</i> in the Main menu." created="Wed, 28 Feb 2018 18:02:10 GMT"/>
|
41
|
+
</outline>
|
42
|
+
</outline>
|
43
|
+
<outline text="More info" created="Wed, 28 Mar 2018 15:11:42 GMT">
|
44
|
+
<outline text="I wrote a <a href="http://scripting.com/2018/03/26/145515.html">vision statement</a> for the project on my blog. It's a bootstrap. A Hail Mary pass. A chicken and egg thing. I hope people who make feed readers make it so that people can subscribe to OPML lists, so there can be an explosion of new applications that use feeds. The subscriptions have been too hard to get to. This was part of the original vision for RSS>" created="Wed, 28 Mar 2018 15:11:44 GMT"/>
|
45
|
+
<outline text="Lots of links on Scripting News for <a href="http://scripting.com/2018/03/28/131928.html">3/28/20018</a>." created="Wed, 28 Mar 2018 15:14:04 GMT"/>
|
46
|
+
<outline text="If you have questions post a comment here, or if they're very technical, as an <a href="https://github.com/scripting/feedBase/issues/new">issue</a> on the GitHub repo." created="Wed, 28 Mar 2018 15:14:48 GMT"/>
|
47
|
+
</outline>
|
48
|
+
</body>
|
49
|
+
</opml>
|
@@ -0,0 +1,150 @@
|
|
1
|
+
<!-- OPML generated by feedBase v0.6.24 on Thu, 13 Feb 2020 08:20:09 GMT -->
|
2
|
+
<opml version="2.0">
|
3
|
+
<head>
|
4
|
+
<title>feedBase hotlist in OPML</title>
|
5
|
+
<dateCreated>Fri, 09 Mar 2018 17:46:45 GMT</dateCreated>
|
6
|
+
<dateModified>Thu, 13 Feb 2020 08:20:09 GMT</dateModified>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<outline type="rss" text="kottke.org" xmlUrl="http://feeds.kottke.org/main" htmlUrl="http://kottke.org/" />
|
10
|
+
<outline type="rss" text="Scripting News" xmlUrl="http://scripting.com/rss.xml" htmlUrl="http://scripting.com/" />
|
11
|
+
<outline type="rss" text="inessential.com" xmlUrl="http://inessential.com/xml/rss.xml" htmlUrl="https://inessential.com/" />
|
12
|
+
<outline type="rss" text="Stratechery by Ben Thompson" xmlUrl="http://stratechery.com/feed/" htmlUrl="https://stratechery.com/" />
|
13
|
+
<outline type="rss" text="Coding Horror" xmlUrl="http://feeds.feedburner.com/codinghorror/" htmlUrl="https://blog.codinghorror.com/" />
|
14
|
+
<outline type="rss" text="Marco.org" xmlUrl="https://marco.org/rss" htmlUrl="https://marco.org/" />
|
15
|
+
<outline type="rss" text="Six Colors" xmlUrl="http://feedpress.me/sixcolors" htmlUrl="https://www.sixcolors.com/" />
|
16
|
+
<outline type="rss" text="Anil Dash" xmlUrl="http://feeds.dashes.com/AnilDash" htmlUrl="https://anildash.com/" />
|
17
|
+
<outline type="rss" text="ongoing by Tim Bray" xmlUrl="http://www.tbray.org/ongoing/ongoing.atom" htmlUrl="https://www.tbray.org/ongoing/" />
|
18
|
+
<outline type="rss" text="Signal v. Noise" xmlUrl="http://feeds.feedburner.com/37signals/beMH" htmlUrl="https://m.signalvnoise.com/" />
|
19
|
+
<outline type="rss" text="Schneier on Security" xmlUrl="https://www.schneier.com/blog/atom.xml" htmlUrl="https://www.schneier.com/blog/" />
|
20
|
+
<outline type="rss" text="xkcd.com" xmlUrl="http://xkcd.com/rss.xml" htmlUrl="https://xkcd.com/" />
|
21
|
+
<outline type="rss" text="A List Apart: The Full Feed" xmlUrl="http://feeds.feedburner.com/alistapart/main" htmlUrl="https://alistapart.com/" />
|
22
|
+
<outline type="rss" text="AVC" xmlUrl="http://feeds.feedburner.com/AVc" htmlUrl="https://avc.com/" />
|
23
|
+
<outline type="rss" text="Joel on Software" xmlUrl="https://www.joelonsoftware.com/feed/" htmlUrl="https://www.joelonsoftware.com/" />
|
24
|
+
<outline type="rss" text="Slashdot" xmlUrl="http://rss.slashdot.org/Slashdot/slashdot" htmlUrl="https://slashdot.org/" />
|
25
|
+
<outline type="rss" text="Wait But Why" xmlUrl="http://waitbutwhy.com/feed" htmlUrl="https://waitbutwhy.com/" />
|
26
|
+
<outline type="rss" text="TechCrunch" xmlUrl="http://feeds.feedburner.com/Techcrunch" htmlUrl="https://techcrunch.com/" />
|
27
|
+
<outline type="rss" text="Asymco" xmlUrl="http://www.asymco.com/feed/" htmlUrl="http://www.asymco.com/" />
|
28
|
+
<outline type="rss" text="Paul Graham: Essays" xmlUrl="http://www.aaronsw.com/2002/feeds/pgessays.rss" htmlUrl="http://www.paulgraham.com/" />
|
29
|
+
<outline type="rss" text="Engadget RSS Feed" xmlUrl="http://www.engadget.com/rss.xml" htmlUrl="https://www.engadget.com/rss.xml" />
|
30
|
+
<outline type="rss" text="Wirecutter: Reviews for the Real World" xmlUrl="http://feeds.feedburner.com/TheWirecutter" htmlUrl="https://thewirecutter.com/" />
|
31
|
+
<outline type="rss" text="furbo.org" xmlUrl="http://furbo.org/feed/" htmlUrl="https://furbo.org/" />
|
32
|
+
<outline type="rss" text="Hypercritical" xmlUrl="http://hypercritical.co/feeds/main" htmlUrl="http://hypercritical.co/" />
|
33
|
+
<outline type="rss" text="The Loop" xmlUrl="http://www.loopinsight.com/feed/" htmlUrl="https://www.loopinsight.com/" />
|
34
|
+
<outline type="rss" text="PressThink" xmlUrl="http://pressthink.org/feed/" htmlUrl="http://pressthink.org/" />
|
35
|
+
<outline type="rss" text="Rands in Repose" xmlUrl="http://randsinrepose.com/feed/" htmlUrl="https://randsinrepose.com/" />
|
36
|
+
<outline type="rss" text="What If?" xmlUrl="http://what-if.xkcd.com/feed.atom" htmlUrl="https://what-if.xkcd.com/feed.atom" />
|
37
|
+
<outline type="rss" text="Erica Sadun" xmlUrl="http://ericasadun.com/feed/" htmlUrl="https://ericasadun.com/" />
|
38
|
+
<outline type="rss" text="Hacker News" xmlUrl="https://news.ycombinator.com/rss" htmlUrl="https://news.ycombinator.com/" />
|
39
|
+
<outline type="rss" text="Tools and Toys" xmlUrl="http://toolsandtoys.net/feed/" htmlUrl="http://toolsandtoys.net/" />
|
40
|
+
<outline type="rss" text="Dave" xmlUrl="http://radio3.io/users/davewiner/rss.xml" htmlUrl="http://scripting.com/" />
|
41
|
+
<outline type="rss" text="The Oatmeal - Comics, Quizzes, & Stories" xmlUrl="http://feeds.feedburner.com/oatmealfeed" htmlUrl="http://theoatmeal.com/" />
|
42
|
+
<outline type="rss" text="24 ways" xmlUrl="http://feeds.feedburner.com/24ways" htmlUrl="https://24ways.org/" />
|
43
|
+
<outline type="rss" text="One Thing Well" xmlUrl="http://onethingwell.org/rss" htmlUrl="https://onethingwell.org/" />
|
44
|
+
<outline type="rss" text="TorrentFreak" xmlUrl="http://feeds.feedburner.com/Torrentfreak" htmlUrl="https://torrentfreak.com/" />
|
45
|
+
<outline type="rss" text="Ars Technica" xmlUrl="http://feeds.arstechnica.com/arstechnica/index/" htmlUrl="https://arstechnica.com/" />
|
46
|
+
<outline type="rss" text="MacStories" xmlUrl="https://www.macstories.net/feed/" htmlUrl="https://www.macstories.net/" />
|
47
|
+
<outline type="rss" text="Zeldman on Web & Interaction Design" xmlUrl="http://www.zeldman.com/feed/" htmlUrl="http://www.zeldman.com/" />
|
48
|
+
<outline type="rss" text="And now it’s all this" xmlUrl="http://www.leancrew.com/all-this/feed/" htmlUrl="https://leancrew.com/all-this/" />
|
49
|
+
<outline type="rss" text="CSS-Tricks" xmlUrl="http://feeds.feedburner.com/CssTricks" htmlUrl="https://css-tricks.com/" />
|
50
|
+
<outline type="rss" text="On my Om" xmlUrl="https://om.co/feed/" htmlUrl="https://om.co/" />
|
51
|
+
<outline type="rss" text="Krebs on Security" xmlUrl="https://krebsonsecurity.com/feed/" htmlUrl="https://krebsonsecurity.com/" />
|
52
|
+
<outline type="rss" text="Doc Searls Weblog" xmlUrl="http://blogs.law.harvard.edu/doc/feed/" htmlUrl="http://blogs.harvard.edu/doc" />
|
53
|
+
<outline type="rss" text="Subtraction.com + Feed" xmlUrl="http://feeds.feedburner.com/subtraction" htmlUrl="https://www.subtraction.com/" />
|
54
|
+
<outline type="rss" text="Home - Benedict Evans" xmlUrl="http://ben-evans.com/benedictevans?format=rss" htmlUrl="https://www.ben-evans.com/benedictevans/" />
|
55
|
+
<outline type="rss" text="Doc Searls Weblog" xmlUrl="http://blogs.harvard.edu/doc/feed/" htmlUrl="http://blogs.harvard.edu/doc" />
|
56
|
+
<outline type="rss" text="Waxy.org" xmlUrl="https://waxy.org/feed/" htmlUrl="https://waxy.org/" />
|
57
|
+
<outline type="rss" text="Charlie's Diary" xmlUrl="http://www.antipope.org/charlie/blog-static/atom.xml" htmlUrl="http://www.antipope.org/charlie/blog-static/" />
|
58
|
+
<outline type="rss" text="The Shape of Everything" xmlUrl="http://shapeof.com/rss.xml" htmlUrl="https://shapeof.com/" />
|
59
|
+
<outline type="rss" text="MacRumors: Mac News and Rumors - All Stories" xmlUrl="http://feeds.macrumors.com/MacRumors-All" htmlUrl="https://www.macrumors.com/" />
|
60
|
+
<outline type="rss" text="Brain Pickings" xmlUrl="http://feeds.feedburner.com/brainpickings/rss" htmlUrl="https://www.brainpickings.org/" />
|
61
|
+
<outline type="rss" text="Techmeme" xmlUrl="http://www.techmeme.com/index.xml" htmlUrl="http://www.techmeme.com/" />
|
62
|
+
<outline type="rss" text="kung fu grippe" xmlUrl="http://www.kungfugrippe.com/rss" htmlUrl="https://www.kungfugrippe.com/" />
|
63
|
+
<outline type="rss" text="Becky Hansmeyer" xmlUrl="http://beckyhansmeyer.com/feed/" htmlUrl="https://beckyhansmeyer.com/" />
|
64
|
+
<outline type="rss" text="Idle Words" xmlUrl="http://www.idlewords.com/index.xml" htmlUrl="http://idlewords.com" />
|
65
|
+
<outline type="rss" text="Bitsplitting.org" xmlUrl="http://bitsplitting.org/feed/" htmlUrl="https://bitsplitting.org/" />
|
66
|
+
<outline type="rss" text="Features – FiveThirtyEight" xmlUrl="http://fivethirtyeight.com/features/feed/" htmlUrl="https://fivethirtyeight.com/" />
|
67
|
+
<outline type="rss" text="Julia Evans" xmlUrl="https://jvns.ca/atom.xml" htmlUrl="http://jvns.ca/" />
|
68
|
+
<outline type="rss" text="Boing Boing" xmlUrl="http://feeds.boingboing.net/boingboing/iBag" htmlUrl="https://boingboing.net/" />
|
69
|
+
<outline type="rss" text="Saturday Morning Breakfast Cereal" xmlUrl="http://www.smbc-comics.com/rss.php" htmlUrl="https://www.smbc-comics.com/" />
|
70
|
+
<outline type="rss" text="Clay Shirky" xmlUrl="http://www.shirky.com/weblog/feed/" htmlUrl="http://www.shirky.com/weblog" />
|
71
|
+
<outline type="rss" text="David Smith, Independent iOS Developer" xmlUrl="https://david-smith.org/atom.xml" htmlUrl="http://david-smith.org/" />
|
72
|
+
<outline type="rss" text="Deeplinks" xmlUrl="https://www.eff.org/rss/updates.xml" htmlUrl="https://www.eff.org/rss/updates.xml" />
|
73
|
+
<outline type="rss" text="The Verge - All Posts" xmlUrl="http://www.theverge.com/rss/index.xml" htmlUrl="https://www.theverge.com/" />
|
74
|
+
<outline type="rss" text="99% Invisible" xmlUrl="http://feeds.99percentinvisible.org/99percentinvisible" htmlUrl="http://99percentinvisible.org/" />
|
75
|
+
<outline type="rss" text="zen habits" xmlUrl="http://feeds.feedburner.com/zenhabits" htmlUrl="http://zenhabits.net/" />
|
76
|
+
<outline type="rss" text="xkcd.com" xmlUrl="https://www.xkcd.com/rss.xml" htmlUrl="https://xkcd.com/" />
|
77
|
+
<outline type="rss" text="Blog – Cal Newport" xmlUrl="http://feeds.feedburner.com/StudyHacks" htmlUrl="https://www.calnewport.com/" />
|
78
|
+
<outline type="rss" text="OMG! Ubuntu!" xmlUrl="http://feeds.feedburner.com/d0od" htmlUrl="https://www.omgubuntu.co.uk/" />
|
79
|
+
<outline type="rss" text="What If?" xmlUrl="https://what-if.xkcd.com/feed.atom" htmlUrl="https://what-if.xkcd.com/feed.atom" />
|
80
|
+
<outline type="rss" text="Matt Mullenweg" xmlUrl="https://ma.tt/feed/" htmlUrl="https://ma.tt/" />
|
81
|
+
<outline type="rss" text="Brain Pickings" xmlUrl="http://feedproxy.google.com/brainpickings/rss" htmlUrl="https://www.brainpickings.org/" />
|
82
|
+
<outline type="rss" text="QC RSS" xmlUrl="http://www.questionablecontent.net/QCRSS.xml" htmlUrl="http://www.questionablecontent.net/" />
|
83
|
+
<outline type="rss" text="The Next Web" xmlUrl="http://feeds2.feedburner.com/thenextweb" htmlUrl="https://thenextweb.com/" />
|
84
|
+
<outline type="rss" text="512 Pixels" xmlUrl="http://feedpress.me/512pixels" htmlUrl="http://512pixels.net/" />
|
85
|
+
<outline type="rss" text="The Verge - All Posts" xmlUrl="https://www.theverge.com/rss/index.xml" htmlUrl="https://www.theverge.com/" />
|
86
|
+
<outline type="rss" text="Mr. Money Mustache" xmlUrl="http://feeds.feedburner.com/MrMoneyMustache" htmlUrl="https://www.mrmoneymustache.com/" />
|
87
|
+
<outline type="rss" text="Editors’ Blog – Talking Points Memo" xmlUrl="http://feeds.feedburner.com/talking-points-memo" htmlUrl="https://talkingpointsmemo.com/" />
|
88
|
+
<outline type="rss" text="The Oatmeal - Comics, Quizzes, & Stories" xmlUrl="http://theoatmeal.com/feed/rss" htmlUrl="http://theoatmeal.com/" />
|
89
|
+
<outline type="rss" text="LukeW | Digital Product Design + Strategy" xmlUrl="http://feeds.feedburner.com/FunctioningForm" htmlUrl="http://www.lukew.com/" />
|
90
|
+
<outline type="rss" text="The Daily WTF" xmlUrl="http://syndication.thedailywtf.com/TheDailyWtf" htmlUrl="http://thedailywtf.com/" />
|
91
|
+
<outline type="rss" text="Julia Evans" xmlUrl="http://jvns.ca/atom.xml" htmlUrl="http://jvns.ca/" />
|
92
|
+
<outline type="rss" text="Radar" xmlUrl="http://feeds.feedburner.com/oreilly/radar/atom" htmlUrl="https://www.oreilly.com/radar" />
|
93
|
+
<outline type="rss" text="BrettTerpstra.com - The Mad Science of Brett Terpstra" xmlUrl="http://brett.trpstra.net/brettterpstra" htmlUrl="https://brettterpstra.com/" />
|
94
|
+
<outline type="rss" text="Scott Hanselman's Blog" xmlUrl="http://feeds.hanselman.com/ScottHanselman" htmlUrl="https://www.hanselman.com/blog/" />
|
95
|
+
<outline type="rss" text="Seth's Blog" xmlUrl="http://sethgodin.typepad.com/seths_blog/atom.xml" htmlUrl="https://seths.blog/" />
|
96
|
+
<outline type="rss" text="Minimal Mac" xmlUrl="http://minimalmac.com/rss" htmlUrl="https://minimalmac.com/" />
|
97
|
+
<outline type="rss" text="Shawn Blanc" xmlUrl="http://feeds.feedburner.com/shawnblanc" htmlUrl="https://shawnblanc.net/" />
|
98
|
+
<outline type="rss" text="Programming in the 21st Century" xmlUrl="http://prog21.dadgum.com/atom.xml" htmlUrl="http://prog21.dadgum.com/" />
|
99
|
+
<outline type="rss" text="The World is not a desktop" xmlUrl="http://caseorganic.com/feed/" htmlUrl="http://caseorganic.com/" />
|
100
|
+
<outline type="rss" text="Macdrifter" xmlUrl="http://www.macdrifter.com/feeds/all.atom.xml" htmlUrl="http://www.macdrifter.com/" />
|
101
|
+
<outline type="rss" text="Scott Adams' Blog" xmlUrl="http://feed.dilbert.com/dilbert/blog" htmlUrl="https://www.scottadamssays.com/" />
|
102
|
+
<outline type="rss" text="Big Picture" xmlUrl="http://www.boston.com/bigpicture/index.xml" />
|
103
|
+
<outline type="rss" text="The Sweet Setup" xmlUrl="http://thesweetsetup.com/feed/" htmlUrl="https://thesweetsetup.com/" />
|
104
|
+
<outline type="rss" text="The Atlantic Photo" xmlUrl="http://feeds.feedburner.com/theatlantic/infocus" htmlUrl="https://www.theatlantic.com/photo/" />
|
105
|
+
<outline type="rss" text="Google Operating System" xmlUrl="http://feeds.feedburner.com/GoogleOperatingSystem" htmlUrl="http://googlesystem.blogspot.com/" />
|
106
|
+
<outline type="rss" text="ignorethecode.net" xmlUrl="http://feeds.feedburner.com/IgnoreTheCode" htmlUrl="http://ignorethecode.net/" />
|
107
|
+
<outline type="rss" text="Information is Beautiful" xmlUrl="http://feeds.feedburner.com/InformationIsBeautiful" htmlUrl="https://informationisbeautiful.net/" />
|
108
|
+
<outline type="rss" text="Armed and Dangerous" xmlUrl="http://esr.ibiblio.org/?feed=rss2" htmlUrl="http://esr.ibiblio.org/" />
|
109
|
+
<outline type="rss" text="The Atlantic" xmlUrl="http://feeds.feedburner.com/TheAtlantic" htmlUrl="https://www.theatlantic.com/" />
|
110
|
+
<outline type="rss" text="John Moltz's Very Nice Web SiteJohn Moltz's Very Nice Web Site" xmlUrl="http://verynicewebsite.net/feed/atom/" htmlUrl="http://verynicewebsite.net/" />
|
111
|
+
<outline type="rss" text="Ftrain.com" xmlUrl="http://www.ftrain.com/xml/feed/rss.xml" htmlUrl="http://www.ftrain.com/" />
|
112
|
+
<outline type="rss" text="The Sweet Setup" xmlUrl="https://thesweetsetup.com/feed/" htmlUrl="https://thesweetsetup.com/" />
|
113
|
+
<outline type="rss" text="Vox - All" xmlUrl="http://www.vox.com/rss/index.xml" htmlUrl="https://www.vox.com/" />
|
114
|
+
<outline type="rss" text="Patrick Rhone" xmlUrl="http://patrickrhone.com/feed/" htmlUrl="https://patrickrhone.com/" />
|
115
|
+
<outline type="rss" text="Radiolab" xmlUrl="http://feeds.wnyc.org/radiolab" htmlUrl="https://www.wnycstudios.org/podcasts/radiolab/projects/podcasts" />
|
116
|
+
<outline type="rss" text="MacSparky" xmlUrl="http://macsparky.com/blog?format=rss" htmlUrl="https://www.macsparky.com/" />
|
117
|
+
<outline type="rss" text="I, Cringely" xmlUrl="http://www.cringely.com/feed/" htmlUrl="https://www.cringely.com/" />
|
118
|
+
<outline type="rss" text="Feed: All Latest" xmlUrl="https://www.wired.com/feed" htmlUrl="https://www.wired.com/latest" />
|
119
|
+
<outline type="rss" text="Articles on Smashing Magazine — For Web Designers And Developers" xmlUrl="https://www.smashingmagazine.com/feed/" htmlUrl="https://www.smashingmagazine.com/articles/" />
|
120
|
+
<outline type="rss" text="Open Culture" xmlUrl="http://feeds.feedburner.com/OpenCulture" htmlUrl="http://www.openculture.com/" />
|
121
|
+
<outline type="rss" text="David Smith, Independent iOS Developer" xmlUrl="http://david-smith.org/atom.xml" htmlUrl="http://david-smith.org/" />
|
122
|
+
<outline type="rss" text="Stories by Tess Rinearson on Medium" xmlUrl="https://medium.com/feed/@tessr" htmlUrl="https://medium.com/@tessr?source=rss-c16152863954------2" />
|
123
|
+
<outline type="rss" text="Little Big Details" xmlUrl="http://littlebigdetails.com/rss" htmlUrl="https://littlebigdetails.com/" />
|
124
|
+
<outline type="rss" text="Derek Sivers" xmlUrl="https://sivers.org/en.atom" htmlUrl="https://sivers.org/en.atom" />
|
125
|
+
<outline type="rss" text="Stratechery by Ben Thompson" xmlUrl="https://stratechery.com/feed/" htmlUrl="https://stratechery.com/" />
|
126
|
+
<outline type="rss" text="Martin Fowler" xmlUrl="https://martinfowler.com/feed.atom" htmlUrl="https://martinfowler.com/" />
|
127
|
+
<outline type="rss" text="Techmeme" xmlUrl="https://www.techmeme.com/feed.xml" htmlUrl="http://www.techmeme.com/" />
|
128
|
+
<outline type="rss" text="Overcoming Bias" xmlUrl="http://www.overcomingbias.com/feed" htmlUrl="http://www.overcomingbias.com/" />
|
129
|
+
<outline type="rss" text="Derek Sivers" xmlUrl="http://sivers.org/en.atom" htmlUrl="https://sivers.org/en.atom" />
|
130
|
+
<outline type="rss" text="Pointers Gone Wild" xmlUrl="http://pointersgonewild.com/feed/" htmlUrl="https://pointersgonewild.com/" />
|
131
|
+
<outline type="rss" text="Krebs on Security" xmlUrl="http://krebsonsecurity.com/feed/" htmlUrl="https://krebsonsecurity.com/" />
|
132
|
+
<outline type="rss" text="Neven Mrgan's tumbl" xmlUrl="http://mrgan.tumblr.com/rss" htmlUrl="https://mrgan.tumblr.com/" />
|
133
|
+
<outline type="rss" text="The Red Queen Coder" xmlUrl="http://redqueencoder.com/feed/" htmlUrl="http://redqueencoder.com/" />
|
134
|
+
<outline type="rss" text="A List Apart: The Full Feed" xmlUrl="http://www.alistapart.com/rss.xml" htmlUrl="https://alistapart.com/" />
|
135
|
+
<outline type="rss" text="Matt Mullenweg" xmlUrl="http://ma.tt/feed/" htmlUrl="https://ma.tt/" />
|
136
|
+
<outline type="rss" text="The Cramped" xmlUrl="http://www.thecramped.com/feed/" htmlUrl="http://www.thecramped.com/" />
|
137
|
+
<outline type="rss" text="Nautilus" xmlUrl="http://nautil.us/rss/all" htmlUrl="http://nautil.us/rss/all" />
|
138
|
+
<outline type="rss" text="Digital Inspiration" xmlUrl="http://feeds.labnol.org/labnol" htmlUrl="https://www.labnol.org" />
|
139
|
+
<outline type="rss" text="Slate Star Codex" xmlUrl="http://slatestarcodex.com/feed/" htmlUrl="https://slatestarcodex.com/" />
|
140
|
+
<outline type="rss" text="Michael Tsai" xmlUrl="https://mjtsai.com/blog/feed/" htmlUrl="https://mjtsai.com/blog" />
|
141
|
+
<outline type="rss" text="Futility Closet" xmlUrl="http://feeds.feedburner.com/FutilityCloset" htmlUrl="https://www.futilitycloset.com/" />
|
142
|
+
<outline type="rss" text="cocoa by the fire" xmlUrl="http://blog.cocoabythefire.com/rss" htmlUrl="https://blog.cocoabythefire.com/" />
|
143
|
+
<outline type="rss" text="James Fallows | The Atlantic" xmlUrl="http://feeds.feedburner.com/JamesFallows" htmlUrl="https://www.theatlantic.com/author/james-fallows/" />
|
144
|
+
<outline type="rss" text="Pinboard - bookmarking for introverts" xmlUrl="http://blog.pinboard.in/feed/" htmlUrl="https://pinboard.in/" />
|
145
|
+
<outline type="rss" text="Nick Bradbury" xmlUrl="http://feeds.feedburner.com/NickBradbury" htmlUrl="https://nickbradbury.com/" />
|
146
|
+
<outline type="rss" text="Instapaper" xmlUrl="http://blog.instapaper.com/rss" htmlUrl="https://blog.instapaper.com/" />
|
147
|
+
<outline type="rss" text="ignorethecode.net" xmlUrl="http://ignorethecode.net/blog/rss/" htmlUrl="http://ignorethecode.net/" />
|
148
|
+
<outline type="rss" text="zen habits" xmlUrl="http://zenhabits.net/feed/" htmlUrl="http://zenhabits.net/" />
|
149
|
+
</body>
|
150
|
+
</opml>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<opml version="2.0">
|
2
|
+
<head>
|
3
|
+
<title>workspace.userlandsamples.doSomeUpstreaming</title>
|
4
|
+
<dateCreated>Mon, 11 Feb 2002 22:48:02 GMT</dateCreated>
|
5
|
+
<dateModified>Sun, 30 Oct 2005 03:30:17 GMT</dateModified>
|
6
|
+
<ownerName>Dave Winer</ownerName>
|
7
|
+
<ownerEmail>dwiner@yahoo.com</ownerEmail>
|
8
|
+
<expansionState>1, 2, 4</expansionState>
|
9
|
+
<vertScrollState>1</vertScrollState>
|
10
|
+
<windowTop>74</windowTop>
|
11
|
+
<windowLeft>41</windowLeft>
|
12
|
+
<windowBottom>314</windowBottom>
|
13
|
+
<windowRight>475</windowRight>
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<outline text="Changes" isComment="true">
|
17
|
+
<outline text="1/3/02; 4:54:25 PM by DW">
|
18
|
+
<outline text="Change "playlist" to "radio"."/>
|
19
|
+
</outline>
|
20
|
+
<outline text="2/12/01; 1:49:33 PM by DW" isComment="true">
|
21
|
+
<outline text="Test upstreaming by sprinkling a few files in a nice new test folder."/>
|
22
|
+
</outline>
|
23
|
+
</outline>
|
24
|
+
<outline text="on writetestfile (f, size)">
|
25
|
+
<outline text="file.surefilepath (f)" isBreakpoint="true"/>
|
26
|
+
<outline text="file.writewholefile (f, string.filledstring ("x", size))"/>
|
27
|
+
</outline>
|
28
|
+
<outline text="local (folder = user.radio.prefs.wwwfolder + "test\\largefiles\\")"/>
|
29
|
+
<outline text="for ch = 'a' to 'z'">
|
30
|
+
<outline text="writetestfile (folder + ch + ".html", random (1000, 16000))"/>
|
31
|
+
</outline>
|
32
|
+
</body>
|
33
|
+
</opml>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<opml version="2.0">
|
2
|
+
<head>
|
3
|
+
<title>mySubscriptions.opml</title>
|
4
|
+
<dateCreated>Sat, 18 Jun 2005 12:11:52 GMT</dateCreated>
|
5
|
+
<dateModified>Tue, 02 Aug 2005 21:42:48 GMT</dateModified>
|
6
|
+
<ownerName>Dave Winer</ownerName>
|
7
|
+
<ownerEmail>dave@scripting.com</ownerEmail>
|
8
|
+
<expansionState></expansionState>
|
9
|
+
<vertScrollState>1</vertScrollState>
|
10
|
+
<windowTop>61</windowTop>
|
11
|
+
<windowLeft>304</windowLeft>
|
12
|
+
<windowBottom>562</windowBottom>
|
13
|
+
<windowRight>842</windowRight>
|
14
|
+
</head>
|
15
|
+
<body>
|
16
|
+
<outline text="CNET News.com" description="Tech news and business reports by CNET News.com. Focused on information technology, core topics include computers, hardware, software, networking, and Internet media." htmlUrl="http://news.com.com/" language="unknown" title="CNET News.com" type="rss" version="RSS2" xmlUrl="http://news.com.com/2547-1_3-0-5.xml"/>
|
17
|
+
<outline text="washingtonpost.com - Politics" description="Politics" htmlUrl="http://www.washingtonpost.com/wp-dyn/politics?nav=rss_politics" language="unknown" title="washingtonpost.com - Politics" type="rss" version="RSS2" xmlUrl="http://www.washingtonpost.com/wp-srv/politics/rssheadlines.xml"/>
|
18
|
+
<outline text="Scobleizer: Microsoft Geek Blogger" description="Robert Scoble's look at geek and Microsoft life." htmlUrl="http://radio.weblogs.com/0001011/" language="unknown" title="Scobleizer: Microsoft Geek Blogger" type="rss" version="RSS2" xmlUrl="http://radio.weblogs.com/0001011/rss.xml"/>
|
19
|
+
<outline text="Yahoo! News: Technology" description="Technology" htmlUrl="http://news.yahoo.com/news?tmpl=index&cid=738" language="unknown" title="Yahoo! News: Technology" type="rss" version="RSS2" xmlUrl="http://rss.news.yahoo.com/rss/tech"/>
|
20
|
+
<outline text="Workbench" description="Programming and publishing news and comment" htmlUrl="http://www.cadenhead.org/workbench/" language="unknown" title="Workbench" type="rss" version="RSS2" xmlUrl="http://www.cadenhead.org/workbench/rss.xml"/>
|
21
|
+
<outline text="Christian Science Monitor | Top Stories" description="Read the front page stories of csmonitor.com." htmlUrl="http://csmonitor.com" language="unknown" title="Christian Science Monitor | Top Stories" type="rss" version="RSS" xmlUrl="http://www.csmonitor.com/rss/top.rss"/>
|
22
|
+
<outline text="Dictionary.com Word of the Day" description="A new word is presented every day with its definition and example sentences from actual published works." htmlUrl="http://dictionary.reference.com/wordoftheday/" language="unknown" title="Dictionary.com Word of the Day" type="rss" version="RSS" xmlUrl="http://www.dictionary.com/wordoftheday/wotd.rss"/>
|
23
|
+
<outline text="The Motley Fool" description="To Educate, Amuse, and Enrich" htmlUrl="http://www.fool.com" language="unknown" title="The Motley Fool" type="rss" version="RSS" xmlUrl="http://www.fool.com/xml/foolnews_rss091.xml"/>
|
24
|
+
<outline text="InfoWorld: Top News" description="The latest on Top News from InfoWorld" htmlUrl="http://www.infoworld.com/news/index.html" language="unknown" title="InfoWorld: Top News" type="rss" version="RSS2" xmlUrl="http://www.infoworld.com/rss/news.xml"/>
|
25
|
+
<outline text="NYT > Business" description="Find breaking news & business news on Wall Street, media & advertising, international business, banking, interest rates, the stock market, currencies & funds." htmlUrl="http://www.nytimes.com/pages/business/index.html?partner=rssnyt" language="unknown" title="NYT > Business" type="rss" version="RSS2" xmlUrl="http://www.nytimes.com/services/xml/rss/nyt/Business.xml"/>
|
26
|
+
<outline text="NYT > Technology" description="" htmlUrl="http://www.nytimes.com/pages/technology/index.html?partner=rssnyt" language="unknown" title="NYT > Technology" type="rss" version="RSS2" xmlUrl="http://www.nytimes.com/services/xml/rss/nyt/Technology.xml"/>
|
27
|
+
<outline text="Scripting News" description="It's even worse than it appears." htmlUrl="http://www.scripting.com/" language="unknown" title="Scripting News" type="rss" version="RSS2" xmlUrl="http://www.scripting.com/rss.xml"/>
|
28
|
+
<outline text="Wired News" description="Technology, and the way we do business, is changing the world we know. Wired News is a technology - and business-oriented news service feeding an intelligent, discerning audience. What role does technology play in the day-to-day living of your life? Wired News tells you. How has evolving technology changed the face of the international business world? Wired News puts you in the picture." htmlUrl="http://www.wired.com/" language="unknown" title="Wired News" type="rss" version="RSS" xmlUrl="http://www.wired.com/news_drop/netcenter/netcenter.rdf"/>
|
29
|
+
</body>
|
30
|
+
</opml>
|
data/test/test_opml.rb
CHANGED
@@ -40,5 +40,22 @@ class TestOpml < MiniTest::Test
|
|
40
40
|
o = Outline.load_file( './test/outlines/category.opml.xml' )
|
41
41
|
o = Outline.load_file( './test/outlines/places_lived.opml.xml' )
|
42
42
|
o = Outline.load_file( './test/outlines/states.opml.xml' )
|
43
|
+
|
44
|
+
## check more
|
45
|
+
o = Outline.read( './test/outlines/directory.opml.xml' )
|
46
|
+
o = Outline.read( './test/outlines/feedbase_about.opml.xml' )
|
47
|
+
o = Outline.read( './test/outlines/feedbase_hotlist.opml.xml' )
|
48
|
+
o = Outline.read( './test/outlines/simple_script.opml.xml' )
|
49
|
+
o = Outline.read( './test/outlines/subscription_list.opml.xml' )
|
50
|
+
|
51
|
+
assert_equal "CNET News.com", o[0].text
|
52
|
+
assert_equal "Tech news and business reports by CNET News.com. Focused on information technology, core topics include computers, hardware, software, networking, and Internet media.",
|
53
|
+
o[0].description
|
54
|
+
assert_equal "http://news.com.com/", o[0].html_url
|
55
|
+
assert_equal "unknown", o[0].language
|
56
|
+
assert_equal "CNET News.com", o[0].title
|
57
|
+
assert_equal "rss", o[0].type
|
58
|
+
assert_equal "RSS2", o[0].version
|
59
|
+
assert_equal "http://news.com.com/2547-1_3-0-5.xml", o[0].xml_url
|
43
60
|
end
|
44
61
|
end # class TestOpml
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opmlparser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdoc
|
@@ -56,8 +56,13 @@ files:
|
|
56
56
|
- lib/opmlparser/version.rb
|
57
57
|
- test/helper.rb
|
58
58
|
- test/outlines/category.opml.xml
|
59
|
+
- test/outlines/directory.opml.xml
|
60
|
+
- test/outlines/feedbase_about.opml.xml
|
61
|
+
- test/outlines/feedbase_hotlist.opml.xml
|
59
62
|
- test/outlines/places_lived.opml.xml
|
63
|
+
- test/outlines/simple_script.opml.xml
|
60
64
|
- test/outlines/states.opml.xml
|
65
|
+
- test/outlines/subscription_list.opml.xml
|
61
66
|
- test/test_opml.rb
|
62
67
|
homepage: https://github.com/feedreader/pluto
|
63
68
|
licenses:
|