lotus 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/.gitignore +6 -0
  2. data/.travis.yml +9 -0
  3. data/Gemfile +16 -0
  4. data/README.md +233 -0
  5. data/Rakefile +7 -0
  6. data/lib/lotus.rb +232 -0
  7. data/lib/lotus/activity.rb +134 -0
  8. data/lib/lotus/atom/account.rb +50 -0
  9. data/lib/lotus/atom/address.rb +56 -0
  10. data/lib/lotus/atom/author.rb +167 -0
  11. data/lib/lotus/atom/category.rb +41 -0
  12. data/lib/lotus/atom/entry.rb +159 -0
  13. data/lib/lotus/atom/feed.rb +174 -0
  14. data/lib/lotus/atom/generator.rb +40 -0
  15. data/lib/lotus/atom/link.rb +79 -0
  16. data/lib/lotus/atom/name.rb +57 -0
  17. data/lib/lotus/atom/organization.rb +62 -0
  18. data/lib/lotus/atom/portable_contacts.rb +117 -0
  19. data/lib/lotus/atom/source.rb +168 -0
  20. data/lib/lotus/atom/thread.rb +60 -0
  21. data/lib/lotus/author.rb +177 -0
  22. data/lib/lotus/category.rb +45 -0
  23. data/lib/lotus/crypto.rb +146 -0
  24. data/lib/lotus/feed.rb +190 -0
  25. data/lib/lotus/generator.rb +53 -0
  26. data/lib/lotus/identity.rb +59 -0
  27. data/lib/lotus/link.rb +56 -0
  28. data/lib/lotus/notification.rb +220 -0
  29. data/lib/lotus/publisher.rb +40 -0
  30. data/lib/lotus/subscription.rb +117 -0
  31. data/lib/lotus/version.rb +3 -0
  32. data/lotus.gemspec +27 -0
  33. data/spec/activity_spec.rb +84 -0
  34. data/spec/atom/feed_spec.rb +681 -0
  35. data/spec/author_spec.rb +150 -0
  36. data/spec/crypto_spec.rb +138 -0
  37. data/spec/feed_spec.rb +252 -0
  38. data/spec/helper.rb +8 -0
  39. data/spec/identity_spec.rb +67 -0
  40. data/spec/link_spec.rb +30 -0
  41. data/spec/notification_spec.rb +77 -0
  42. data/test/example_feed.atom +393 -0
  43. data/test/example_feed_empty_author.atom +336 -0
  44. data/test/example_feed_false_connected.atom +359 -0
  45. data/test/example_feed_link_without_href.atom +134 -0
  46. data/test/example_page.html +4 -0
  47. data/test/mime_type_bug_feed.atom +874 -0
  48. metadata +204 -0
@@ -0,0 +1,8 @@
1
+ require 'minitest/spec'
2
+ require 'turn/autorun'
3
+
4
+ Turn.config do |c|
5
+ c.natural = true
6
+ end
7
+
8
+ require "mocha/setup"
@@ -0,0 +1,67 @@
1
+ require_relative 'helper'
2
+ require_relative '../lib/lotus/identity.rb'
3
+
4
+ describe Lotus::Feed do
5
+ describe "#initialize" do
6
+ it "should store a public_key" do
7
+ Lotus::Identity.new(:public_key => "key").public_key.must_equal "key"
8
+ end
9
+
10
+ it "should store a salmon endpoint" do
11
+ Lotus::Identity.new(:salmon_endpoint => "url").salmon_endpoint
12
+ .must_equal "url"
13
+ end
14
+
15
+ it "should store a dialback endpoint" do
16
+ Lotus::Identity.new(:dialback_endpoint => "url").dialback_endpoint
17
+ .must_equal "url"
18
+ end
19
+
20
+ it "should store a activity inbox endpoint" do
21
+ Lotus::Identity.new(:activity_inbox_endpoint => "url")
22
+ .activity_inbox_endpoint.must_equal "url"
23
+ end
24
+
25
+ it "should store a activity outbox endpoint" do
26
+ Lotus::Identity.new(:activity_outbox_endpoint => "url")
27
+ .activity_outbox_endpoint.must_equal "url"
28
+ end
29
+
30
+ it "should store a profile page" do
31
+ Lotus::Identity.new(:profile_page => "url").profile_page
32
+ .must_equal "url"
33
+ end
34
+ end
35
+
36
+ describe "#to_hash" do
37
+ it "should return a Hash with the public_key" do
38
+ Lotus::Identity.new(:public_key => "key")
39
+ .to_hash[:public_key].must_equal "key"
40
+ end
41
+
42
+ it "should return a Hash with the salmon endpoint" do
43
+ Lotus::Identity.new(:salmon_endpoint => "url")
44
+ .to_hash[:salmon_endpoint].must_equal "url"
45
+ end
46
+
47
+ it "should return a Hash with the dialback endpoint" do
48
+ Lotus::Identity.new(:dialback_endpoint => "url")
49
+ .to_hash[:dialback_endpoint].must_equal "url"
50
+ end
51
+
52
+ it "should return a Hash with the activity inbox endpoint" do
53
+ Lotus::Identity.new(:activity_inbox_endpoint => "url")
54
+ .to_hash[:activity_inbox_endpoint].must_equal "url"
55
+ end
56
+
57
+ it "should return a Hash with the activity outbox endpoint" do
58
+ Lotus::Identity.new(:activity_outbox_endpoint => "url")
59
+ .to_hash[:activity_outbox_endpoint].must_equal "url"
60
+ end
61
+
62
+ it "should return a Hash with the profile page" do
63
+ Lotus::Identity.new(:profile_page => "url")
64
+ .to_hash[:profile_page].must_equal "url"
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,30 @@
1
+ require_relative 'helper'
2
+ require_relative '../lib/lotus/link.rb'
3
+
4
+ describe Lotus::Link do
5
+ describe "#initialize" do
6
+ it "should store an href" do
7
+ Lotus::Link.new(:href => "object").href.must_equal "object"
8
+ end
9
+
10
+ it "should store an type" do
11
+ Lotus::Link.new(:type => "html").type.must_equal "html"
12
+ end
13
+
14
+ it "should store a hreflang" do
15
+ Lotus::Link.new(:hreflang => :follow).hreflang.must_equal :follow
16
+ end
17
+
18
+ it "should store a title" do
19
+ Lotus::Link.new(:title => "Title").title.must_equal "Title"
20
+ end
21
+
22
+ it "should store a rel" do
23
+ Lotus::Link.new(:rel => "alternate").rel.must_equal "alternate"
24
+ end
25
+
26
+ it "should store a length" do
27
+ Lotus::Link.new(:length => 12345).length.must_equal 12345
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,77 @@
1
+ require_relative 'helper'
2
+ require_relative '../lib/lotus/notification.rb'
3
+
4
+ describe Lotus::Notification do
5
+ describe "from_xml" do
6
+ it "should return nil if source is empty string" do
7
+ Lotus::Notification.from_xml("").must_equal(nil)
8
+ end
9
+
10
+ it "should return nil if source is nil" do
11
+ Lotus::Notification.from_xml(nil).must_equal(nil)
12
+ end
13
+ end
14
+
15
+ describe "from_data" do
16
+ it "should relegate for xml mime types" do
17
+ Lotus::Notification.expects(:from_xml).times(5)
18
+ Lotus::Notification.from_data("content", "xml")
19
+ Lotus::Notification.from_data("content", "magic-envelope+xml")
20
+ Lotus::Notification.from_data("content", "application/xml")
21
+ Lotus::Notification.from_data("content", "application/text+xml")
22
+ Lotus::Notification.from_data("content", "application/magic-envelope+xml")
23
+ end
24
+
25
+ it "should relegate for json mime types" do
26
+ Lotus::Notification.expects(:from_json).times(5)
27
+ Lotus::Notification.from_data("content", "json")
28
+ Lotus::Notification.from_data("content", "magic-envelope+json")
29
+ Lotus::Notification.from_data("content", "application/json")
30
+ Lotus::Notification.from_data("content", "application/text+json")
31
+ Lotus::Notification.from_data("content", "application/magic-envelope+json")
32
+ end
33
+ end
34
+
35
+ describe "from_unfollow" do
36
+ before do
37
+ @user = Lotus::Author.new(:name => "wilkie")
38
+ @follow = Lotus::Author.new(:name => "wilkie")
39
+ @salmon = Lotus::Notification.from_unfollow(@user, @follow)
40
+ end
41
+
42
+ it "should create a new Notification representing the given user author" do
43
+ @salmon.activity.actor.must_equal @user
44
+ end
45
+
46
+ it "should create a new Notification representing the given user author" do
47
+ @salmon.activity.object.must_equal @follow
48
+ end
49
+ end
50
+
51
+ describe "from_follow" do
52
+ before do
53
+ @user = Lotus::Author.new(:name => "wilkie")
54
+ @follow = Lotus::Author.new(:name => "wilkie")
55
+ @salmon = Lotus::Notification.from_follow(@user, @follow)
56
+ end
57
+
58
+ it "should create a new Notification representing the given user author" do
59
+ @salmon.activity.actor.must_equal @user
60
+ end
61
+
62
+ it "should create a new Notification representing the given user author" do
63
+ @salmon.activity.object.must_equal @follow
64
+ end
65
+ end
66
+
67
+ describe "from_profile_update" do
68
+ before do
69
+ @user = Lotus::Author.new(:name => "wilkie")
70
+ @salmon = Lotus::Notification.from_profile_update(@user)
71
+ end
72
+
73
+ it "should create a new Notification representing the given user author" do
74
+ @salmon.activity.actor.must_equal @user
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,393 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:georss="http://www.georss.org/georss" xmlns:activity="http://activitystrea.ms/spec/1.0/" xmlns:media="http://purl.org/syndication/atommedia" xmlns:poco="http://portablecontacts.net/spec/1.0" xmlns:ostatus="http://ostatus.org/schema/1.0" xmlns:statusnet="http://status.net/schema/api/1/">
3
+ <generator uri="http://status.net" version="0.9.7beta3">StatusNet</generator>
4
+ <id>http://identi.ca/api/statuses/user_timeline/141464.atom</id>
5
+ <title>greenmanspirit timeline</title>
6
+ <subtitle>Updates from greenmanspirit on Identi.ca!</subtitle>
7
+ <logo>http://avatar.identi.ca/141464-96-20100607212940.jpeg</logo>
8
+ <updated>2011-03-12T22:10:24+00:00</updated>
9
+ <author>
10
+ <activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>
11
+ <uri>http://identi.ca/user/141464</uri>
12
+ <name>greenmanspirit</name>
13
+ <email>foo@example.com</email>
14
+ <link rel="alternate" type="text/html" href="http://identi.ca/greenmanspirit"/>
15
+ <link rel="avatar" type="image/jpeg" media:width="480" media:height="480" href="http://avatar.identi.ca/141464-480-20100607212940.jpeg"/>
16
+ <link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="http://avatar.identi.ca/141464-96-20100607212940.jpeg"/>
17
+ <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="http://avatar.identi.ca/141464-48-20100607212940.jpeg"/>
18
+ <link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="http://avatar.identi.ca/141464-24-20100607212940.jpeg"/>
19
+ <georss:point>0 0</georss:point>
20
+ <poco:preferredUsername>greenmanspirit</poco:preferredUsername>
21
+ <poco:displayName>Adam Hobaugh</poco:displayName>
22
+ <poco:id>foobar</poco:id>
23
+ <poco:name>barbaz</poco:name>
24
+ <poco:nickname>spaz</poco:nickname>
25
+ <poco:published>2012-02-21T02:15:14+00:00</poco:published>
26
+ <poco:updated>2013-02-21T02:15:14+00:00</poco:updated>
27
+ <poco:birthday>2014-02-21</poco:birthday>
28
+ <poco:anniversary>2015-02-21</poco:anniversary>
29
+ <poco:gender>male</poco:gender>
30
+ <poco:note>foo
31
+ bar</poco:note>
32
+ <poco:utcOffset>-08:00</poco:utcOffset>
33
+ <poco:connected>true</poco:connected>
34
+ <poco:urls>
35
+ <poco:type>homepage</poco:type>
36
+ <poco:value>http://adamhobaugh.com</poco:value>
37
+ <poco:primary>true</poco:primary>
38
+
39
+ </poco:urls>
40
+ <statusnet:profile_info local_id="141464"></statusnet:profile_info>
41
+ </author>
42
+ <!--Deprecation warning: activity:subject is present only for backward compatibility. It will be removed in the next version of StatusNet.-->
43
+ <activity:subject>
44
+ <activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>
45
+ <id>http://identi.ca/user/141464</id>
46
+ <title>Adam Hobaugh</title>
47
+ <link rel="alternate" type="text/html" href="http://identi.ca/greenmanspirit"/>
48
+ <link rel="avatar" type="image/jpeg" media:width="480" media:height="480" href="http://avatar.identi.ca/141464-480-20100607212940.jpeg"/>
49
+ <link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="http://avatar.identi.ca/141464-96-20100607212940.jpeg"/>
50
+ <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="http://avatar.identi.ca/141464-48-20100607212940.jpeg"/>
51
+ <link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="http://avatar.identi.ca/141464-24-20100607212940.jpeg"/>
52
+ <georss:point>0 0</georss:point>
53
+ <poco:preferredUsername>greenmanspirit</poco:preferredUsername>
54
+ <poco:displayName>Adam Hobaugh</poco:displayName>
55
+ <poco:urls>
56
+ <poco:type>homepage</poco:type>
57
+ <poco:value>http://adamhobaugh.com</poco:value>
58
+ <poco:primary>true</poco:primary>
59
+
60
+ </poco:urls>
61
+ <statusnet:profile_info local_id="141464"></statusnet:profile_info>
62
+ </activity:subject>
63
+ <link href="http://identi.ca/greenmanspirit" rel="alternate" type="text/html"/>
64
+ <link href="http://identi.ca/main/sup#141464" rel="http://api.friendfeed.com/2008/03#sup" type="application/json"/>
65
+ <link href="http://identi.ca/api/statuses/user_timeline/141464.atom?max_id=51327114" rel="next" type="application/atom+xml"/>
66
+ <link href="http://identi.ca/main/push/hub" rel="hub"/>
67
+ <link href="http://identi.ca/main/push/hub2" rel="hub"/>
68
+ <link href="http://identi.ca/main/salmon/user/141464" rel="salmon"/>
69
+ <link href="http://identi.ca/main/salmon/user/141464" rel="http://salmon-protocol.org/ns/salmon-replies"/>
70
+ <link href="http://identi.ca/main/salmon/user/141464" rel="http://salmon-protocol.org/ns/salmon-mention"/>
71
+ <link href="http://identi.ca/api/statuses/user_timeline/141464.atom" rel="self" type="application/atom+xml"/>
72
+ <entry>
73
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
74
+ <activity:object>
75
+ <activity:object-type>http://activitystrea.ms/schema/1.0/person</activity:object-type>
76
+ <uri>http://identi.ca/user/141464</uri>
77
+ <name>greenmanspirit</name>
78
+ <email>foo@example.com</email>
79
+ <link rel="alternate" type="text/html" href="http://identi.ca/greenmanspirit"/>
80
+ <link rel="avatar" type="image/jpeg" media:width="480" media:height="480" href="http://avatar.identi.ca/141464-480-20100607212940.jpeg"/>
81
+ <link rel="avatar" type="image/jpeg" media:width="96" media:height="96" href="http://avatar.identi.ca/141464-96-20100607212940.jpeg"/>
82
+ <link rel="avatar" type="image/jpeg" media:width="48" media:height="48" href="http://avatar.identi.ca/141464-48-20100607212940.jpeg"/>
83
+ <link rel="avatar" type="image/jpeg" media:width="24" media:height="24" href="http://avatar.identi.ca/141464-24-20100607212940.jpeg"/>
84
+ <georss:point>0 0</georss:point>
85
+ <poco:preferredUsername>greenmanspirit</poco:preferredUsername>
86
+ <poco:displayName>Adam Hobaugh</poco:displayName>
87
+ <poco:id>foobar</poco:id>
88
+ <poco:name>barbaz</poco:name>
89
+ <poco:nickname>spaz</poco:nickname>
90
+ <poco:published>2012-02-21T02:15:14+00:00</poco:published>
91
+ <poco:updated>2013-02-21T02:15:14+00:00</poco:updated>
92
+ <poco:birthday>2014-02-21</poco:birthday>
93
+ <poco:anniversary>2015-02-21</poco:anniversary>
94
+ <poco:gender>male</poco:gender>
95
+ <poco:note>foo
96
+ bar</poco:note>
97
+ <poco:utcOffset>-08:00</poco:utcOffset>
98
+ <poco:connected>true</poco:connected>
99
+ <poco:urls>
100
+ <poco:type>homepage</poco:type>
101
+ <poco:value>http://adamhobaugh.com</poco:value>
102
+ <poco:primary>true</poco:primary>
103
+ </poco:urls>
104
+
105
+ <statusnet:profile_info local_id="141464"></statusnet:profile_info>
106
+ </activity:object>
107
+
108
+ <activity:target>Barbaz</activity:target>
109
+ <id>http://identi.ca/notice/64991641</id>
110
+ <title>staples come out of the head tomorrow, oh yeah</title>
111
+ <content type="html">staples come out of the head tomorrow, oh yeah</content>
112
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/64991641"/>
113
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
114
+ <published>2011-02-21T02:15:14+00:00</published>
115
+ <updated>2011-03-22T02:15:14+00:00</updated>
116
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/64239058"/>
117
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/64991641.atom"/>
118
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/64991641.atom"/>
119
+ <statusnet:notice_info local_id="64991641" source="xmpp" favorite="false" repeated="false"></statusnet:notice_info>
120
+
121
+ </entry>
122
+ <entry>
123
+ <id>http://identi.ca/notice/64985575</id>
124
+ <title>getting back into applying for jobs now that I have my debt back under control from unemployment</title>
125
+ <content type="html">getting back into applying for jobs now that I have my debt back under control from unemployment</content>
126
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/64985575"/>
127
+ <published>2011-02-21T00:41:24+00:00</published>
128
+ <updated>2011-03-22T00:41:24+00:00</updated>
129
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/64233166"/>
130
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/64985575.atom"/>
131
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/64985575.atom"/>
132
+ <statusnet:notice_info local_id="64985575" source="xmpp" favorite="false" repeated="false"></statusnet:notice_info>
133
+
134
+ </entry>
135
+ <entry>
136
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
137
+ <id>http://identi.ca/notice/61452377</id>
138
+ <title>It's times like this I wish I had sleepytime tea</title>
139
+ <content type="html">It's times like this I wish I had sleepytime tea</content>
140
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/61452377"/>
141
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
142
+ <published>2011-01-03T05:11:50+00:00</published>
143
+ <updated>2011-01-03T05:11:50+00:00</updated>
144
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/60809276"/>
145
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/61452377.atom"/>
146
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/61452377.atom"/>
147
+ <statusnet:notice_info local_id="61452377" source="&lt;a href=&quot;http://mustard.macno.org&quot; rel=&quot;nofollow&quot;&gt;mustard&lt;/a&gt;" source_link="http://mustard.macno.org" favorite="false" repeated="false"></statusnet:notice_info>
148
+
149
+ </entry>
150
+ <entry>
151
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
152
+ <id>http://identi.ca/notice/61441098</id>
153
+ <title>My latest accomplishment - http://ravel.me/greenmanspirit/ro20b</title>
154
+ <content type="html">My latest accomplishment - &lt;a href=&quot;http://ravel.me/greenmanspirit/ro20b&quot; title=&quot;http://www.ravelry.com/projects/greenmanspirit/reversible-strands-for-men-and-women-too&quot; rel=&quot;nofollow external&quot;&gt;http://ravel.me/greenmanspirit/ro20b&lt;/a&gt;</content>
155
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/61441098"/>
156
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
157
+ <published>2011-01-02T22:49:44+00:00</published>
158
+ <updated>2011-01-02T22:49:44+00:00</updated>
159
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/60798524"/>
160
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/61441098.atom"/>
161
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/61441098.atom"/>
162
+ <statusnet:notice_info local_id="61441098" source="web" favorite="false" repeated="false"></statusnet:notice_info>
163
+
164
+ </entry>
165
+ <entry>
166
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
167
+ <id>http://identi.ca/notice/60190679</id>
168
+ <title>First field trip today, and its to the mall</title>
169
+ <content type="html">First field trip today, and its to the mall</content>
170
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/60190679"/>
171
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
172
+ <published>2010-12-10T18:50:20+00:00</published>
173
+ <updated>2010-12-10T18:50:20+00:00</updated>
174
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/59590921"/>
175
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/60190679.atom"/>
176
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/60190679.atom"/>
177
+ <statusnet:notice_info local_id="60190679" source="&lt;a href=&quot;http://mustard.macno.org&quot; rel=&quot;nofollow&quot;&gt;mustard&lt;/a&gt;" source_link="http://mustard.macno.org" favorite="false" repeated="false"></statusnet:notice_info>
178
+
179
+ </entry>
180
+ <entry>
181
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
182
+ <id>http://identi.ca/notice/59612332</id>
183
+ <title>bacon makes everything better</title>
184
+ <content type="html">bacon makes everything better</content>
185
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/59612332"/>
186
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
187
+ <published>2010-12-02T02:33:38+00:00</published>
188
+ <updated>2010-12-02T02:33:38+00:00</updated>
189
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/59031019"/>
190
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/59612332.atom"/>
191
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/59612332.atom"/>
192
+ <statusnet:notice_info local_id="59612332" source="xmpp" favorite="false" repeated="false"></statusnet:notice_info>
193
+
194
+ </entry>
195
+ <entry>
196
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
197
+ <id>http://identi.ca/notice/57207676</id>
198
+ <title>I am now a professional driver, will post my cdl once I'm not to lazy to scratch off personal info</title>
199
+ <content type="html">I am now a professional driver, will post my cdl once I'm not to lazy to scratch off personal info</content>
200
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/57207676"/>
201
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
202
+ <published>2010-10-23T00:53:05+00:00</published>
203
+ <updated>2010-10-23T00:53:05+00:00</updated>
204
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/56711855"/>
205
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/57207676.atom"/>
206
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/57207676.atom"/>
207
+ <statusnet:notice_info local_id="57207676" source="&lt;a href=&quot;http://mustard.macno.org&quot; rel=&quot;nofollow&quot;&gt;mustard&lt;/a&gt;" source_link="http://mustard.macno.org" favorite="false" repeated="false"></statusnet:notice_info>
208
+
209
+ </entry>
210
+ <entry>
211
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
212
+ <id>http://identi.ca/notice/56394008</id>
213
+ <title>Has anyone ever used a pedometer to guide a workout plan, I have one laying around but need a workout plan to go with it and if its worth it</title>
214
+ <content type="html">Has anyone ever used a pedometer to guide a workout plan, I have one laying around but need a workout plan to go with it and if its worth it</content>
215
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/56394008"/>
216
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
217
+ <published>2010-10-16T20:29:50+00:00</published>
218
+ <updated>2010-10-16T20:29:50+00:00</updated>
219
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/55912537"/>
220
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/56394008.atom"/>
221
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/56394008.atom"/>
222
+ <statusnet:notice_info local_id="56394008" source="&lt;a href=&quot;http://mustard.macno.org&quot; rel=&quot;nofollow&quot;&gt;mustard&lt;/a&gt;" source_link="http://mustard.macno.org" favorite="false" repeated="false"></statusnet:notice_info>
223
+
224
+ </entry>
225
+ <entry>
226
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
227
+ <id>http://identi.ca/notice/56176750</id>
228
+ <title>Stargate Universe is by far my favorite show, its what Voyager should have been</title>
229
+ <content type="html">Stargate Universe is by far my favorite show, its what Voyager should have been</content>
230
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/56176750"/>
231
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
232
+ <published>2010-10-14T23:24:48+00:00</published>
233
+ <updated>2010-10-14T23:24:48+00:00</updated>
234
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/55699029"/>
235
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/56176750.atom"/>
236
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/56176750.atom"/>
237
+ <statusnet:notice_info local_id="56176750" source="&lt;a href=&quot;http://mustard.macno.org&quot; rel=&quot;nofollow&quot;&gt;mustard&lt;/a&gt;" source_link="http://mustard.macno.org" favorite="false" repeated="false"></statusnet:notice_info>
238
+
239
+ </entry>
240
+ <entry>
241
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
242
+ <id>http://identi.ca/notice/54276991</id>
243
+ <title>Anyone have 500 I can borrow to cover till my bus job pays, I will to pay $50 in interest, payments 45 for 11, 55 month 12, will pay notary</title>
244
+ <content type="html">Anyone have 500 I can borrow to cover till my bus job pays, I will to pay $50 in interest, payments 45 for 11, 55 month 12, will pay notary</content>
245
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/54276991"/>
246
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
247
+ <published>2010-10-05T15:48:37+00:00</published>
248
+ <updated>2010-10-05T15:48:37+00:00</updated>
249
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/53821805"/>
250
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/54276991.atom"/>
251
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/54276991.atom"/>
252
+ <statusnet:notice_info local_id="54276991" source="&lt;a href=&quot;http://mustard.macno.org&quot; rel=&quot;nofollow&quot;&gt;mustard&lt;/a&gt;" source_link="http://mustard.macno.org" favorite="false" repeated="false"></statusnet:notice_info>
253
+
254
+ </entry>
255
+ <entry>
256
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
257
+ <id>http://identi.ca/notice/54003337</id>
258
+ <title>First day of bus driver training</title>
259
+ <content type="html">First day of bus driver training</content>
260
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/54003337"/>
261
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
262
+ <published>2010-10-04T11:33:04+00:00</published>
263
+ <updated>2010-10-04T11:33:04+00:00</updated>
264
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/53550533"/>
265
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/54003337.atom"/>
266
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/54003337.atom"/>
267
+ <statusnet:notice_info local_id="54003337" source="&lt;a href=&quot;http://mustard.macno.org&quot; rel=&quot;nofollow&quot;&gt;mustard&lt;/a&gt;" source_link="http://mustard.macno.org" favorite="false" repeated="false"></statusnet:notice_info>
268
+
269
+ </entry>
270
+ <entry>
271
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
272
+ <id>http://identi.ca/notice/53268824</id>
273
+ <title>my car is 300 pounds lighter, just returned all my asbestos stuff!</title>
274
+ <content type="html">my car is 300 pounds lighter, just returned all my asbestos stuff!</content>
275
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/53268824"/>
276
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
277
+ <published>2010-09-30T18:47:35+00:00</published>
278
+ <updated>2010-09-30T18:47:35+00:00</updated>
279
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/52822605"/>
280
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/53268824.atom"/>
281
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/53268824.atom"/>
282
+ <statusnet:notice_info local_id="53268824" source="xmpp" favorite="false" repeated="false"></statusnet:notice_info>
283
+
284
+ </entry>
285
+ <entry>
286
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
287
+ <id>http://identi.ca/notice/53053891</id>
288
+ <title>Got the job as a school bus driver, I start cdl class next week</title>
289
+ <content type="html">Got the job as a school bus driver, I start cdl class next week</content>
290
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/53053891"/>
291
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
292
+ <published>2010-09-29T16:34:59+00:00</published>
293
+ <updated>2010-09-29T16:34:59+00:00</updated>
294
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/52610163"/>
295
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/53053891.atom"/>
296
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/53053891.atom"/>
297
+ <statusnet:notice_info local_id="53053891" source="&lt;a href=&quot;http://mustard.macno.org&quot; rel=&quot;nofollow&quot;&gt;mustard&lt;/a&gt;" source_link="http://mustard.macno.org" favorite="false" repeated="false"></statusnet:notice_info>
298
+
299
+ </entry>
300
+ <entry>
301
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
302
+ <id>http://identi.ca/notice/52674737</id>
303
+ <title>My bro is selling a nook and kindle for a friend, much fun shall be had by me</title>
304
+ <content type="html">My bro is selling a nook and kindle for a friend, much fun shall be had by me</content>
305
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/52674737"/>
306
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
307
+ <published>2010-09-27T16:04:44+00:00</published>
308
+ <updated>2010-09-27T16:04:44+00:00</updated>
309
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/52235564"/>
310
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/52674737.atom"/>
311
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/52674737.atom"/>
312
+ <statusnet:notice_info local_id="52674737" source="&lt;a href=&quot;http://mustard.macno.org&quot; rel=&quot;nofollow&quot;&gt;mustard&lt;/a&gt;" source_link="http://mustard.macno.org" favorite="false" repeated="false"></statusnet:notice_info>
313
+
314
+ </entry>
315
+ <entry>
316
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
317
+ <id>http://identi.ca/notice/52400602</id>
318
+ <title>Made mozzarella today, woot, next step, Swiss or Cheddar? Hmm</title>
319
+ <content type="html">Made mozzarella today, woot, next step, Swiss or Cheddar? Hmm</content>
320
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/52400602"/>
321
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
322
+ <published>2010-09-25T23:54:10+00:00</published>
323
+ <updated>2010-09-25T23:54:10+00:00</updated>
324
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/51964154"/>
325
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/52400602.atom"/>
326
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/52400602.atom"/>
327
+ <statusnet:notice_info local_id="52400602" source="&lt;a href=&quot;http://mustard.macno.org&quot; rel=&quot;nofollow&quot;&gt;mustard&lt;/a&gt;" source_link="http://mustard.macno.org" favorite="false" repeated="false"></statusnet:notice_info>
328
+
329
+ </entry>
330
+ <entry>
331
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
332
+ <id>http://identi.ca/notice/52201233</id>
333
+ <title>RT @candrews #Facebook went down yesterday, taking 1,000s of sites down with it. Is this single point of failure really worth it? http:/ ...</title>
334
+ <content type="html">RT @&lt;span class=&quot;vcard&quot;&gt;&lt;a href=&quot;http://identi.ca/user/12287&quot; class=&quot;url&quot; title=&quot;Craig Andrews&quot;&gt;&lt;span class=&quot;fn nickname&quot;&gt;candrews&lt;/span&gt;&lt;/a&gt;&lt;/span&gt; #&lt;span class=&quot;tag&quot;&gt;&lt;a href=&quot;http://identi.ca/tag/facebook&quot; rel=&quot;tag&quot;&gt;Facebook&lt;/a&gt;&lt;/span&gt; went down yesterday, taking 1,000s of sites down with it. Is this single point of failure really worth it? http:/ ...</content>
335
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/52201233"/>
336
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
337
+ <published>2010-09-24T18:40:10+00:00</published>
338
+ <updated>2010-09-24T18:40:10+00:00</updated>
339
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/51766744"/>
340
+ <ostatus:forward ref="http://identi.ca/notice/52180213" href="http://identi.ca/notice/52180213"></ostatus:forward>
341
+ <category term="facebook"></category>
342
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/52201233.atom"/>
343
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/52201233.atom"/>
344
+ <statusnet:notice_info local_id="52201233" source="web" favorite="false" repeated="false" repeat_of="52180213"></statusnet:notice_info>
345
+
346
+ </entry>
347
+ <entry>
348
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
349
+ <id>http://identi.ca/notice/52198476</id>
350
+ <title>anyone with an iphone want to trade a 15 dollar gift card for 15 cash, I got this as a gift and it is useless to me</title>
351
+ <content type="html">anyone with an iphone want to trade a 15 dollar gift card for 15 cash, I got this as a gift and it is useless to me</content>
352
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/52198476"/>
353
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
354
+ <published>2010-09-24T18:20:10+00:00</published>
355
+ <updated>2010-09-24T18:20:10+00:00</updated>
356
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/51764033"/>
357
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/52198476.atom"/>
358
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/52198476.atom"/>
359
+ <statusnet:notice_info local_id="52198476" source="xmpp" favorite="false" repeated="false"></statusnet:notice_info>
360
+
361
+ </entry>
362
+ <entry>
363
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
364
+ <id>http://identi.ca/notice/52078750</id>
365
+ <title>everytime the compressor for my air conditioner shuts off, my dog jumps thinking someone is at the door</title>
366
+ <content type="html">everytime the compressor for my air conditioner shuts off, my dog jumps thinking someone is at the door</content>
367
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/52078750"/>
368
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
369
+ <published>2010-09-24T02:40:22+00:00</published>
370
+ <updated>2010-09-24T02:40:22+00:00</updated>
371
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/51645609"/>
372
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/52078750.atom"/>
373
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/52078750.atom"/>
374
+ <statusnet:notice_info local_id="52078750" source="xmpp" favorite="false" repeated="false"></statusnet:notice_info>
375
+
376
+ </entry>
377
+ <entry>
378
+ <activity:object-type>http://activitystrea.ms/schema/1.0/note</activity:object-type>
379
+ <id>http://identi.ca/notice/51893773</id>
380
+ <title>5.5 hours without power</title>
381
+ <content type="html">5.5 hours without power</content>
382
+ <link rel="alternate" type="text/html" href="http://identi.ca/notice/51893773"/>
383
+ <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
384
+ <published>2010-09-23T02:15:02+00:00</published>
385
+ <updated>2010-09-23T02:15:02+00:00</updated>
386
+ <link rel="ostatus:conversation" href="http://identi.ca/conversation/51462564"/>
387
+ <link rel="self" type="application/atom+xml" href="http://identi.ca/api/statuses/show/51893773.atom"/>
388
+ <link rel="edit" type="application/atom+xml" href="http://identi.ca/api/statuses/show/51893773.atom"/>
389
+ <statusnet:notice_info local_id="51893773" source="&lt;a href=&quot;http://mustard.macno.org&quot; rel=&quot;nofollow&quot;&gt;mustard&lt;/a&gt;" source_link="http://mustard.macno.org" favorite="false" repeated="false"></statusnet:notice_info>
390
+
391
+ </entry>
392
+ </feed>
393
+