lotus 0.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+