activity_mapper 0.1.0

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 (41) hide show
  1. data/README.textile +211 -0
  2. data/lib/activity_mapper.rb +35 -0
  3. data/lib/activity_mapper/activity_data_mapper.rb +93 -0
  4. data/lib/activity_mapper/connector.rb +71 -0
  5. data/lib/activity_mapper/lexicon.txt +92662 -0
  6. data/lib/activity_mapper/linguistics.rb +147 -0
  7. data/lib/activity_mapper/service_module.rb +194 -0
  8. data/lib/activity_mapper/service_modules.rb +4 -0
  9. data/lib/activity_mapper/service_modules/delicious.rb +41 -0
  10. data/lib/activity_mapper/service_modules/flickr.rb +59 -0
  11. data/lib/activity_mapper/service_modules/twitter.rb +57 -0
  12. data/lib/activity_mapper/service_modules/wakoopa.rb +350 -0
  13. data/lib/activity_mapper/service_modules/youtube.rb +63 -0
  14. data/lib/extensions/uri.rb +42 -0
  15. data/spec/connector_mock.rb +49 -0
  16. data/spec/data/delicious_ac8fdf9b4e304b150bf198b42a1cb1b4.json +1 -0
  17. data/spec/data/delicious_ee55656e0f69242ccf02c3eb0f97b296.json +1 -0
  18. data/spec/data/flickr_2b826afe2906894197d92f7a41c2785c. +1 -0
  19. data/spec/data/flickr_3c25cf51d174ee4bb2d8673e294ce4c0.json +196 -0
  20. data/spec/data/flickr_482967b550afd05993ec4256fa1de388.json +229 -0
  21. data/spec/data/flickr_54c4b36bea4e2b14c783e5c50cba8544.json +9 -0
  22. data/spec/data/flickr_848ea91c1a903d0347d1029bf863132a. +1 -0
  23. data/spec/data/flickr_bcb82142f3d6998cabab3c82fba15ced.json +141 -0
  24. data/spec/data/flickr_e9d78058938c7c845a8de3a2c3526c61. +1 -0
  25. data/spec/data/twitter_227e1ca72a2ba08a1b03be2cd64b681e.json +274 -0
  26. data/spec/data/twitter_5dd0884137bf193d55d446619ec65c7e.json +1 -0
  27. data/spec/data/twitter_dd694fe9ebda58a84f92a859fb1cb79c.json +1 -0
  28. data/spec/data/wakoopa_1a8b94baf4eed4fd0e7ac39dc2f53059.json +1 -0
  29. data/spec/data/youtube_050e71a038359cc8ff7e00161e687b4e.json +1 -0
  30. data/spec/data/youtube_6d895fb0245f47b9e4fcc868d1f91674.json +1 -0
  31. data/spec/data/youtube_a92042581e44f9d3da548e2c7a89849c.json +1 -0
  32. data/spec/data/youtube_bf7b648ff8720edb1db951b7b9a474c4.json +1 -0
  33. data/spec/data/zemanta_suggest_for_tweet_response.xml +405 -0
  34. data/spec/models.rb +114 -0
  35. data/spec/service_modules/delicious_spec.rb +32 -0
  36. data/spec/service_modules/flickr_spec.rb +43 -0
  37. data/spec/service_modules/twitter_spec.rb +44 -0
  38. data/spec/service_modules/wakoopa_spec.rb +35 -0
  39. data/spec/service_modules/youtube_spec.rb +47 -0
  40. data/spec/spec_helper.rb +8 -0
  41. metadata +130 -0
@@ -0,0 +1 @@
1
+ {"version":"1.0","encoding":"UTF-8","feed":{"xmlns":"http://www.w3.org/2005/Atom","xmlns$openSearch":"http://a9.com/-/spec/opensearch/1.1/","xmlns$gd":"http://schemas.google.com/g/2005","gd$etag":"W/\"Ck4ARnw6cSp7ImA9WxJXE0s.\"","id":{"$t":"tag:youtube.com,2008:user:ejang:favorites"},"updated":{"$t":"2009-06-07T07:49:07.219Z"},"category":[{"scheme":"http://schemas.google.com/g/2005#kind","term":"http://gdata.youtube.com/schemas/2007#favorite"}],"title":{"$t":"Favorites of ejang"},"logo":{"$t":"http://www.youtube.com/img/pic_youtubelogo_123x63.gif"},"link":[{"rel":"related","type":"application/atom+xml","href":"http://gdata.youtube.com/feeds/api/users/ejang?v\u003d2"},{"rel":"alternate","type":"text/html","href":"http://www.youtube.com/profile_favorites?user\u003dejang"},{"rel":"http://schemas.google.com/g/2005#feed","type":"application/atom+xml","href":"http://gdata.youtube.com/feeds/api/users/ejang/favorites?v\u003d2"},{"rel":"http://schemas.google.com/g/2005#batch","type":"application/atom+xml","href":"http://gdata.youtube.com/feeds/api/users/ejang/favorites/batch?v\u003d2"},{"rel":"self","type":"application/atom+xml","href":"http://gdata.youtube.com/feeds/api/users/ejang/favorites?alt\u003djson\u0026start-index\u003d1\u0026max-results\u003d25\u0026v\u003d2"},{"rel":"service","type":"application/atomsvc+xml","href":"http://gdata.youtube.com/feeds/api/users/ejang/favorites?alt\u003datom-service\u0026v\u003d2"}],"author":[{"name":{"$t":"ejang"},"uri":{"$t":"http://gdata.youtube.com/feeds/api/users/ejang"}}],"generator":{"$t":"YouTube data API","version":"2.0","uri":"http://gdata.youtube.com/"},"openSearch$totalResults":{"$t":0},"openSearch$startIndex":{"$t":1},"openSearch$itemsPerPage":{"$t":25}}}
@@ -0,0 +1,405 @@
1
+ <rsp>
2
+ <status>ok</status>
3
+ <articles>
4
+ <article>
5
+ <url>http://www.prblogger.com/2009/01/journalist-did-you-get-my-press-release/</url>
6
+ <confidence>0.001636</confidence>
7
+ <published_datetime>2009-01-07T12:55:39Z</published_datetime>
8
+ <zemified>0</zemified>
9
+ <title>@Journalist Did you get my press release?</title>
10
+ </article><article>
11
+ <url>http://strivepr.com/2008/12/04/strivers-welcome-christmas/</url>
12
+ <confidence>0.001368</confidence>
13
+ <published_datetime>2008-12-04T11:38:27Z</published_datetime>
14
+ <zemified>1</zemified>
15
+ <title>Strivers welcome Christmas</title>
16
+ </article><article>
17
+ <url>http://strivepr.com/2009/01/08/15-january-is-thirdthusday-in-the-isle-of-man/</url>
18
+ <confidence>0.001362</confidence>
19
+ <published_datetime>2009-01-08T14:40:33Z</published_datetime>
20
+ <zemified>0</zemified>
21
+ <title>15 January is ThirdThusday in the Isle of Man</title>
22
+ </article><article>
23
+ <url>http://googlesystem.blogspot.com/2009/01/android-for-netbooks.html</url>
24
+ <confidence>0.001352</confidence>
25
+ <published_datetime>2009-01-03T16:27:00Z</published_datetime>
26
+ <zemified>0</zemified>
27
+ <title>Android for Netbooks?</title>
28
+ </article><article>
29
+ <url>http://strivepr.com/2008/11/07/junior-achievement-isle-of-man-2/</url>
30
+ <confidence>0.001203</confidence>
31
+ <published_datetime>2008-11-07T11:33:28Z</published_datetime>
32
+ <zemified>1</zemified>
33
+ <title>Junior Achievement Isle of Man</title>
34
+ </article><article>
35
+ <url>http://create-iom.com/blog/isle-of-man-recruitment-agency-launched/</url>
36
+ <confidence>0.001172</confidence>
37
+ <published_datetime>2008-11-13T21:19:42Z</published_datetime>
38
+ <zemified>1</zemified>
39
+ <title>Isle of Man Recruitment Agency Launched</title>
40
+ </article><article>
41
+ <url>http://www.u-g-h.com/2008/12/03/top-5-manx-tweeters/</url>
42
+ <confidence>0.001166</confidence>
43
+ <published_datetime>2008-12-03T23:15:28Z</published_datetime>
44
+ <zemified>1</zemified>
45
+ <title>Top 5 Manx Tweeters</title>
46
+ </article><article>
47
+ <url>http://laist.com/2008/12/22/box_office_review_yes.php</url>
48
+ <confidence>0.001164</confidence>
49
+ <published_datetime>2008-12-22T16:00:00Z</published_datetime>
50
+ <zemified>0</zemified>
51
+ <title>Box Office Review: No! Yes!</title>
52
+ </article><article>
53
+ <url>http://www.cbsnews.com/stories/2009/01/07/ap/strange/main4705221.shtml?source=RSS&amp;attr=_4705221</url>
54
+ <confidence>0.001146</confidence>
55
+ <published_datetime>2009-01-07T21:27:23Z</published_datetime>
56
+ <zemified>0</zemified>
57
+ <title>Man Accused Of Urinating On Bouncer At Alaska Bar</title>
58
+ </article><article>
59
+ <url>http://www.socialmediatoday.com/SMC/55901</url>
60
+ <confidence>0.001139</confidence>
61
+ <published_datetime>2008-11-10T13:36:21Z</published_datetime>
62
+ <zemified>0</zemified>
63
+ <title>More tips on supercharging your PR efforts with Twitter (a case study in open source PR)</title>
64
+ </article>
65
+ </articles><markup>
66
+ <text>@pr1001 @sjoert &amp;quot;I&amp;apos;m a bad man, and not ashamed of it&amp;quot;\u266b ;-)</text>
67
+ </markup><images>
68
+ <image>
69
+ <url_m_h>151</url_m_h>
70
+ <confidence>0.765693</confidence>
71
+ <url_s_h>56</url_s_h>
72
+ <attribution>Image via &lt;a href="http://en.wikipedia.org/wiki/Image:The_Man_from_U.N.C.L.E.jpg"&gt;Wikipedia&lt;/a&gt;</attribution>
73
+ <description>The Man from U.N.C.L.E.</description>
74
+ <license>Non-free, could qualify as fair use</license>
75
+ <url_l_w>310</url_l_w>
76
+ <url_s>http://upload.wikimedia.org/wikipedia/en/thumb/d/de/The_Man_from_U.N.C.L.E.jpg/75px-The_Man_from_U.N.C.L.E.jpg</url_s>
77
+ <source_url>http://en.wikipedia.org/wiki/Image:The_Man_from_U.N.C.L.E.jpg</source_url>
78
+ <url_m>http://upload.wikimedia.org/wikipedia/en/thumb/d/de/The_Man_from_U.N.C.L.E.jpg/202px-The_Man_from_U.N.C.L.E.jpg</url_m>
79
+ <url_l>http://upload.wikimedia.org/wikipedia/en/d/de/The_Man_from_U.N.C.L.E.jpg</url_l>
80
+ <url_l_h>231</url_l_h>
81
+ <url_s_w>75</url_s_w>
82
+ <url_m_w>202</url_m_w>
83
+ </image><image>
84
+ <url_m_h>210</url_m_h>
85
+ <confidence>0.53465</confidence>
86
+ <url_s_h>78</url_s_h>
87
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:IoM.JPG"&gt;Wikipedia&lt;/a&gt;</attribution>
88
+ <description>A satellite image of the Isle of Man.</description>
89
+ <license>Public domain</license>
90
+ <url_l_w>245</url_l_w>
91
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/IoM.JPG/75px-IoM.JPG</url_s>
92
+ <source_url>http://commons.wikipedia.org/wiki/Image:IoM.JPG</source_url>
93
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/IoM.JPG/202px-IoM.JPG</url_m>
94
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/8/8b/IoM.JPG</url_l>
95
+ <url_l_h>255</url_l_h>
96
+ <url_s_w>75</url_s_w>
97
+ <url_m_w>202</url_m_w>
98
+ </image><image>
99
+ <url_m_h>152</url_m_h>
100
+ <confidence>0.509928</confidence>
101
+ <url_s_h>56</url_s_h>
102
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:Manx_loaghtan.jpg"&gt;Wikipedia&lt;/a&gt;</attribution>
103
+ <description>Photograph of Manx Loaghtan sheep taken at The Grove Rural Life Museum, Ramsey, Isle of Man on 30 September 2005</description>
104
+ <license>Public domain</license>
105
+ <url_l_w>1024</url_l_w>
106
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Manx_loaghtan.jpg/75px-Manx_loaghtan.jpg</url_s>
107
+ <source_url>http://commons.wikipedia.org/wiki/Image:Manx_loaghtan.jpg</source_url>
108
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Manx_loaghtan.jpg/202px-Manx_loaghtan.jpg</url_m>
109
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/1/11/Manx_loaghtan.jpg</url_l>
110
+ <url_l_h>768</url_l_h>
111
+ <url_s_w>75</url_s_w>
112
+ <url_m_w>202</url_m_w>
113
+ </image><image>
114
+ <url_m_h>185</url_m_h>
115
+ <confidence>0.471673</confidence>
116
+ <url_s_h>69</url_s_h>
117
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:Isle_of_Man_map-en.svg"&gt;Wikipedia&lt;/a&gt;</attribution>
118
+ <description>Map in English of the Isle of Man. Note : The shaded relief is a raster image embedded in the SVG.</description>
119
+ <license>CC Attribution ShareAlike 2.5 license</license>
120
+ <url_l_w>1200</url_l_w>
121
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Isle_of_Man_map-en.svg/75px-Isle_of_Man_map-en.svg.png</url_s>
122
+ <source_url>http://commons.wikipedia.org/wiki/Image:Isle_of_Man_map-en.svg</source_url>
123
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Isle_of_Man_map-en.svg/202px-Isle_of_Man_map-en.svg.png</url_m>
124
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/6/63/Isle_of_Man_map-en.svg</url_l>
125
+ <url_l_h>1100</url_l_h>
126
+ <url_s_w>75</url_s_w>
127
+ <url_m_w>202</url_m_w>
128
+ </image><image>
129
+ <url_m_h>185</url_m_h>
130
+ <confidence>0.4715</confidence>
131
+ <url_s_h>69</url_s_h>
132
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:IsleOfMan_SheadingsAndParishes-en.svg"&gt;Wikipedia&lt;/a&gt;</attribution>
133
+ <description>Map in english of the Isle of Man, with bounds of sheadings, towns, villages, districts and parishes.</description>
134
+ <license>CC Attribution ShareAlike 2.5 license</license>
135
+ <url_l_w>1200</url_l_w>
136
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/IsleOfMan_SheadingsAndParishes-en.svg/75px-IsleOfMan_SheadingsAndParishes-en.svg.png</url_s>
137
+ <source_url>http://commons.wikipedia.org/wiki/Image:IsleOfMan_SheadingsAndParishes-en.svg</source_url>
138
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/b/b9/IsleOfMan_SheadingsAndParishes-en.svg/202px-IsleOfMan_SheadingsAndParishes-en.svg.png</url_m>
139
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/b/b9/IsleOfMan_SheadingsAndParishes-en.svg</url_l>
140
+ <url_l_h>1100</url_l_h>
141
+ <url_s_w>75</url_s_w>
142
+ <url_m_w>202</url_m_w>
143
+ </image><image>
144
+ <url_m_h>152</url_m_h>
145
+ <confidence>0.463686</confidence>
146
+ <url_s_h>56</url_s_h>
147
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:Isle_of_Man_Peel_Castle.jpg"&gt;Wikipedia&lt;/a&gt;</attribution>
148
+ <description>Peel Castle at Peel, Isle of Man</description>
149
+ <license>Public domain</license>
150
+ <url_l_w>2272</url_l_w>
151
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Isle_of_Man_Peel_Castle.jpg/75px-Isle_of_Man_Peel_Castle.jpg</url_s>
152
+ <source_url>http://commons.wikipedia.org/wiki/Image:Isle_of_Man_Peel_Castle.jpg</source_url>
153
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Isle_of_Man_Peel_Castle.jpg/202px-Isle_of_Man_Peel_Castle.jpg</url_m>
154
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/4/4a/Isle_of_Man_Peel_Castle.jpg</url_l>
155
+ <url_l_h>1704</url_l_h>
156
+ <url_s_w>75</url_s_w>
157
+ <url_m_w>202</url_m_w>
158
+ </image><image>
159
+ <url_m_h>272</url_m_h>
160
+ <confidence>0.437642</confidence>
161
+ <url_s_h>101</url_s_h>
162
+ <attribution>Image via &lt;a href="http://en.wikipedia.org/wiki/Image:ManFromUNCLEbook.jpg"&gt;Wikipedia&lt;/a&gt;</attribution>
163
+ <description>Rare children's storybook based upon The Man from U.N.C.L.E. Left to right: David McCallum, Robert Vaughn and Leo G. Carroll.</description>
164
+ <license>Non-free, could qualify as fair use</license>
165
+ <url_l_w>1212</url_l_w>
166
+ <url_s>http://upload.wikimedia.org/wikipedia/en/thumb/e/e9/ManFromUNCLEbook.jpg/75px-ManFromUNCLEbook.jpg</url_s>
167
+ <source_url>http://en.wikipedia.org/wiki/Image:ManFromUNCLEbook.jpg</source_url>
168
+ <url_m>http://upload.wikimedia.org/wikipedia/en/thumb/e/e9/ManFromUNCLEbook.jpg/202px-ManFromUNCLEbook.jpg</url_m>
169
+ <url_l>http://upload.wikimedia.org/wikipedia/en/e/e9/ManFromUNCLEbook.jpg</url_l>
170
+ <url_l_h>1634</url_l_h>
171
+ <url_s_w>75</url_s_w>
172
+ <url_m_w>202</url_m_w>
173
+ </image><image>
174
+ <url_m_h>152</url_m_h>
175
+ <confidence>0.437558</confidence>
176
+ <url_s_h>56</url_s_h>
177
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:Sound_IOM.JPG"&gt;Wikipedia&lt;/a&gt;</attribution>
178
+ <description>The Calf of Man seen from Cregneash.</description>
179
+ <license>Public domain</license>
180
+ <url_l_w>2048</url_l_w>
181
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/2/25/Sound_IOM.JPG/75px-Sound_IOM.JPG</url_s>
182
+ <source_url>http://commons.wikipedia.org/wiki/Image:Sound_IOM.JPG</source_url>
183
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/2/25/Sound_IOM.JPG/202px-Sound_IOM.JPG</url_m>
184
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/2/25/Sound_IOM.JPG</url_l>
185
+ <url_l_h>1536</url_l_h>
186
+ <url_s_w>75</url_s_w>
187
+ <url_m_w>202</url_m_w>
188
+ </image><image>
189
+ <url_m_h>341</url_m_h>
190
+ <confidence>0.421927</confidence>
191
+ <url_s_h>127</url_s_h>
192
+ <attribution>Image via &lt;a href="http://en.wikipedia.org/wiki/Image:ManfromUncle1.jpg"&gt;Wikipedia&lt;/a&gt;</attribution>
193
+ <description>The first Man from U.N.C.L.E. novel, by Michael Avallone. Pictured: Robert Vaughn.</description>
194
+ <license>Non-free, could qualify as fair use</license>
195
+ <url_l_w>1240</url_l_w>
196
+ <url_s>http://upload.wikimedia.org/wikipedia/en/thumb/3/31/ManfromUncle1.jpg/75px-ManfromUncle1.jpg</url_s>
197
+ <source_url>http://en.wikipedia.org/wiki/Image:ManfromUncle1.jpg</source_url>
198
+ <url_m>http://upload.wikimedia.org/wikipedia/en/thumb/3/31/ManfromUncle1.jpg/202px-ManfromUncle1.jpg</url_m>
199
+ <url_l>http://upload.wikimedia.org/wikipedia/en/3/31/ManfromUncle1.jpg</url_l>
200
+ <url_l_h>2092</url_l_h>
201
+ <url_s_w>75</url_s_w>
202
+ <url_m_w>202</url_m_w>
203
+ </image><image>
204
+ <url_m_h>353</url_m_h>
205
+ <confidence>0.391581</confidence>
206
+ <url_s_h>131</url_s_h>
207
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:British_Isles_Isle_of_Man.svg"&gt;Wikipedia&lt;/a&gt;</attribution>
208
+ <description>map showing the Isle of Man in relation to Great Britain and Ireland</description>
209
+ <license>Public domain</license>
210
+ <url_l_w>675</url_l_w>
211
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/British_Isles_Isle_of_Man.svg/75px-British_Isles_Isle_of_Man.svg.png</url_s>
212
+ <source_url>http://commons.wikipedia.org/wiki/Image:British_Isles_Isle_of_Man.svg</source_url>
213
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/British_Isles_Isle_of_Man.svg/202px-British_Isles_Isle_of_Man.svg.png</url_m>
214
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/9/9e/British_Isles_Isle_of_Man.svg</url_l>
215
+ <url_l_h>1180</url_l_h>
216
+ <url_s_w>75</url_s_w>
217
+ <url_m_w>202</url_m_w>
218
+ </image><image>
219
+ <url_m_h>133</url_m_h>
220
+ <confidence>0.38519</confidence>
221
+ <url_s_h>49</url_s_h>
222
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:Douglas_Isle_of_Man_welcome_sign.jpg"&gt;Wikipedia&lt;/a&gt;</attribution>
223
+ <description>A bilingual sign on the Isle of Man featuring Manx Gaelic and English.</description>
224
+ <license>CC Attribution ShareAlike 1.0 license</license>
225
+ <url_l_w>574</url_l_w>
226
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/Douglas_Isle_of_Man_welcome_sign.jpg/75px-Douglas_Isle_of_Man_welcome_sign.jpg</url_s>
227
+ <source_url>http://commons.wikipedia.org/wiki/Image:Douglas_Isle_of_Man_welcome_sign.jpg</source_url>
228
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/Douglas_Isle_of_Man_welcome_sign.jpg/202px-Douglas_Isle_of_Man_welcome_sign.jpg</url_m>
229
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/c/c4/Douglas_Isle_of_Man_welcome_sign.jpg</url_l>
230
+ <url_l_h>378</url_l_h>
231
+ <url_s_w>75</url_s_w>
232
+ <url_m_w>202</url_m_w>
233
+ </image><image>
234
+ <url_m_h>177</url_m_h>
235
+ <confidence>0.360302</confidence>
236
+ <url_s_h>66</url_s_h>
237
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:Manx_Triskelion.png"&gt;Wikipedia&lt;/a&gt;</attribution>
238
+ <description>Manx triskelion.</description>
239
+ <license>Public domain</license>
240
+ <url_l_w>236</url_l_w>
241
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Manx_Triskelion.png/75px-Manx_Triskelion.png</url_s>
242
+ <source_url>http://commons.wikipedia.org/wiki/Image:Manx_Triskelion.png</source_url>
243
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Manx_Triskelion.png/202px-Manx_Triskelion.png</url_m>
244
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/1/15/Manx_Triskelion.png</url_l>
245
+ <url_l_h>207</url_l_h>
246
+ <url_s_w>75</url_s_w>
247
+ <url_m_w>202</url_m_w>
248
+ </image><image>
249
+ <url_m_h>148</url_m_h>
250
+ <confidence>0.322363</confidence>
251
+ <url_s_h>55</url_s_h>
252
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:Carte_Europe_1843.jpg"&gt;Wikipedia&lt;/a&gt;</attribution>
253
+ <description>old maps from histoirepostale.</description>
254
+ <license>CC Attribution ShareAlike 3.0 license</license>
255
+ <url_l_w>3369</url_l_w>
256
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Carte_Europe_1843.jpg/75px-Carte_Europe_1843.jpg</url_s>
257
+ <source_url>http://commons.wikipedia.org/wiki/Image:Carte_Europe_1843.jpg</source_url>
258
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Carte_Europe_1843.jpg/202px-Carte_Europe_1843.jpg</url_m>
259
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/9/9c/Carte_Europe_1843.jpg</url_l>
260
+ <url_l_h>2475</url_l_h>
261
+ <url_s_w>75</url_s_w>
262
+ <url_m_w>202</url_m_w>
263
+ </image><image>
264
+ <url_m_h>111</url_m_h>
265
+ <confidence>0.322042</confidence>
266
+ <url_s_h>41</url_s_h>
267
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:Vegetation_Europe.png"&gt;Wikipedia&lt;/a&gt;</attribution>
268
+ <description>Vegetation in Europe (see also: :Image:Europe biogeography countries.</description>
269
+ <license>CC Attribution ShareAlike 2.5 license</license>
270
+ <url_l_w>288</url_l_w>
271
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Vegetation_Europe.png/75px-Vegetation_Europe.png</url_s>
272
+ <source_url>http://commons.wikipedia.org/wiki/Image:Vegetation_Europe.png</source_url>
273
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Vegetation_Europe.png/202px-Vegetation_Europe.png</url_m>
274
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/c/c5/Vegetation_Europe.png</url_l>
275
+ <url_l_h>158</url_l_h>
276
+ <url_s_w>75</url_s_w>
277
+ <url_m_w>202</url_m_w>
278
+ </image><image>
279
+ <url_m_h>152</url_m_h>
280
+ <confidence>0.321327</confidence>
281
+ <url_s_h>57</url_s_h>
282
+ <attribution>Image via &lt;a href="http://en.wikipedia.org/wiki/Image:Europe%2C_EU.png"&gt;Wikipedia&lt;/a&gt;</attribution>
283
+ <description>Eu, Candidates and the rest of the Europe</description>
284
+ <license>Public domain</license>
285
+ <url_l_w>1231</url_l_w>
286
+ <url_s>http://upload.wikimedia.org/wikipedia/en/thumb/1/15/Europe%2C_EU.png/75px-Europe%2C_EU.png</url_s>
287
+ <source_url>http://en.wikipedia.org/wiki/Image:Europe%2C_EU.png</source_url>
288
+ <url_m>http://upload.wikimedia.org/wikipedia/en/thumb/1/15/Europe%2C_EU.png/202px-Europe%2C_EU.png</url_m>
289
+ <url_l>http://upload.wikimedia.org/wikipedia/en/1/15/Europe%2C_EU.png</url_l>
290
+ <url_l_h>929</url_l_h>
291
+ <url_s_w>75</url_s_w>
292
+ <url_m_w>202</url_m_w>
293
+ </image><image>
294
+ <url_m_h>143</url_m_h>
295
+ <confidence>0.321295</confidence>
296
+ <url_s_h>53</url_s_h>
297
+ <attribution>Image via &lt;a href="http://en.wikipedia.org/wiki/Image:Map-Coeurope.jpg"&gt;Wikipedia&lt;/a&gt;</attribution>
298
+ <description>Council of Europe's definition of Europe</description>
299
+ <license>Public domain</license>
300
+ <url_l_w>838</url_l_w>
301
+ <url_s>http://upload.wikimedia.org/wikipedia/en/thumb/d/dd/Map-Coeurope.jpg/75px-Map-Coeurope.jpg</url_s>
302
+ <source_url>http://en.wikipedia.org/wiki/Image:Map-Coeurope.jpg</source_url>
303
+ <url_m>http://upload.wikimedia.org/wikipedia/en/thumb/d/dd/Map-Coeurope.jpg/202px-Map-Coeurope.jpg</url_m>
304
+ <url_l>http://upload.wikimedia.org/wikipedia/en/d/dd/Map-Coeurope.jpg</url_l>
305
+ <url_l_h>593</url_l_h>
306
+ <url_s_w>75</url_s_w>
307
+ <url_m_w>202</url_m_w>
308
+ </image><image>
309
+ <url_m_h>124</url_m_h>
310
+ <confidence>0.320971</confidence>
311
+ <url_s_h>46</url_s_h>
312
+ <attribution>Image via &lt;a href="http://en.wikipedia.org/wiki/Image:Europe_gdp_real_growth_rate_-_2007.PNG"&gt;Wikipedia&lt;/a&gt;</attribution>
313
+ <description>GDP real growth rate in Europe</description>
314
+ <license>Public domain</license>
315
+ <url_l_w>341</url_l_w>
316
+ <url_s>http://upload.wikimedia.org/wikipedia/en/thumb/1/19/Europe_gdp_real_growth_rate_-_2007.PNG/75px-Europe_gdp_real_growth_rate_-_2007.PNG</url_s>
317
+ <source_url>http://en.wikipedia.org/wiki/Image:Europe_gdp_real_growth_rate_-_2007.PNG</source_url>
318
+ <url_m>http://upload.wikimedia.org/wikipedia/en/thumb/1/19/Europe_gdp_real_growth_rate_-_2007.PNG/202px-Europe_gdp_real_growth_rate_-_2007.PNG</url_m>
319
+ <url_l>http://upload.wikimedia.org/wikipedia/en/1/19/Europe_gdp_real_growth_rate_-_2007.PNG</url_l>
320
+ <url_l_h>209</url_l_h>
321
+ <url_s_w>75</url_s_w>
322
+ <url_m_w>202</url_m_w>
323
+ </image><image>
324
+ <url_m_h>146</url_m_h>
325
+ <confidence>0.319408</confidence>
326
+ <url_s_h>54</url_s_h>
327
+ <attribution>Image via &lt;a href="http://en.wikipedia.org/wiki/Image:WWI_end.jpg"&gt;Wikipedia&lt;/a&gt;</attribution>
328
+ <description>Europe 1918</description>
329
+ <license>Public domain</license>
330
+ <url_l_w>1198</url_l_w>
331
+ <url_s>http://upload.wikimedia.org/wikipedia/en/thumb/5/5a/WWI_end.jpg/75px-WWI_end.jpg</url_s>
332
+ <source_url>http://en.wikipedia.org/wiki/Image:WWI_end.jpg</source_url>
333
+ <url_m>http://upload.wikimedia.org/wikipedia/en/thumb/5/5a/WWI_end.jpg/202px-WWI_end.jpg</url_m>
334
+ <url_l>http://upload.wikimedia.org/wikipedia/en/5/5a/WWI_end.jpg</url_l>
335
+ <url_l_h>863</url_l_h>
336
+ <url_s_w>75</url_s_w>
337
+ <url_m_w>202</url_m_w>
338
+ </image><image>
339
+ <url_m_h>103</url_m_h>
340
+ <confidence>0.288821</confidence>
341
+ <url_s_h>38</url_s_h>
342
+ <attribution>Image via &lt;a href="http://commons.wikipedia.org/wiki/Image:TV-introduction-world-map.svg"&gt;Wikipedia&lt;/a&gt;</attribution>
343
+ <description>{{legend|#ff0000|1930 to 1939}} {{legend|#ff5400|1940 to 1949}} {{legend|#ffa800|1950 to 1959}} {{legend|#ffff00|1960 to 1969}} {{legend|#a8ff00|1970 to 1979}} {{legend|#54ff00|1980 to 1989}} {{legend|#00ff00|1990 to 1999}} {{legend|Grey|No data}}</description>
344
+ <license>Public domain</license>
345
+ <url_l_w>940</url_l_w>
346
+ <url_s>http://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/TV-introduction-world-map.svg/75px-TV-introduction-world-map.svg.png</url_s>
347
+ <source_url>http://commons.wikipedia.org/wiki/Image:TV-introduction-world-map.svg</source_url>
348
+ <url_m>http://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/TV-introduction-world-map.svg/202px-TV-introduction-world-map.svg.png</url_m>
349
+ <url_l>http://upload.wikimedia.org/wikipedia/commons/1/1a/TV-introduction-world-map.svg</url_l>
350
+ <url_l_h>477</url_l_h>
351
+ <url_s_w>75</url_s_w>
352
+ <url_m_w>202</url_m_w>
353
+ </image><image>
354
+ <url_m_h>202</url_m_h>
355
+ <confidence>0.281531</confidence>
356
+ <url_s_h>75</url_s_h>
357
+ <attribution>Image via &lt;a href="http://en.wikipedia.org/wiki/Image:In_Defense_of_the_Genre.jpg"&gt;Wikipedia&lt;/a&gt;</attribution>
358
+ <description>In Defense of the Genre album cover</description>
359
+ <license>Non-free, could qualify as fair use</license>
360
+ <url_l_w>599</url_l_w>
361
+ <url_s>http://upload.wikimedia.org/wikipedia/en/thumb/f/f2/In_Defense_of_the_Genre.jpg/75px-In_Defense_of_the_Genre.jpg</url_s>
362
+ <source_url>http://en.wikipedia.org/wiki/Image:In_Defense_of_the_Genre.jpg</source_url>
363
+ <url_m>http://upload.wikimedia.org/wikipedia/en/thumb/f/f2/In_Defense_of_the_Genre.jpg/202px-In_Defense_of_the_Genre.jpg</url_m>
364
+ <url_l>http://upload.wikimedia.org/wikipedia/en/f/f2/In_Defense_of_the_Genre.jpg</url_l>
365
+ <url_l_h>600</url_l_h>
366
+ <url_s_w>75</url_s_w>
367
+ <url_m_w>202</url_m_w>
368
+ </image>
369
+ </images><signature>&lt;div class="zemanta-pixie"&gt;&lt;a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/840fc157-57e3-4698-8e39-1314394c8184/" title="Zemified by Zemanta"&gt;&lt;img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=840fc157-57e3-4698-8e39-1314394c8184" alt="Reblog this post [with Zemanta]" /&gt;&lt;/a&gt;&lt;/div&gt;</signature>
370
+ <keywords>
371
+ <keyword>
372
+ <confidence>0.212814</confidence>
373
+ <scheme>general</scheme>
374
+ <name>Isle of Man</name>
375
+ </keyword><keyword>
376
+ <confidence>0.09721</confidence>
377
+ <scheme>general</scheme>
378
+ <name>Arts</name>
379
+ </keyword><keyword>
380
+ <confidence>0.070083</confidence>
381
+ <scheme>general</scheme>
382
+ <name>Movies</name>
383
+ </keyword><keyword>
384
+ <confidence>0.062992</confidence>
385
+ <scheme>general</scheme>
386
+ <name>Public relations</name>
387
+ </keyword><keyword>
388
+ <confidence>0.049783</confidence>
389
+ <scheme>general</scheme>
390
+ <name>Society and Culture</name>
391
+ </keyword><keyword>
392
+ <confidence>0.042346</confidence>
393
+ <scheme>general</scheme>
394
+ <name>Twitter</name>
395
+ </keyword><keyword>
396
+ <confidence>0.041526</confidence>
397
+ <scheme>general</scheme>
398
+ <name>Television</name>
399
+ </keyword><keyword>
400
+ <confidence>0.041526</confidence>
401
+ <scheme>general</scheme>
402
+ <name>Programs</name>
403
+ </keyword>
404
+ </keywords><rid>840fc157-57e3-4698-8e39-1314394c8184</rid>
405
+ </rsp>
@@ -0,0 +1,114 @@
1
+
2
+ # For this example, we're using OpenStruct as a storage system.
3
+ # Normally one would use DataMapper or ActiveRecord
4
+
5
+ require 'ostruct'
6
+
7
+ class PersistentObject < OpenStruct
8
+
9
+ attr_accessor :id
10
+
11
+ def self.create(*arg)
12
+ self.new(*arg)
13
+ end
14
+
15
+ def update_attributes(attrs)
16
+ attrs.each do |name, value|
17
+ self.send("#{name}=", value)
18
+ end
19
+ end
20
+
21
+ end
22
+
23
+ # -- All objects below need to be defined in order for activity_mapper to function
24
+
25
+ # Your base user object
26
+ class User < PersistentObject; end
27
+
28
+ # Profile information: username, native_id, url
29
+ class ServiceProfile < PersistentObject
30
+
31
+ # belongs_to :user, implement me!
32
+ # has_many :activities, implement me!
33
+ def initialize(*arg); super(*arg); @activities = []; end
34
+ attr_accessor :activities
35
+
36
+ # -- All below is code necessary for routing to the proper service module (based on URL)
37
+
38
+ def create_or_update_summary!(*arg); service_module ? service_module.create_or_update_summary!(*arg) : nil; end
39
+ def aggregate_activity!(*arg); service_module ? service_module.aggregate_activity!(*arg) : nil; end
40
+ def analyze_this(*arg); service_module ? service_module.analyze_this(*arg) : nil; end
41
+
42
+ def service_module
43
+ return @service_module if @service_module
44
+ if (service_module_klass = ActivityMapper::ServiceModule.klass_for(url))
45
+ @service_module = service_module_klass.new(self)
46
+ else
47
+ nil
48
+ end
49
+ end
50
+
51
+ end
52
+
53
+ # The actual event that happened: caption, occurred_at, url, reference to ActivityObject
54
+ class Activity < PersistentObject
55
+
56
+ # has_one :object, implement me!
57
+
58
+ # Implement anti-duplication mechanisms here
59
+ def self.exists?(user_id, entry)
60
+ false
61
+ end
62
+
63
+ end
64
+
65
+ # The object that's referenced by the event: title, body, url, created_at
66
+ class ActivityObject < PersistentObject
67
+
68
+ def self.fetch(content_identifier, activity_object_type_id)
69
+ nil
70
+ end
71
+
72
+ def self.content_identifier(url)
73
+ MD5.hexdigest(url)
74
+ end
75
+
76
+ # To support space separated tags from APIs
77
+ def spaced_tags=(value)
78
+ self.tag_list = value.to_s.split(' ')
79
+ end
80
+
81
+ end
82
+
83
+ # Optional object that holds ranking/stats information
84
+ class RatingSummary < PersistentObject; end
85
+
86
+ # Hold media information
87
+ class Media < PersistentObject; end
88
+
89
+ # See activitystrea.ms for more verbs
90
+ class ActivityVerb < PersistentObject
91
+
92
+ # Constant Cache
93
+ POST = ActivityVerb.new(:id => 1)
94
+ FAVORITE = ActivityVerb.new(:id => 2)
95
+ RECENTLY_USED = ActivityVerb.new(:id => 3)
96
+ NEWLY_USED = ActivityVerb.new(:id => 4)
97
+
98
+ end
99
+
100
+ # See activitystrea.ms for more types
101
+ class ActivityObjectType < PersistentObject
102
+
103
+ # Constant Cache
104
+ STATUS = ActivityObjectType.new(:id => 1)
105
+ BOOKMARK = ActivityObjectType.new(:id => 2)
106
+ PHOTO = ActivityObjectType.new(:id => 3)
107
+ VIDEO = ActivityObjectType.new(:id => 4)
108
+ SONG = ActivityObjectType.new(:id => 5)
109
+ MIXED = ActivityObjectType.new(:id => 6)
110
+ SOFTWARE = ActivityObjectType.new(:id => 7)
111
+ SLIDESHOW = ActivityObjectType.new(:id => 8)
112
+
113
+ end
114
+