muck-raker 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/README.rdoc +24 -0
- data/Rakefile +76 -0
- data/VERSION +1 -0
- data/app/controllers/admin/recommender/feeds_controller.rb +174 -0
- data/app/controllers/recommender/default_controller.rb +15 -0
- data/app/controllers/recommender/entries_controller.rb +79 -0
- data/app/controllers/recommender/recommendations_controller.rb +46 -0
- data/app/controllers/recommender/search_controller.rb +82 -0
- data/app/helpers/muck_raker_helper.rb +29 -0
- data/app/models/click.rb +2 -0
- data/app/models/cloud_cache.rb +9 -0
- data/app/models/entry.rb +274 -0
- data/app/models/feed.rb +29 -0
- data/app/models/language.rb +2 -0
- data/app/models/oai_endpoint.rb +2 -0
- data/app/models/recommendation.rb +2 -0
- data/app/models/service.rb +2 -0
- data/app/models/subject.rb +2 -0
- data/app/models/user.rb +36 -0
- data/app/views/default/_advertisements.html.erb +30 -0
- data/app/views/default/_language_list.html.erb +5 -0
- data/app/views/default/index.html.erb +3 -0
- data/app/views/default/tour.html.erb +15 -0
- data/app/views/default/widgets.html.erb +4 -0
- data/app/views/documents/.tmp_not_found.html +0 -0
- data/app/views/entries/_cloud_type_selector.html.erb +9 -0
- data/app/views/entries/_result.html.erb +10 -0
- data/app/views/entries/_tag_cloud.html.erb +4 -0
- data/app/views/entries/_tags.html.erb +7 -0
- data/app/views/entries/browse_by_tags.html.erb +33 -0
- data/app/views/entries/collections.html.erb +28 -0
- data/app/views/entries/details.html.erb +39 -0
- data/app/views/entries/index.html.erb +8 -0
- data/app/views/entries/search.html.erb +21 -0
- data/app/views/entries/show.html.erb +19 -0
- data/app/views/entries/track_clicks.html.erb +0 -0
- data/app/views/feeds/_feed_selection.html.erb +1 -0
- data/app/views/feeds/edit.html.erb +107 -0
- data/app/views/feeds/harvest_now.html.erb +3 -0
- data/app/views/feeds/index.html.erb +95 -0
- data/app/views/feeds/new.html.erb +109 -0
- data/app/views/feeds/unban.html.erb +3 -0
- data/app/views/layouts/_flashes.html.erb +5 -0
- data/app/views/layouts/default.html.erb +35 -0
- data/app/views/layouts/default_old.html.erb +43 -0
- data/app/views/layouts/global/_header.html.erb +16 -0
- data/app/views/layouts/global/_search_box.html.erb +13 -0
- data/app/views/layouts/recommendations.html.erb +17 -0
- data/app/views/recommendations/document_not_found.html.erb +13 -0
- data/app/views/recommendations/index.pjs.erb +44 -0
- data/app/views/recommendations/index.rss.builder +37 -0
- data/app/views/recommendations/index.xml.builder +34 -0
- data/app/views/recommendations/index_js.pjs.erb +35 -0
- data/app/views/search/_languages.html.erb +6 -0
- data/app/views/search/_result.html.erb +9 -0
- data/app/views/search/_search_box.html.erb +9 -0
- data/app/views/search/index.html.erb +5 -0
- data/app/views/search/results.atom.builder +27 -0
- data/app/views/search/results.html.erb +35 -0
- data/app/views/search/results.pjs.erb +13 -0
- data/app/views/search/results.rdf.builder +24 -0
- data/app/views/search/results.rss.builder +31 -0
- data/app/views/search/results.xml.builder +19 -0
- data/config/muck_raker_routes.rb +39 -0
- data/config/solr/README.txt +0 -0
- data/config/solr/cores/de/conf/protwords.txt +21 -0
- data/config/solr/cores/de/conf/schema.xml +81 -0
- data/config/solr/cores/de/conf/solrconfig.xml +304 -0
- data/config/solr/cores/de/conf/stopwords.txt +341 -0
- data/config/solr/cores/de/conf/synonyms.txt +31 -0
- data/config/solr/cores/en/conf/protwords.txt +21 -0
- data/config/solr/cores/en/conf/schema.xml +83 -0
- data/config/solr/cores/en/conf/solrconfig.xml +304 -0
- data/config/solr/cores/en/conf/stopwords.txt +341 -0
- data/config/solr/cores/en/conf/synonyms.txt +31 -0
- data/config/solr/cores/es/conf/protwords.txt +21 -0
- data/config/solr/cores/es/conf/schema.xml +81 -0
- data/config/solr/cores/es/conf/solrconfig.xml +304 -0
- data/config/solr/cores/es/conf/stopwords.txt +206 -0
- data/config/solr/cores/es/conf/synonyms.txt +31 -0
- data/config/solr/cores/fr/conf/protwords.txt +21 -0
- data/config/solr/cores/fr/conf/schema.xml +82 -0
- data/config/solr/cores/fr/conf/solrconfig.xml +304 -0
- data/config/solr/cores/fr/conf/stopwords.txt +57 -0
- data/config/solr/cores/fr/conf/synonyms.txt +31 -0
- data/config/solr/cores/ja/conf/protwords.txt +21 -0
- data/config/solr/cores/ja/conf/schema.xml +69 -0
- data/config/solr/cores/ja/conf/solrconfig.xml +304 -0
- data/config/solr/cores/ja/conf/stopwords.txt +341 -0
- data/config/solr/cores/ja/conf/synonyms.txt +31 -0
- data/config/solr/cores/nl/conf/protwords.txt +21 -0
- data/config/solr/cores/nl/conf/schema.xml +78 -0
- data/config/solr/cores/nl/conf/solrconfig.xml +304 -0
- data/config/solr/cores/nl/conf/stopwords.txt +45691 -0
- data/config/solr/cores/nl/conf/synonyms.txt +31 -0
- data/config/solr/cores/ru/conf/protwords.txt +21 -0
- data/config/solr/cores/ru/conf/schema.xml +78 -0
- data/config/solr/cores/ru/conf/solrconfig.xml +304 -0
- data/config/solr/cores/ru/conf/stopwords.txt +341 -0
- data/config/solr/cores/ru/conf/synonyms.txt +31 -0
- data/config/solr/cores/zh/conf/protwords.txt +21 -0
- data/config/solr/cores/zh/conf/schema.xml +72 -0
- data/config/solr/cores/zh/conf/solrconfig.xml +304 -0
- data/config/solr/cores/zh/conf/stopwords.txt +341 -0
- data/config/solr/cores/zh/conf/synonyms.txt +31 -0
- data/config/solr/solr.xml +50 -0
- data/db/bootstrap/feeds.yml +4268 -0
- data/db/bootstrap/oai_endpoints.yml +6 -0
- data/db/bootstrap/services.yml +172 -0
- data/db/migrate/20090602191243_create_muck_raker.rb +304 -0
- data/install.rb +1 -0
- data/lib/muck_raker/initialize_routes.rb +8 -0
- data/lib/muck_raker/languages.rb +53 -0
- data/lib/muck_raker.rb +6 -0
- data/locales/en.yml +42 -0
- data/rails/init.rb +27 -0
- data/raker/lib/aggregatord.jar +0 -0
- data/raker/lib/aggregatord.properties +45 -0
- data/raker/lib/apache-solr-common-1.3.0.jar +0 -0
- data/raker/lib/apache-solr-core-1.3.0.jar +0 -0
- data/raker/lib/apache-solr-dataimporthandler-1.3.0.jar +0 -0
- data/raker/lib/axis.jar +0 -0
- data/raker/lib/commons-codec-1.3.jar +0 -0
- data/raker/lib/commons-csv-1.0-SNAPSHOT-r609327.jar +0 -0
- data/raker/lib/commons-daemon.jar +0 -0
- data/raker/lib/commons-dbcp-1.2.1.jar +0 -0
- data/raker/lib/commons-discovery-0.2.jar +0 -0
- data/raker/lib/commons-fileupload-1.2.jar +0 -0
- data/raker/lib/commons-httpclient-3.1.jar +0 -0
- data/raker/lib/commons-io-1.3.1.jar +0 -0
- data/raker/lib/commons-logging-1.0.4.jar +0 -0
- data/raker/lib/commons-pool-1.3.jar +0 -0
- data/raker/lib/delicious-1.13.jar +0 -0
- data/raker/lib/flickrapi-1.0a9.jar +0 -0
- data/raker/lib/geronimo-stax-api_1.0_spec-1.0.1.jar +0 -0
- data/raker/lib/javax.jms.jar +0 -0
- data/raker/lib/jaxrpc.jar +0 -0
- data/raker/lib/jdom.jar +0 -0
- data/raker/lib/jericho.jar +0 -0
- data/raker/lib/junit-4.3.jar +0 -0
- data/raker/lib/log4j-1.2.8.jar +0 -0
- data/raker/lib/lucene-analyzers-2.4-dev.jar +0 -0
- data/raker/lib/lucene-core-2.4-dev.jar +0 -0
- data/raker/lib/lucene-highlighter-2.4-dev.jar +0 -0
- data/raker/lib/lucene-memory-2.4-dev.jar +0 -0
- data/raker/lib/lucene-queries-2.4-dev.jar +0 -0
- data/raker/lib/lucene-snowball-2.4-dev.jar +0 -0
- data/raker/lib/lucene-spellchecker-2.4-dev.jar +0 -0
- data/raker/lib/mail.jar +0 -0
- data/raker/lib/mysql-connector-java-5.1.7-bin.jar +0 -0
- data/raker/lib/recommenderd.jar +0 -0
- data/raker/lib/recommenderd.properties +64 -0
- data/raker/lib/rome-1.0.jar +0 -0
- data/raker/lib/rome.properties +90 -0
- data/raker/lib/solr-commons-csv-pom.xml.template +36 -0
- data/raker/lib/solr-lucene-analyzers-pom.xml.template +35 -0
- data/raker/lib/solr-lucene-contrib-pom.xml.template +48 -0
- data/raker/lib/solr-lucene-core-pom.xml.template +36 -0
- data/raker/lib/solr-lucene-highlighter-pom.xml.template +38 -0
- data/raker/lib/solr-lucene-queries-pom.xml.template +38 -0
- data/raker/lib/solr-lucene-snowball-pom.xml.template +36 -0
- data/raker/lib/solr-lucene-spellchecker-pom.xml.template +36 -0
- data/raker/lib/stax-utils.jar +0 -0
- data/raker/lib/wsdl4j-1.5.1.jar +0 -0
- data/raker/lib/wstx-asl-3.2.7.jar +0 -0
- data/tasks/bootstrap.rake +18 -0
- data/tasks/raker.rake +68 -0
- data/test/recommender_test.rb +8 -0
- data/test/test_helper.rb +20 -0
- data/uninstall.rb +1 -0
- metadata +253 -0
@@ -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
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
|
Binary file
|
data/raker/lib/axis.jar
ADDED
Binary file
|
Binary file
|
Binary file
|