muck-raker 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +24 -0
  3. data/Rakefile +76 -0
  4. data/VERSION +1 -0
  5. data/app/controllers/admin/recommender/feeds_controller.rb +174 -0
  6. data/app/controllers/recommender/default_controller.rb +15 -0
  7. data/app/controllers/recommender/entries_controller.rb +79 -0
  8. data/app/controllers/recommender/recommendations_controller.rb +46 -0
  9. data/app/controllers/recommender/search_controller.rb +82 -0
  10. data/app/helpers/muck_raker_helper.rb +29 -0
  11. data/app/models/click.rb +2 -0
  12. data/app/models/cloud_cache.rb +9 -0
  13. data/app/models/entry.rb +274 -0
  14. data/app/models/feed.rb +29 -0
  15. data/app/models/language.rb +2 -0
  16. data/app/models/oai_endpoint.rb +2 -0
  17. data/app/models/recommendation.rb +2 -0
  18. data/app/models/service.rb +2 -0
  19. data/app/models/subject.rb +2 -0
  20. data/app/models/user.rb +36 -0
  21. data/app/views/default/_advertisements.html.erb +30 -0
  22. data/app/views/default/_language_list.html.erb +5 -0
  23. data/app/views/default/index.html.erb +3 -0
  24. data/app/views/default/tour.html.erb +15 -0
  25. data/app/views/default/widgets.html.erb +4 -0
  26. data/app/views/documents/.tmp_not_found.html +0 -0
  27. data/app/views/entries/_cloud_type_selector.html.erb +9 -0
  28. data/app/views/entries/_result.html.erb +10 -0
  29. data/app/views/entries/_tag_cloud.html.erb +4 -0
  30. data/app/views/entries/_tags.html.erb +7 -0
  31. data/app/views/entries/browse_by_tags.html.erb +33 -0
  32. data/app/views/entries/collections.html.erb +28 -0
  33. data/app/views/entries/details.html.erb +39 -0
  34. data/app/views/entries/index.html.erb +8 -0
  35. data/app/views/entries/search.html.erb +21 -0
  36. data/app/views/entries/show.html.erb +19 -0
  37. data/app/views/entries/track_clicks.html.erb +0 -0
  38. data/app/views/feeds/_feed_selection.html.erb +1 -0
  39. data/app/views/feeds/edit.html.erb +107 -0
  40. data/app/views/feeds/harvest_now.html.erb +3 -0
  41. data/app/views/feeds/index.html.erb +95 -0
  42. data/app/views/feeds/new.html.erb +109 -0
  43. data/app/views/feeds/unban.html.erb +3 -0
  44. data/app/views/layouts/_flashes.html.erb +5 -0
  45. data/app/views/layouts/default.html.erb +35 -0
  46. data/app/views/layouts/default_old.html.erb +43 -0
  47. data/app/views/layouts/global/_header.html.erb +16 -0
  48. data/app/views/layouts/global/_search_box.html.erb +13 -0
  49. data/app/views/layouts/recommendations.html.erb +17 -0
  50. data/app/views/recommendations/document_not_found.html.erb +13 -0
  51. data/app/views/recommendations/index.pjs.erb +44 -0
  52. data/app/views/recommendations/index.rss.builder +37 -0
  53. data/app/views/recommendations/index.xml.builder +34 -0
  54. data/app/views/recommendations/index_js.pjs.erb +35 -0
  55. data/app/views/search/_languages.html.erb +6 -0
  56. data/app/views/search/_result.html.erb +9 -0
  57. data/app/views/search/_search_box.html.erb +9 -0
  58. data/app/views/search/index.html.erb +5 -0
  59. data/app/views/search/results.atom.builder +27 -0
  60. data/app/views/search/results.html.erb +35 -0
  61. data/app/views/search/results.pjs.erb +13 -0
  62. data/app/views/search/results.rdf.builder +24 -0
  63. data/app/views/search/results.rss.builder +31 -0
  64. data/app/views/search/results.xml.builder +19 -0
  65. data/config/muck_raker_routes.rb +39 -0
  66. data/config/solr/README.txt +0 -0
  67. data/config/solr/cores/de/conf/protwords.txt +21 -0
  68. data/config/solr/cores/de/conf/schema.xml +81 -0
  69. data/config/solr/cores/de/conf/solrconfig.xml +304 -0
  70. data/config/solr/cores/de/conf/stopwords.txt +341 -0
  71. data/config/solr/cores/de/conf/synonyms.txt +31 -0
  72. data/config/solr/cores/en/conf/protwords.txt +21 -0
  73. data/config/solr/cores/en/conf/schema.xml +83 -0
  74. data/config/solr/cores/en/conf/solrconfig.xml +304 -0
  75. data/config/solr/cores/en/conf/stopwords.txt +341 -0
  76. data/config/solr/cores/en/conf/synonyms.txt +31 -0
  77. data/config/solr/cores/es/conf/protwords.txt +21 -0
  78. data/config/solr/cores/es/conf/schema.xml +81 -0
  79. data/config/solr/cores/es/conf/solrconfig.xml +304 -0
  80. data/config/solr/cores/es/conf/stopwords.txt +206 -0
  81. data/config/solr/cores/es/conf/synonyms.txt +31 -0
  82. data/config/solr/cores/fr/conf/protwords.txt +21 -0
  83. data/config/solr/cores/fr/conf/schema.xml +82 -0
  84. data/config/solr/cores/fr/conf/solrconfig.xml +304 -0
  85. data/config/solr/cores/fr/conf/stopwords.txt +57 -0
  86. data/config/solr/cores/fr/conf/synonyms.txt +31 -0
  87. data/config/solr/cores/ja/conf/protwords.txt +21 -0
  88. data/config/solr/cores/ja/conf/schema.xml +69 -0
  89. data/config/solr/cores/ja/conf/solrconfig.xml +304 -0
  90. data/config/solr/cores/ja/conf/stopwords.txt +341 -0
  91. data/config/solr/cores/ja/conf/synonyms.txt +31 -0
  92. data/config/solr/cores/nl/conf/protwords.txt +21 -0
  93. data/config/solr/cores/nl/conf/schema.xml +78 -0
  94. data/config/solr/cores/nl/conf/solrconfig.xml +304 -0
  95. data/config/solr/cores/nl/conf/stopwords.txt +45691 -0
  96. data/config/solr/cores/nl/conf/synonyms.txt +31 -0
  97. data/config/solr/cores/ru/conf/protwords.txt +21 -0
  98. data/config/solr/cores/ru/conf/schema.xml +78 -0
  99. data/config/solr/cores/ru/conf/solrconfig.xml +304 -0
  100. data/config/solr/cores/ru/conf/stopwords.txt +341 -0
  101. data/config/solr/cores/ru/conf/synonyms.txt +31 -0
  102. data/config/solr/cores/zh/conf/protwords.txt +21 -0
  103. data/config/solr/cores/zh/conf/schema.xml +72 -0
  104. data/config/solr/cores/zh/conf/solrconfig.xml +304 -0
  105. data/config/solr/cores/zh/conf/stopwords.txt +341 -0
  106. data/config/solr/cores/zh/conf/synonyms.txt +31 -0
  107. data/config/solr/solr.xml +50 -0
  108. data/db/bootstrap/feeds.yml +4268 -0
  109. data/db/bootstrap/oai_endpoints.yml +6 -0
  110. data/db/bootstrap/services.yml +172 -0
  111. data/db/migrate/20090602191243_create_muck_raker.rb +304 -0
  112. data/install.rb +1 -0
  113. data/lib/muck_raker/initialize_routes.rb +8 -0
  114. data/lib/muck_raker/languages.rb +53 -0
  115. data/lib/muck_raker.rb +6 -0
  116. data/locales/en.yml +42 -0
  117. data/rails/init.rb +27 -0
  118. data/raker/lib/aggregatord.jar +0 -0
  119. data/raker/lib/aggregatord.properties +45 -0
  120. data/raker/lib/apache-solr-common-1.3.0.jar +0 -0
  121. data/raker/lib/apache-solr-core-1.3.0.jar +0 -0
  122. data/raker/lib/apache-solr-dataimporthandler-1.3.0.jar +0 -0
  123. data/raker/lib/axis.jar +0 -0
  124. data/raker/lib/commons-codec-1.3.jar +0 -0
  125. data/raker/lib/commons-csv-1.0-SNAPSHOT-r609327.jar +0 -0
  126. data/raker/lib/commons-daemon.jar +0 -0
  127. data/raker/lib/commons-dbcp-1.2.1.jar +0 -0
  128. data/raker/lib/commons-discovery-0.2.jar +0 -0
  129. data/raker/lib/commons-fileupload-1.2.jar +0 -0
  130. data/raker/lib/commons-httpclient-3.1.jar +0 -0
  131. data/raker/lib/commons-io-1.3.1.jar +0 -0
  132. data/raker/lib/commons-logging-1.0.4.jar +0 -0
  133. data/raker/lib/commons-pool-1.3.jar +0 -0
  134. data/raker/lib/delicious-1.13.jar +0 -0
  135. data/raker/lib/flickrapi-1.0a9.jar +0 -0
  136. data/raker/lib/geronimo-stax-api_1.0_spec-1.0.1.jar +0 -0
  137. data/raker/lib/javax.jms.jar +0 -0
  138. data/raker/lib/jaxrpc.jar +0 -0
  139. data/raker/lib/jdom.jar +0 -0
  140. data/raker/lib/jericho.jar +0 -0
  141. data/raker/lib/junit-4.3.jar +0 -0
  142. data/raker/lib/log4j-1.2.8.jar +0 -0
  143. data/raker/lib/lucene-analyzers-2.4-dev.jar +0 -0
  144. data/raker/lib/lucene-core-2.4-dev.jar +0 -0
  145. data/raker/lib/lucene-highlighter-2.4-dev.jar +0 -0
  146. data/raker/lib/lucene-memory-2.4-dev.jar +0 -0
  147. data/raker/lib/lucene-queries-2.4-dev.jar +0 -0
  148. data/raker/lib/lucene-snowball-2.4-dev.jar +0 -0
  149. data/raker/lib/lucene-spellchecker-2.4-dev.jar +0 -0
  150. data/raker/lib/mail.jar +0 -0
  151. data/raker/lib/mysql-connector-java-5.1.7-bin.jar +0 -0
  152. data/raker/lib/recommenderd.jar +0 -0
  153. data/raker/lib/recommenderd.properties +64 -0
  154. data/raker/lib/rome-1.0.jar +0 -0
  155. data/raker/lib/rome.properties +90 -0
  156. data/raker/lib/solr-commons-csv-pom.xml.template +36 -0
  157. data/raker/lib/solr-lucene-analyzers-pom.xml.template +35 -0
  158. data/raker/lib/solr-lucene-contrib-pom.xml.template +48 -0
  159. data/raker/lib/solr-lucene-core-pom.xml.template +36 -0
  160. data/raker/lib/solr-lucene-highlighter-pom.xml.template +38 -0
  161. data/raker/lib/solr-lucene-queries-pom.xml.template +38 -0
  162. data/raker/lib/solr-lucene-snowball-pom.xml.template +36 -0
  163. data/raker/lib/solr-lucene-spellchecker-pom.xml.template +36 -0
  164. data/raker/lib/stax-utils.jar +0 -0
  165. data/raker/lib/wsdl4j-1.5.1.jar +0 -0
  166. data/raker/lib/wstx-asl-3.2.7.jar +0 -0
  167. data/tasks/bootstrap.rake +18 -0
  168. data/tasks/raker.rake +68 -0
  169. data/test/recommender_test.rb +8 -0
  170. data/test/test_helper.rb +20 -0
  171. data/uninstall.rb +1 -0
  172. metadata +253 -0
@@ -0,0 +1,6 @@
1
+ oer_commons:
2
+ uri: 'http://www.oercommons.org/oai'
3
+ display_uri: 'http://www.oercommons.org'
4
+ metadata_prefix: 'oer_recommender'
5
+ title: 'OER Commons - Open Educational Resources'
6
+ short_title: 'OERC'
@@ -0,0 +1,172 @@
1
+ rss:
2
+ id: 1
3
+ title: rss
4
+ uri:
5
+ api_uri:
6
+ uri_template:
7
+ icon: rss-atom.gif
8
+ sequence: 1
9
+ oai:
10
+ id: 2
11
+ title: OAI
12
+ uri:
13
+ api_uri:
14
+ uri_template:
15
+ icon: oai.gif
16
+ sequence: 2
17
+ twitter:
18
+ id: 3
19
+ title: Twitter
20
+ uri: "http://www.twitter.com"
21
+ api_uri:
22
+ uri_template:
23
+ icon: twitter.gif
24
+ sequence: 3
25
+ youtube:
26
+ id: 4
27
+ title: You Tube
28
+ uri: "http://www.youtube.com"
29
+ api_uri:
30
+ uri_template: feed://www.youtube.com/rss/user/{username}/videos.rss
31
+ icon: youtube.gif
32
+ sequence: 4
33
+ flickr:
34
+ id: 5
35
+ title: Flickr
36
+ uri: "http://www.flickr.com"
37
+ api_uri:
38
+ uri_template: "http://api.flickr.com/services/feeds/activity.gne?id={username}"
39
+ icon: flickr.gif
40
+ sequence: 5
41
+ delicious:
42
+ id: 6
43
+ title: del.icio.us
44
+ uri: "http://del.icio.us/"
45
+ api_uri: "https://api.del.icio.us/v1/"
46
+ uri_template:
47
+ icon: delicious.gif
48
+ sequence: 6
49
+ digg:
50
+ id: 7
51
+ title: Digg
52
+ uri: "http://www.digg.com"
53
+ api_uri:
54
+ uri_template: "http://digg.com/rss/{username}/index2.xml"
55
+ icon: digg.gif
56
+ sequence: 7
57
+ 43places:
58
+ id: 8
59
+ title: 43 Places
60
+ uri: "http://www.43places.com"
61
+ api_uri:
62
+ uri_template: "http://www.43places.com/rss/uber/author?username={username}"
63
+ icon: 43places.gif
64
+ sequence: 8
65
+ allconsuming:
66
+ id: 9
67
+ title: All Consuming
68
+ uri: "http://allconsuming.net/"
69
+ api_uri:
70
+ uri_template: "http://allconsuming.net/person/{username}/rss"
71
+ icon: allconsuming.gif
72
+ sequence: 9
73
+ clipmarks:
74
+ id: 10
75
+ sequence: 10
76
+ title: Clipmarks
77
+ uri: "http://www.clipmarks.com"
78
+ api_uri:
79
+ uri_template: "http://rss.clipmarks.com/clipper/{username}/"
80
+ icon: clipmarks.gif
81
+ lastfm:
82
+ id: 11
83
+ sequence: 11
84
+ title: Last.fm
85
+ uri: "http://www.last.fm"
86
+ api_uri:
87
+ uri_template: "http://ws.audioscrobbler.com/1.0/user/{username}/recenttracks.rss"
88
+ icon: lastfm.gif
89
+ livejournal:
90
+ id: 12
91
+ sequence: 12
92
+ title: LiveJournal
93
+ uri: "http://www.livejournal.com"
94
+ api_uri:
95
+ uri_template: "http://{username}.livejournal.com"
96
+ icon: livejournal.gif
97
+ simpy:
98
+ id: 13
99
+ sequence: 13
100
+ title: Simpy
101
+ uri: "http://www.simpy.com"
102
+ api_uri:
103
+ uri_template: "http://www.simpy.com/rss/user/{username}/links/"
104
+ icon: simpy.gif
105
+ wordpress:
106
+ id: 14
107
+ sequence: 14
108
+ title: Wordpress.com
109
+ uri: "http://www.wordpress.com/"
110
+ api_uri:
111
+ uri_template: "http://{username}.wordpress.com/"
112
+ icon: wordpress.gif
113
+ xanga:
114
+ id: 15
115
+ sequence: 15
116
+ title: Xanga
117
+ uri: "http://www.xanga.com"
118
+ api_uri:
119
+ uri_template: "http://www.xanga.com/{username}/rss"
120
+ icon: xanga.gif
121
+ citeulike:
122
+ id: 16
123
+ sequence: 16
124
+ title: cite u like
125
+ uri: "http://www.citeulike.org"
126
+ api_uri:
127
+ uri_template: "http://www.citeulike.org/rss/user/{username}"
128
+ icon: citeulike.gif
129
+ googlenews:
130
+ id: 17
131
+ sequence: 17
132
+ title: Google News
133
+ uri: "http://news.google.com/"
134
+ icon: googlenews.gif
135
+ googleblogsearch:
136
+ id: 18
137
+ sequence: 18
138
+ title: Google Blog Search
139
+ uri: "http://blogsearch.google.com/"
140
+ icon: googleblogs.gif
141
+ opml:
142
+ id: 19
143
+ sequence: 19
144
+ title: OPML
145
+ icon: opml.gif
146
+ tag:
147
+ id: 20
148
+ sequence: 20
149
+ title: Tag
150
+ icon: tag.gif
151
+ odeo:
152
+ id: 21
153
+ sequence: 21
154
+ title: Odeo Podcasts
155
+ uri: "http://www.odeo.com"
156
+ icon: odeo.gif
157
+ technorati:
158
+ id: 22
159
+ sequence: 22
160
+ title: Technorati
161
+ uri: "http://www.technorati.com/"
162
+ api_uri:
163
+ uri_template: "http://feeds.technorati.com/faves/{username}?format=rss"
164
+ icon: technorati.gif
165
+ merlot:
166
+ id: 23
167
+ sequence: 23
168
+ title: Merlot
169
+ uri: "http://www.merlot.org/"
170
+ api_uri:
171
+ uri_template:
172
+ icon: merlot.gif
@@ -0,0 +1,304 @@
1
+ class CreateMuckRaker < ActiveRecord::Migration
2
+
3
+ def self.up
4
+
5
+ create_table "action_types", :force => true do |t|
6
+ t.string "action_type"
7
+ t.integer "weight"
8
+ end
9
+
10
+ create_table "aggregation_feeds", :force => true do |t|
11
+ t.integer "aggregation_id"
12
+ t.integer "feed_id"
13
+ end
14
+
15
+ add_index "aggregation_feeds", ["aggregation_id"]
16
+ add_index "aggregation_feeds", ["feed_id"]
17
+
18
+ create_table "aggregations", :force => true do |t|
19
+ t.string "name"
20
+ t.string "title"
21
+ t.text "description"
22
+ t.text "top_tags"
23
+ t.integer "user_id"
24
+ t.datetime "created_at"
25
+ t.datetime "updated_at"
26
+ end
27
+
28
+ add_index "aggregations", ["user_id"]
29
+
30
+ create_table "attentions", :force => true do |t|
31
+ t.integer "attentionable_id"
32
+ t.string "attentionable_type"
33
+ t.integer "entry_id"
34
+ t.string "action_type"
35
+ t.float "weight"
36
+ end
37
+
38
+ create_table "clicks", :force => true do |t|
39
+ t.integer "recommendation_id"
40
+ t.datetime "when", :null => false
41
+ t.string "referrer", :limit => 2083
42
+ t.string "requester"
43
+ t.string "user_agent", :limit => 2083
44
+ end
45
+
46
+ add_index "clicks", ["recommendation_id"]
47
+ add_index "clicks", ["referrer"]
48
+ add_index "clicks", ["requester"]
49
+ add_index "clicks", ["user_agent"]
50
+ add_index "clicks", ["when"]
51
+
52
+ create_table "entries", :force => true do |t|
53
+ t.integer "feed_id", :null => false
54
+ t.string "permalink", :limit => 2083, :default => "", :null => false
55
+ t.string "author", :limit => 2083
56
+ t.text "title", :null => false
57
+ t.text "description"
58
+ t.text "content"
59
+ t.boolean "unique_content", :default => false
60
+ t.datetime "published_at", :null => false
61
+ t.datetime "entry_updated_at"
62
+ t.datetime "harvested_at"
63
+ t.string "oai_identifier", :limit => 2083
64
+ t.integer "language_id"
65
+ t.string "direct_link", :limit => 2083
66
+ t.datetime "indexed_at", :default => '1971-01-01 01:01:01', :null => false
67
+ t.datetime "relevance_calculated_at", :default => '1971-01-01 01:01:01', :null => false
68
+ t.text "popular"
69
+ t.text "relevant"
70
+ t.text "other"
71
+ end
72
+
73
+ add_index "entries", ["direct_link"]
74
+ add_index "entries", ["feed_id"]
75
+ add_index "entries", ["indexed_at"]
76
+ add_index "entries", ["language_id"]
77
+ add_index "entries", ["oai_identifier"]
78
+ add_index "entries", ["permalink"]
79
+ add_index "entries", ["published_at"]
80
+ add_index "entries", ["relevance_calculated_at"]
81
+
82
+ create_table "entries_users", :force => true do |t|
83
+ t.integer "entry_id", :null => false
84
+ t.integer "user_id", :default => 0
85
+ t.boolean "clicked_through", :default => false
86
+ t.datetime "created_at"
87
+ end
88
+
89
+ add_index "entries_users", ["entry_id", "user_id"]
90
+ add_index "entries_users", ["entry_id"]
91
+ add_index "entries_users", ["user_id"]
92
+
93
+ create_table "entry_images", :force => true do |t|
94
+ t.integer "entry_id"
95
+ t.string "uri", :limit => 2083
96
+ t.string "link", :limit => 2083
97
+ t.string "alt"
98
+ t.string "title"
99
+ t.integer "width"
100
+ t.integer "height"
101
+ end
102
+
103
+ add_index "entry_images", ["entry_id"]
104
+
105
+ create_table "feeds", :force => true do |t|
106
+ t.string "uri", :limit => 2083
107
+ t.string "display_uri", :limit => 2083
108
+ t.string "title", :limit => 1000
109
+ t.string "short_title", :limit => 100
110
+ t.text "description"
111
+ t.string "tag_filter", :limit => 1000
112
+ t.text "top_tags"
113
+ t.integer "priority", :default => 10
114
+ t.integer "status", :default => 1
115
+ t.datetime "last_requested_at"
116
+ t.datetime "last_harvested_at"
117
+ t.integer "harvest_interval", :default => 86400
118
+ t.integer "failed_requests", :default => 0
119
+ t.text "error_message"
120
+ t.integer "service_id", :default => 0, :null => false
121
+ t.string "login"
122
+ t.string "password"
123
+ t.datetime "created_at"
124
+ t.datetime "updated_at"
125
+ t.datetime "entries_changed_at"
126
+ t.string "harvested_from_display_uri", :limit => 2083
127
+ t.string "harvested_from_title", :limit => 1000
128
+ t.string "harvested_from_short_title", :limit => 100
129
+ t.integer "entries_count"
130
+ t.integer "default_language_id", :default => 0
131
+ t.boolean "ocw", :default => false
132
+ end
133
+
134
+ add_index "feeds", ["service_id"]
135
+ add_index "feeds", ["uri"]
136
+
137
+ create_table "micro_concerts", :force => true do |t|
138
+ t.integer "micro_event_id"
139
+ t.string "performer"
140
+ t.string "ticket_url", :limit => 2083
141
+ end
142
+
143
+ add_index "micro_concerts", ["micro_event_id"]
144
+
145
+ create_table "micro_conferences", :force => true do |t|
146
+ t.integer "micro_event_id"
147
+ t.string "theme"
148
+ t.datetime "register_by"
149
+ t.datetime "submit_by"
150
+ end
151
+
152
+ add_index "micro_conferences", ["micro_event_id"]
153
+
154
+ create_table "micro_event_links", :force => true do |t|
155
+ t.integer "micro_event_id"
156
+ t.string "uri"
157
+ t.string "title"
158
+ end
159
+
160
+ add_index "micro_event_links", ["micro_event_id"]
161
+
162
+ create_table "micro_event_people", :force => true do |t|
163
+ t.integer "micro_event_id"
164
+ t.string "name"
165
+ t.string "role"
166
+ t.string "email"
167
+ t.string "link", :limit => 2083
168
+ t.string "phone"
169
+ end
170
+
171
+ add_index "micro_event_people", ["micro_event_id"]
172
+
173
+ create_table "micro_events", :force => true do |t|
174
+ t.integer "entry_id", :null => false
175
+ t.string "name", :null => false
176
+ t.text "description"
177
+ t.string "price"
178
+ t.text "image"
179
+ t.text "address"
180
+ t.text "subaddress"
181
+ t.string "city"
182
+ t.string "state"
183
+ t.string "postcode"
184
+ t.string "country"
185
+ t.datetime "begins", :null => false
186
+ t.datetime "ends"
187
+ t.text "tags"
188
+ t.string "duration"
189
+ t.text "location"
190
+ end
191
+
192
+ add_index "micro_events", ["entry_id"]
193
+
194
+ create_table "oai_endpoints", :force => true do |t|
195
+ t.string "uri", :limit => 2083
196
+ t.string "display_uri", :limit => 2083
197
+ t.string "metadata_prefix"
198
+ t.string "title", :limit => 1000
199
+ t.string "short_title", :limit => 100
200
+ end
201
+
202
+ create_table "personal_recommendations", :force => true do |t|
203
+ t.integer "personal_recommendable_id"
204
+ t.string "personal_recommendable_type"
205
+ t.integer "destination_id"
206
+ t.string "destination_type"
207
+ t.integer "rank"
208
+ t.float "relevance"
209
+ end
210
+
211
+ create_table "queries", :force => true do |t|
212
+ t.text "name"
213
+ t.integer "frequency"
214
+ end
215
+
216
+ create_table "recommendations", :force => true do |t|
217
+ t.integer "entry_id"
218
+ t.integer "dest_entry_id"
219
+ t.integer "rank"
220
+ t.decimal "relevance", :precision => 8, :scale => 6, :default => 0.0
221
+ t.integer "clicks", :default => 0
222
+ t.integer "avg_time_at_dest", :default => 60
223
+ end
224
+
225
+ add_index "recommendations", ["dest_entry_id"]
226
+ add_index "recommendations", ["entry_id"]
227
+
228
+ create_table "services", :force => true do |t|
229
+ t.string "uri", :limit => 2083, :default => ""
230
+ t.string "title", :limit => 1000, :default => ""
231
+ t.string "api_uri", :limit => 2083, :default => ""
232
+ t.string "uri_template", :limit => 2083, :default => ""
233
+ t.string "icon", :limit => 2083, :default => 'rss.gif'
234
+ t.integer "sequence"
235
+ t.boolean "requires_password", :default => false
236
+ end
237
+
238
+ create_table "watched_pages", :force => true do |t|
239
+ t.integer "entry_id"
240
+ t.datetime "harvested_at"
241
+ t.boolean "has_microformats", :default => false
242
+ t.datetime "created_at"
243
+ t.datetime "updated_at"
244
+ end
245
+
246
+ add_index "watched_pages", ["entry_id"]
247
+
248
+ create_table "subjects", :force => true do |t|
249
+ t.string "name"
250
+ end
251
+
252
+ create_table "entries_subjects", :force => true do |t|
253
+ t.integer "subject_id"
254
+ t.integer "entry_id"
255
+ t.boolean "autogenerated", :default => false
256
+ end
257
+ execute "ALTER TABLE entries_subjects DROP COLUMN id, DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE(subject_id, entry_id);"
258
+ add_index "entries_subjects", ["subject_id"]
259
+ add_index "entries_subjects", ["entry_id"]
260
+ add_index "entries_subjects", ["autogenerated"]
261
+
262
+ create_table "cloud_caches", :force => true do |t|
263
+ t.integer "language_id"
264
+ t.string "filter"
265
+ t.string "tag_list", :limit => 2500
266
+ end
267
+ execute "ALTER TABLE cloud_caches DROP COLUMN id, DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE(language_id, filter);"
268
+
269
+ # add a flag to the languages table to flag languages we support
270
+ add_column :languages, :muck_raker_supported, :boolean, :default => false
271
+ add_column :languages, :indexed_records, :integer, :default => 0
272
+ add_index "languages", ["muck_raker_supported"]
273
+ end
274
+
275
+ def self.down
276
+ drop_table :action_types
277
+ drop_table :aggregation_feeds
278
+ drop_table :aggregation_top_tags
279
+ drop_table :aggregations
280
+ drop_table :attentions
281
+ drop_table :clicks
282
+ drop_table :entries
283
+ drop_table :subjects
284
+ drop_table :entries_subjects
285
+ drop_table :cloud_caches
286
+ drop_table :entries_users
287
+ drop_table :entry_images
288
+ drop_table :feeds
289
+ drop_table :interests
290
+ drop_table :recommender_languages
291
+ drop_table :micro_concerts
292
+ drop_table :micro_conferences
293
+ drop_table :micro_event_links
294
+ drop_table :micro_event_people
295
+ drop_table :micro_events
296
+ drop_table :oai_endpoints
297
+ drop_table :personal_recommendations
298
+ drop_table :queries
299
+ drop_table :recommendations
300
+ drop_table :services
301
+ drop_table :watched_pages
302
+ end
303
+
304
+ end
data/install.rb ADDED
@@ -0,0 +1 @@
1
+ # Install hook code here
@@ -0,0 +1,8 @@
1
+ class ActionController::Routing::RouteSet
2
+ def load_routes_with_muck_raker!
3
+ muck_raker_routes = File.join(File.dirname(__FILE__), *%w[.. .. config muck_raker_routes.rb])
4
+ add_configuration_file(muck_raker_routes) unless configuration_files.include? muck_raker_routes
5
+ load_routes_without_muck_raker!
6
+ end
7
+ alias_method_chain :load_routes!, :muck_raker
8
+ end
@@ -0,0 +1,53 @@
1
+ module Recommender
2
+ module Languages
3
+ AVAILABLE_LOCALES = "^en|es|fr|nl|ja|de|ru|zh"
4
+ DEFAULT_LOCALE = 'en'
5
+
6
+ ARABIC = "ar"
7
+ BULGARIAN = "bg"
8
+ CATALAN = "ca"
9
+ CHINESE = "zh"
10
+ CHINESE_SIMPLIFIED = "zh-CN"
11
+ CHINESE_TRADITIONAL = "zh-TW"
12
+ CROATIAN = "cr"
13
+ CZECH = "cs"
14
+ DANISH = "da"
15
+ DUTCH = "nl"
16
+ ENGLISH = "en"
17
+ FILIPINO = "tl"
18
+ FINNISH = "fi"
19
+ FRENCH = "fr"
20
+ GERMAN = "de"
21
+ GREEK = "el"
22
+ HEBREW = "iw"
23
+ HINDI = "hi"
24
+ INDONESIAN = "id"
25
+ ITALIAN = "it"
26
+ JAPANESE = "ja"
27
+ KOREAN = "ko"
28
+ LATVIAN = "lv"
29
+ LITHUANIAN = "lt"
30
+ NORWEGIAN = "no"
31
+ POLISH = "pl"
32
+ PORTUGESE = "pt"
33
+ ROMANIAN = "ro"
34
+ RUSSIAN = "ru"
35
+ SERBIAN = "sr"
36
+ SLOVAK = "sk"
37
+ SLOVENIAN = "sl"
38
+ SPANISH = "es"
39
+ SWEDISH = "sv"
40
+ UKRANIAN = "uk"
41
+ VIETNAMESE = "vi"
42
+
43
+ # LANGUAGES = [ARABIC, BULGARIAN, CATALAN, CHINESE, CHINESE_SIMPLIFIED,CHINESE_TRADITIONAL,
44
+ # CROATIAN, CZECH, DANISH, DUTCH, ENGLISH, FILIPINO, FRENCH, GERMAN, GREEK, HEBREW,
45
+ # ITALIAN, JAPANESE, KOREAN, LATVIAN, LITHUANIAN, NORWEGIAN, POLISH, PORTUGESE,
46
+ # ROMANIAN, RUSSIAN, SERBIAN, SLOVAK, SLOVENIAN, SPANISH, SWEDISH, UKRANIAN, VIETNAMESE]
47
+
48
+ LANGUAGES = [ARABIC, BULGARIAN, CATALAN, CHINESE, CHINESE_SIMPLIFIED,CHINESE_TRADITIONAL,
49
+ CZECH, DANISH, DUTCH, ENGLISH, FILIPINO, FRENCH, GERMAN, GREEK, HEBREW,
50
+ ITALIAN, JAPANESE, KOREAN, LATVIAN, LITHUANIAN, NORWEGIAN, POLISH, PORTUGESE,
51
+ ROMANIAN, RUSSIAN, SERBIAN, SLOVAK, SLOVENIAN, SPANISH, SWEDISH, UKRANIAN, VIETNAMESE]
52
+ end
53
+ end
data/lib/muck_raker.rb ADDED
@@ -0,0 +1,6 @@
1
+
2
+ module MuckRaker
3
+ end
4
+
5
+ Mime::Type.register "application/rdf+xml", :rdf
6
+ Mime::Type.register "text/javascript", :pjs
data/locales/en.yml ADDED
@@ -0,0 +1,42 @@
1
+ en:
2
+ muck:
3
+ raker:
4
+ no_tags: No tags available yet
5
+ title: Folksemantic
6
+ collections: Collections
7
+ demo: Demo
8
+ tag_line: making open education work
9
+ developers: Developers
10
+ search_button: Go
11
+ collections_long: Indexed Collections
12
+ developers_long: Information for Developers
13
+ powered_by: powered by
14
+ no_hits: No hits. Please try a different search or choose a different language.
15
+ previous: Previous
16
+ next: Next
17
+ results: Results
18
+ of: of
19
+ for: for
20
+ relevance: relevance
21
+ metadata: metadata
22
+ related_resources: related
23
+ rss: RSS
24
+ xml: XML
25
+ atom: Atom
26
+ rdf: RDF
27
+ related_resources_title: Related Resources
28
+ calculated: calculated
29
+ details: Details
30
+ gm_title: Related Resources
31
+ gm_more_prompt: More Related Resources
32
+ direct_link: '[direct link]'
33
+ register_link: Sign Up!
34
+ register_description: 'Sign up to receive personalized <span class="highlight">recommendations</span>, participate in <span class="highlight">groups</span>, and easily <span class="highlight">publish to blogs</span>.'
35
+ widgets_link: Get Widgets!
36
+ widgets_description: Get widgets to help users <span class="highlight">find</span> resources and <span class="highlight">discover resources related</span> to ones on your website.
37
+ tour: Take a Tour!
38
+ tour_description: Watch a <span class="highlight">video introduction</span> of Folksemantic.
39
+ search: search
40
+ search_link: Find Resources!
41
+ search_description: Find learning resources by <span class="highlight">searching</span> and <span class="highlight">browsing</span> over <span class="highlight">110,000</span> open educational resources.
42
+ welcome_user: "Welcome {{user}}"
data/rails/init.rb ADDED
@@ -0,0 +1,27 @@
1
+ ActiveSupport::Dependencies.load_once_paths << lib_path
2
+
3
+ if config.respond_to?(:gems)
4
+ config.gem "mbleigh-acts-as-taggable-on", :source => "http://gems.github.com", :lib => "acts-as-taggable-on"
5
+ else
6
+ begin
7
+ require 'acts-as-taggable-on'
8
+ rescue LoadError
9
+ begin
10
+ gem 'mbleigh-acts-as-taggable-on'
11
+ rescue Gem::LoadError
12
+ puts "Please install the acts-as-taggable-on gem from http://gems.github.com"
13
+ end
14
+ end
15
+ end
16
+
17
+ I18n.load_path += Dir[ File.join(RAILS_ROOT, 'vendor', 'plugins', 'muck_raker', 'locales', '*.{rb,yml}') ]
18
+
19
+ ENV['APP_AVAILABLE_LOCALES'] = "^en|es|fr|nl|ja|de|ru|zh"
20
+ ENV['APP_DEFAULT_LOCALE'] = 'en'
21
+
22
+ require 'muck_raker'
23
+ require 'muck_raker/initialize_routes'
24
+
25
+ config.to_prepare do
26
+ ApplicationController.helper(MuckRakerHelper)
27
+ end
Binary file
@@ -0,0 +1,45 @@
1
+ # number of worker threads to spawn
2
+ #threads=20
3
+
4
+ # size of the queue
5
+ #stale_feed_queue_size=100
6
+
7
+ # seconds to wait before timing out a HTTP request
8
+ request_timeout=90
9
+
10
+ # seconds to wait before querying the database for stale feeds
11
+ #stale_thread_poll_interval=5
12
+
13
+ # minutes to wait before checking to see if a feed has new entries
14
+ #feed_refresh_interval=60
15
+
16
+ # whether or not to log to file
17
+ #log_file_prefix=recommender
18
+
19
+ # discover new feeds provided by registered oai endpoints
20
+ discover_oai_sets=true
21
+
22
+ # import archived feed data from disk before requesting it across the wire
23
+ import_archived_feed_data=false
24
+
25
+ # request feeds across the wire from their servers
26
+ harvest_from_wire=true
27
+
28
+ # whether or not to log to console
29
+ log_to_console=true
30
+
31
+ # rails environment (default is production)
32
+ rails_env=production
33
+
34
+ # path to database.yml (default is ../../../../../shared/system/config/database.yml)
35
+ db_yml=../../../../../shared/system/config/database.yml
36
+
37
+ # amount of info to log
38
+ # NEVER = 0;
39
+ # CRITICAL = 1;
40
+ # EXCEPTION = 2;
41
+ # WARNING = 3;
42
+ # STATUS = 4;
43
+ # INFO = 5;
44
+ # ALL = 10;
45
+ debug_level=10
Binary file
Binary file