muck-raker 0.1.21 → 0.1.22
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +14 -0
- data/Rakefile +2 -0
- data/VERSION +1 -1
- data/app/controllers/admin/muck/feeds_controller.rb +23 -157
- data/app/controllers/muck/entries_controller.rb +7 -7
- data/app/controllers/muck/feeds_controller.rb +1 -1
- data/app/controllers/muck/recommendations_controller.rb +20 -16
- data/app/controllers/muck/visits_controller.rb +20 -0
- data/app/helpers/muck_raker_helper.rb +5 -1
- data/app/models/click.rb +8 -0
- data/app/models/entry.rb +39 -9
- data/app/models/feed.rb +89 -25
- data/app/models/feed_parent.rb +5 -0
- data/app/models/recommendation.rb +5 -0
- data/app/models/tag_cloud.rb +4 -0
- data/app/views/admin/feeds/index.html.erb +29 -59
- data/app/views/entries/_related_entry.html.erb +1 -1
- data/app/views/entries/_result.html.erb +1 -1
- data/app/views/feeds/_feed.html.erb +14 -1
- data/app/views/feeds/edit.html.erb +1 -1
- data/app/views/parts/_add_feed.html.erb +4 -4
- data/app/views/recommendations/index.pjs.erb +8 -8
- data/app/views/recommendations/index.rss.builder +3 -3
- data/app/views/recommendations/index.xml.builder +8 -8
- data/app/views/recommendations/index_js.pjs.erb +4 -0
- data/app/views/recommendations/index_real_time.pjs.erb +44 -0
- data/app/views/recommendations/index_real_time.xml.builder +26 -0
- data/app/views/visits/show.html.erb +156 -0
- data/config/muck_raker_routes.rb +19 -15
- data/db/bootstrap/services.yml +23 -23
- data/db/migrate/20090602191243_create_muck_raker.rb +2 -2
- data/db/migrate/20090728165716_add_etag_to_feeds.rb +9 -0
- data/db/migrate/20090730045848_add_comment_cache_to_entries.rb +9 -0
- data/db/migrate/20090804211240_add_entry_id_to_shares.rb +9 -0
- data/lib/muck_raker/tasks.rb +21 -24
- data/locales/en.yml +18 -1
- data/muck-raker.gemspec +82 -6
- data/raker/lib/recommenderd.jar +0 -0
- data/test/feed_archive/http---www-oercommons-org-oai-verb-ListRecords-metadataPrefix-oer_recommender-set-collection-american-physical-society/1248886128173.xml +56 -0
- data/test/feed_archive/http---www-oercommons-org-oai-verb-ListRecords-metadataPrefix-oer_recommender-set-collection-arizona-state-university/1248886130492.xml +49 -0
- data/test/feed_archive/http---www-oercommons-org-oai-verb-ListRecords-metadataPrefix-oer_recommender-set-collection-aspire/1248886130883.xml +192 -0
- data/test/rails_root/Rakefile +3 -0
- data/test/rails_root/app/controllers/application_controller.rb +10 -1
- data/test/rails_root/app/models/activity.rb +3 -0
- data/test/rails_root/app/models/comment.rb +3 -0
- data/test/rails_root/app/models/share.rb +4 -0
- data/test/rails_root/app/models/user.rb +5 -0
- data/test/rails_root/app/views/default/index.html.erb +2 -0
- data/test/rails_root/app/views/layouts/frame.html.erb +35 -0
- data/test/rails_root/config/database.yml +4 -2
- data/test/rails_root/config/environment.rb +3 -0
- data/test/rails_root/config/environments/cucumber.rb +21 -0
- data/test/rails_root/config/global_config.yml +2 -0
- data/test/rails_root/config/routes.rb +1 -1
- data/test/rails_root/db/bootstrap/attention.yml +6 -0
- data/test/rails_root/db/bootstrap/feeds.yml +4268 -0
- data/test/rails_root/db/bootstrap/oai_endpoints.yml +6 -0
- data/test/rails_root/db/bootstrap/services.yml +172 -0
- data/test/rails_root/db/migrate/20090402033319_add_muck_activities.rb +36 -0
- data/test/rails_root/db/migrate/20090602191243_create_muck_raker.rb +2 -2
- data/test/rails_root/db/migrate/20090613173314_create_comments.rb +24 -0
- data/test/rails_root/db/migrate/20090728165716_add_etag_to_feeds.rb +9 -0
- data/test/rails_root/db/migrate/20090730044139_add_comment_cache.rb +9 -0
- data/test/rails_root/db/migrate/20090730045848_add_comment_cache_to_entries.rb +9 -0
- data/test/rails_root/db/migrate/20090730154102_allow_null_user.rb +9 -0
- data/test/rails_root/db/migrate/20090803185323_create_shares.rb +18 -0
- data/test/rails_root/db/migrate/20090804211240_add_entry_id_to_shares.rb.rb +9 -0
- data/test/rails_root/features/feeds.feature +13 -0
- data/test/rails_root/features/step_definitions/common_steps.rb +93 -0
- data/test/rails_root/features/step_definitions/visit_steps.rb +6 -0
- data/test/rails_root/features/step_definitions/webrat_steps.rb +52 -23
- data/test/rails_root/features/support/paths.rb +36 -0
- data/test/rails_root/features/visit.feature +10 -0
- data/test/rails_root/lib/tasks/cucumber.rake +20 -0
- data/test/rails_root/public/images/icons/blue_guy.png +0 -0
- data/test/rails_root/public/images/icons/cancel.png +0 -0
- data/test/rails_root/public/images/icons/close.png +0 -0
- data/test/rails_root/public/images/icons/delete.png +0 -0
- data/test/rails_root/public/images/icons/exclaim.png +0 -0
- data/test/rails_root/public/images/icons/grey_guy.png +0 -0
- data/test/rails_root/public/images/icons/hide.png +0 -0
- data/test/rails_root/public/images/icons/information.png +0 -0
- data/test/rails_root/public/images/icons/minus.png +0 -0
- data/test/rails_root/public/images/icons/question.png +0 -0
- data/test/rails_root/public/images/icons/search_box.png +0 -0
- data/test/rails_root/public/images/icons/star.png +0 -0
- data/test/rails_root/public/images/icons/stop.png +0 -0
- data/test/rails_root/public/images/icons/thumb_down.png +0 -0
- data/test/rails_root/public/images/icons/thumb_up.png +0 -0
- data/test/rails_root/public/images/icons/vote.png +0 -0
- data/test/rails_root/public/javascripts/jquery/jrails.js +1 -0
- data/test/rails_root/public/javascripts/muck.js +15 -1
- data/test/rails_root/public/javascripts/muck_activities.js +1 -1
- data/test/rails_root/public/stylesheets/application.css +49 -1
- data/test/rails_root/public/stylesheets/styles.css +2 -1
- data/test/rails_root/script/cucumber +2 -1
- data/test/rails_root/test/functional/admin/feeds_controller_test.rb +37 -0
- data/test/rails_root/test/functional/feed_previews_controller_test.rb +1 -1
- data/test/rails_root/test/functional/visits_controller_test.rb +21 -0
- data/test/rails_root/test/test_helper.rb +2 -1
- data/test/rails_root/test/unit/entry_test.rb +12 -0
- data/test/rails_root/test/unit/feed_parent_test.rb +17 -0
- data/test/rails_root/test/unit/feed_test.rb +42 -3
- data/test/rails_root/test/unit/tag_cloud_test.rb +4 -0
- metadata +89 -4
- data/app/models/language.rb +0 -16
- data/app/views/recommendations/document_not_found.html.erb +0 -13
@@ -1,3 +1,7 @@
|
|
1
|
+
<!--
|
2
|
+
this was an experiment with randomizing order in the js instead of server side
|
3
|
+
it is no longer used
|
4
|
+
-->
|
1
5
|
<% if @recs.size > 0 %>
|
2
6
|
function avg(aRecs){dSum = 0; for(nRec = 0; nRec < aRecs.length; nRec++) {dSum += aRecs[nRec].relevance;} return dSum/aRecs.length;}
|
3
7
|
function std(aRecs,dAvg){dSum = 0; for(nRec = 0; nRec < aRecs.length; nRec++) {dSum += Math.pow((aRecs[nRec].relevance-dAvg),2);} return Math.sqrt(dSum/aRecs.length);}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<%
|
2
|
+
@json_recommendations = @entry.json_recommendations(@limit, params[:order] || "mixed", true, params[:omit_feeds] || nil)
|
3
|
+
if !@json_recommendations.nil?
|
4
|
+
@direct_link_text = params[:direct_link_text] || t('muck.raker.direct_link')
|
5
|
+
%>
|
6
|
+
var catalog_page = <%= !@entry.direct_link.nil? and @uri == @entry.permalink %>;
|
7
|
+
var document_host = '<%= @host %>';
|
8
|
+
var recs = <%= @json_recommendations %>.solr_data.docs;
|
9
|
+
var app = "http://folksemantic.com/";
|
10
|
+
<% if @details == true -%>
|
11
|
+
function truncate(text, length) {
|
12
|
+
nEnd = text.indexOf(" ", 200);
|
13
|
+
if (nEnd < 200) return text;
|
14
|
+
else return text.substring(0, nEnd) + " ...";
|
15
|
+
}
|
16
|
+
var asMonths = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
|
17
|
+
function format_date(published_at) {
|
18
|
+
date = new Date();
|
19
|
+
date.setTime(Date.parse(published_at));
|
20
|
+
return date.getDate() + " " + asMonths[date.getMonth()] + " " + date.getUTCFullYear();
|
21
|
+
}
|
22
|
+
<% end %>
|
23
|
+
document.write('<div class="oer_recommender_container">');
|
24
|
+
<% if params[:title] %>document.write('<div class="oer_recommender_title"><%= t('muck.raker.gm_title') %></div>');<% end %>
|
25
|
+
document.write('<div class="oer_recommender_list">');
|
26
|
+
for(nRec = 0; nRec < recs.length; nRec++) {
|
27
|
+
r = recs[nRec].entry;
|
28
|
+
metadata_link = catalog_page && document_host == r.uri.substring(0, document_host.length);
|
29
|
+
direct_link = metadata_link && r.direct_link;
|
30
|
+
document.write('<p class="oer_recommender_item">');
|
31
|
+
document.write('<a class="oer_recommender_recommendation_link" href="' + (r.direct_link ? r.direct_link : r.permalink) + '">' + r.title + ' (' + r.collection + ')</a>');
|
32
|
+
if (direct_link) document.write(' <a class="oer_recommender_direct_link" href="' + app + 'r?id=' + r.id + '&target=direct_link"><%= @direct_link_text %></a>');
|
33
|
+
<% if @details == true -%>
|
34
|
+
document.write(' <span class="oer_recommender_published_at">(' + format_date(r.published_at) + ')</span>');
|
35
|
+
document.write(' <span class="oer_recommender_relevance_score"><%= t('muck.raker.relevance')%>: ' + Math.round(r.relevance*100)/100 + '</span>');
|
36
|
+
document.write('<br/><span class="oer_recommender_description">' + truncate(r.description) + '</span>');
|
37
|
+
document.write('<br/><span class="oer_recommender_uri">' + r.uri + '</span>');
|
38
|
+
<% end -%>
|
39
|
+
document.write('</a></p>');
|
40
|
+
}
|
41
|
+
document.write('</div>');
|
42
|
+
<% if params[:more_link] %>document.write('<div class="oer_recommender_more_link"><a href="' + app + 'documents/<%= @entry.id %>"><%= t('muck.raker.gm_more_prompt') %></a></div>');<% end %>
|
43
|
+
document.write('</div>');
|
44
|
+
<% end %>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
xml.instruct!
|
2
|
+
|
3
|
+
if @entry.nil?
|
4
|
+
xml.recommendations
|
5
|
+
else
|
6
|
+
|
7
|
+
@recommendations = @entry.ranked_recommendations(@limit, params[:order] || "mixed", @details)
|
8
|
+
xml.recommendations(:document_id => @entry.nil? ? "" : @entry.id, :uri => @uri, :title => t("muck.raker.gm_title"), :more_prompt => t("muck.raker.gm_more_prompt"), :direct_link_text => t("muck.raker.direct_link")) do
|
9
|
+
@recommendations.results.each do |recommendation|
|
10
|
+
xml.recommendation do
|
11
|
+
xml.title recommendation["title"]
|
12
|
+
xml.collection recommendation["collection"]
|
13
|
+
xml.link recommendation["direct_link"].empty? ? recommendation["permalink"] : recommendation["direct_link"]
|
14
|
+
|
15
|
+
if @details == true
|
16
|
+
xml.description recommendation["description"]
|
17
|
+
xml.relevance round(recommendation["score"])
|
18
|
+
xml.published_at recommendation["published_at"]
|
19
|
+
xml.author recommendation["author"]
|
20
|
+
else
|
21
|
+
xml.description ""
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,156 @@
|
|
1
|
+
<div id="toolbar">
|
2
|
+
<div id="profile" class="section">
|
3
|
+
</div>
|
4
|
+
<div id="close" class="section">
|
5
|
+
<a id="close_frame" title="Remove frame and go to this web address." class="url_fragment" href="<%= @resource_uri %>"> </a>
|
6
|
+
<a id="close_frame_text" title="Remove frame and go to this web address." class="url_fragment" href="<%= @resource_uri %>"><%= t('muck.raker.close') %></a>
|
7
|
+
</div>
|
8
|
+
<div id="search" class="section">
|
9
|
+
<% form_tag(search_entries_path, {:method => :get}) do -%>
|
10
|
+
<div id="search_box"><%= text_field_tag(:q, '', :id => 'search-box') %></div>
|
11
|
+
<input id="search_go" class="input-button" type="submit" value="<%= t('muck.raker.search_button') %>"/>
|
12
|
+
<% end -%>
|
13
|
+
</div>
|
14
|
+
<div id="tools" class="section">
|
15
|
+
<%#= link_to t('muck.raker.remix'), new_content_path(@entry), :id => 'share' - copy the page into the content system %>
|
16
|
+
<%#= link_to t('muck.raker.save'), new_content_path(@entry), :id => 'share' - save the content for use later on %>
|
17
|
+
<% if GlobalConfig.enable_raker_shares -%>
|
18
|
+
<% if logged_in? -%>
|
19
|
+
<%= link_to t('muck.raker.share'), new_user_share_path(current_user, :title => @entry.title, :uri => @resource_uri), :id => 'share' %>
|
20
|
+
<% else -%>
|
21
|
+
<%= link_to t('muck.raker.login_to_prompt'), login_path, :id => 'login' %>
|
22
|
+
<% end -%>
|
23
|
+
<% end -%>
|
24
|
+
<%= link_to t('muck.raker.comment_entries_count', :count => @entry.comment_count), entry_comments_path(@entry), :id => 'comment' if GlobalConfig.enable_raker_comments %>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div id="comments_tool" class="tool" style="display:none;">
|
29
|
+
<div id="comments_tools_close_wrapper" class="close_link_wrapper">
|
30
|
+
<a href="#" id="comments_tools_close" class="close_link"><%= t('muck.raker.hide')%></a>
|
31
|
+
</div>
|
32
|
+
<div class="tools_container">
|
33
|
+
<div id="comments_wrapper" class="tools_wrapper">
|
34
|
+
<%= show_comments(@comments) %>
|
35
|
+
</div>
|
36
|
+
<div id="comments_control">
|
37
|
+
<% if logged_in? -%>
|
38
|
+
<%= output_errors(t('muck.comments.problem_adding_comment'), {:class => 'help-box'}, @comment) %>
|
39
|
+
<%= comment_form(@entry, nil, true) %>
|
40
|
+
<% else -%>
|
41
|
+
<%= link_to t('muck.raker.login_to_comment'), login_path %>
|
42
|
+
<% end -%>
|
43
|
+
</div>
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
|
47
|
+
<div id="share_tool" class="tool" style="display:none;">
|
48
|
+
<div id="share_tool_close_wrapper" class="close_link_wrapper">
|
49
|
+
<a href="#" id="share_tool_close" class="close_link"><%= t('muck.raker.hide')%></a>
|
50
|
+
</div>
|
51
|
+
<div class="tools_container">
|
52
|
+
<div id="shares_control">
|
53
|
+
<h2><%= t('muck.shares.share_title') %></h2>
|
54
|
+
<% if logged_in? -%>
|
55
|
+
<% if already_shared?(current_user, @resource_uri)-%>
|
56
|
+
<%= t('muck.raker.already_shared') %>
|
57
|
+
<% end -%>
|
58
|
+
<%= output_errors(t('muck.shares.problem_adding_share'), {:class => 'help-box'}, @share) %>
|
59
|
+
<% share_form(@share) do |f| -%>
|
60
|
+
<%= f.hidden_field :entry_id -%>
|
61
|
+
<%= hidden_field_tag :render_new, false -%>
|
62
|
+
<% end -%>
|
63
|
+
<% else -%>
|
64
|
+
<%= link_to t('muck.shares.login_prompt'), login_path %>
|
65
|
+
<% end -%>
|
66
|
+
</div>
|
67
|
+
</div>
|
68
|
+
</div>
|
69
|
+
|
70
|
+
<div id="frame_content" class="framed_content">
|
71
|
+
<iframe id="content_iframe" class="framed_content" name="iframe" src="<%= @resource_uri %>" frameborder="0" scrolling="auto" noresize="noresize"></iframe>
|
72
|
+
</div>
|
73
|
+
|
74
|
+
<% content_for :head do -%>
|
75
|
+
<%= javascript_tag %[var COMMENT_PROMPT = '#{t('muck.raker.write_comment_prompt')}';] %>
|
76
|
+
<%= javascript_tag %[var ADD_COMMENT_MESSAGE = '#{t('muck.raker.adding_comment_message')}';] %>
|
77
|
+
<%= javascript_tag %[var ADD_SHARE_MESSAGE = '#{t('muck.shares.adding_share')}';] %>
|
78
|
+
<% end -%>
|
79
|
+
|
80
|
+
<%# content_for :javascript do -%>
|
81
|
+
<script type="text/javascript" language="JavaScript">
|
82
|
+
jQuery(document).ready(function() {
|
83
|
+
jQuery(window).bind('resize', function() {
|
84
|
+
maximize_space();
|
85
|
+
});
|
86
|
+
jQuery('#comment').click(function(){
|
87
|
+
return show_tool('comments');
|
88
|
+
});
|
89
|
+
jQuery('#share').click(function(){
|
90
|
+
return show_tool('share');
|
91
|
+
});
|
92
|
+
jQuery('.close_link').click(function(){
|
93
|
+
jQuery('.tool').hide();
|
94
|
+
jQuery("#content_iframe").width('100%');
|
95
|
+
return false;
|
96
|
+
});
|
97
|
+
setup_comment_submit();
|
98
|
+
setup_share_submit();
|
99
|
+
});
|
100
|
+
function show_tool(tool) {
|
101
|
+
jQuery('.tool').hide();
|
102
|
+
jQuery("#content_iframe").width('75%');
|
103
|
+
jQuery('#' + tool + '_tool').show();
|
104
|
+
maximize_space();
|
105
|
+
return false;
|
106
|
+
}
|
107
|
+
function maximize_space() {
|
108
|
+
var container = jQuery(".tools_container");
|
109
|
+
var spacer = jQuery('#comments_tools_close_wrapper').height() + 5;
|
110
|
+
container.height(jQuery(window).height() - (jQuery('#toolbar').height() + spacer));
|
111
|
+
}
|
112
|
+
function setup_comment_submit(){
|
113
|
+
jQuery(".comment-submit").click(function() {
|
114
|
+
jQuery(this).siblings('textarea').hide();
|
115
|
+
jQuery(this).parent().append('<p class="comment-loading"><img src="/images/spinner.gif" alt="loading..." /> ' + ADD_COMMENT_MESSAGE + '</p>');
|
116
|
+
var form = jQuery(this).parents('form');
|
117
|
+
jQuery.post(form.attr('action'), form.serialize() + '&format=json',
|
118
|
+
function(data){
|
119
|
+
var json = eval('(' + data + ')');
|
120
|
+
if(!json.success){
|
121
|
+
jQuery.jGrowl.info(json.message);
|
122
|
+
} else {
|
123
|
+
jQuery('.comment-loading').remove();
|
124
|
+
jQuery('#comments_tool').find('textarea').show();
|
125
|
+
jQuery('#comments_tool').find('textarea').val('');
|
126
|
+
jQuery("#comments_container").animate({ scrollTop: jQuery("#comments_container").attr("scrollHeight") }, 3000);
|
127
|
+
var contents = jQuery(json.html)
|
128
|
+
contents.hide();
|
129
|
+
jQuery('#comments_wrapper').append(contents);
|
130
|
+
contents.fadeIn("slow");
|
131
|
+
}
|
132
|
+
});
|
133
|
+
return false;
|
134
|
+
});
|
135
|
+
}
|
136
|
+
function setup_share_submit(){
|
137
|
+
jQuery('#share_submit_share_new').click(function() {
|
138
|
+
jQuery(this).parent().append('<p class="share-loading"><img src="/images/spinner.gif" alt="loading..." /> ' + ADD_SHARE_MESSAGE + '</p>');
|
139
|
+
jQuery('#share_submit_share_new').hide();
|
140
|
+
var form = jQuery(this).parents('form');
|
141
|
+
jQuery.post(form.attr('action'), form.serialize() + '&format=json',
|
142
|
+
function(data){
|
143
|
+
var json = eval('(' + data + ')');
|
144
|
+
jQuery('.share-loading').remove();
|
145
|
+
jQuery('#share_submit_share_new').show();
|
146
|
+
if(!json.success){
|
147
|
+
jQuery.jGrowl.info(json.message);
|
148
|
+
} else {
|
149
|
+
jQuery.jGrowl.info(json.message);
|
150
|
+
}
|
151
|
+
});
|
152
|
+
return false;
|
153
|
+
});
|
154
|
+
}
|
155
|
+
</script>
|
156
|
+
<%# end -%>
|
data/config/muck_raker_routes.rb
CHANGED
@@ -2,7 +2,7 @@ ActionController::Routing::Routes.draw do |map|
|
|
2
2
|
|
3
3
|
# admin
|
4
4
|
map.namespace :admin do |a|
|
5
|
-
a.resources :feeds, :controller => 'muck/feeds'
|
5
|
+
a.resources :feeds, :controller => 'muck/feeds'
|
6
6
|
end
|
7
7
|
|
8
8
|
map.connect '/feed_list', :controller => 'muck/feeds', :action => 'selection_list'
|
@@ -12,27 +12,31 @@ ActionController::Routing::Routes.draw do |map|
|
|
12
12
|
map.resources :resources, :controller => 'muck/entries'
|
13
13
|
|
14
14
|
map.connect 'r', :controller => 'muck/entries', :action => 'track_clicks'
|
15
|
-
map.connect 'collections', :controller => 'entries', :action => 'collections'
|
15
|
+
map.connect 'collections', :controller => 'muck/entries', :action => 'collections'
|
16
16
|
|
17
|
+
map.resources :visits, :controller => 'muck/visits'
|
17
18
|
map.resources :feed_previews, :controller => 'muck/feed_previews', :collection => { :select_feeds => :post }
|
18
|
-
|
19
|
+
|
20
|
+
map.resources :entries, :controller => 'muck/entries', :collection => { :search => :get } do |entries|
|
21
|
+
# have to map into the muck/comments controller or rails can't find the comments
|
22
|
+
entries.resources :comments, :controller => 'muck/comments'
|
23
|
+
end
|
24
|
+
|
19
25
|
map.resources :feeds, :controller => 'muck/feeds', :collection => { :new_extended => :get }, :has_many => :entries
|
20
26
|
map.resources :recommendations, :controller => 'muck/recommendations'
|
21
27
|
|
22
28
|
# redirect (and hit tracking)
|
23
29
|
|
24
30
|
# search
|
25
|
-
map.connect 'search/relations.:format/*terms', :controller => 'search', :action => 'relations'
|
26
|
-
map.connect 'search/relations/*terms', :controller => 'search', :action => 'relations'
|
27
|
-
map.connect 'search/source_uri.:format', :controller => 'search', :action => 'source_uri'
|
28
|
-
map.connect 'search/source_uri', :controller => 'search', :action => 'source_uri'
|
29
|
-
map.connect 'search/destination_uri.:format', :controller => 'search', :action => 'destination_uri'
|
30
|
-
map.connect 'search/destination_uri', :controller => 'search', :action => 'destination_uri'
|
31
|
-
map.connect 'search/uris.:format', :controller => 'search', :action => 'uris'
|
32
|
-
map.connect 'search/uris', :controller => 'search', :action => 'uris'
|
33
|
-
map.connect 'search/results.:format', :controller => 'search', :action => 'results'
|
34
|
-
map.connect 'search/results', :controller => 'search', :action => 'results'
|
35
|
-
|
36
|
-
map.connect '/frames', :controller => 'documents', :action => 'frames'
|
31
|
+
map.connect 'search/relations.:format/*terms', :controller => 'muck/search', :action => 'relations'
|
32
|
+
map.connect 'search/relations/*terms', :controller => 'muck/search', :action => 'relations'
|
33
|
+
map.connect 'search/source_uri.:format', :controller => 'muck/search', :action => 'source_uri'
|
34
|
+
map.connect 'search/source_uri', :controller => 'muck/search', :action => 'source_uri'
|
35
|
+
map.connect 'search/destination_uri.:format', :controller => 'muck/search', :action => 'destination_uri'
|
36
|
+
map.connect 'search/destination_uri', :controller => 'muck/search', :action => 'destination_uri'
|
37
|
+
map.connect 'search/uris.:format', :controller => 'muck/search', :action => 'uris'
|
38
|
+
map.connect 'search/uris', :controller => 'muck/search', :action => 'uris'
|
39
|
+
map.connect 'search/results.:format', :controller => 'muck/search', :action => 'results'
|
40
|
+
map.connect 'search/results', :controller => 'muck/search', :action => 'results'
|
37
41
|
|
38
42
|
end
|
data/db/bootstrap/services.yml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
rss:
|
2
2
|
id: 1
|
3
|
-
|
3
|
+
name: rss
|
4
4
|
uri:
|
5
5
|
api_uri:
|
6
6
|
uri_template:
|
@@ -8,7 +8,7 @@ rss:
|
|
8
8
|
sequence: 1
|
9
9
|
oai:
|
10
10
|
id: 2
|
11
|
-
|
11
|
+
name: OAI
|
12
12
|
uri:
|
13
13
|
api_uri:
|
14
14
|
uri_template:
|
@@ -16,7 +16,7 @@ oai:
|
|
16
16
|
sequence: 2
|
17
17
|
twitter:
|
18
18
|
id: 3
|
19
|
-
|
19
|
+
name: Twitter
|
20
20
|
uri: "http://www.twitter.com"
|
21
21
|
api_uri:
|
22
22
|
uri_template:
|
@@ -24,7 +24,7 @@ twitter:
|
|
24
24
|
sequence: 3
|
25
25
|
youtube:
|
26
26
|
id: 4
|
27
|
-
|
27
|
+
name: You Tube
|
28
28
|
uri: "http://www.youtube.com"
|
29
29
|
api_uri:
|
30
30
|
uri_template: feed://www.youtube.com/rss/user/{username}/videos.rss
|
@@ -32,7 +32,7 @@ youtube:
|
|
32
32
|
sequence: 4
|
33
33
|
flickr:
|
34
34
|
id: 5
|
35
|
-
|
35
|
+
name: Flickr
|
36
36
|
uri: "http://www.flickr.com"
|
37
37
|
api_uri:
|
38
38
|
uri_template: "http://api.flickr.com/services/feeds/activity.gne?id={username}"
|
@@ -40,7 +40,7 @@ flickr:
|
|
40
40
|
sequence: 5
|
41
41
|
delicious:
|
42
42
|
id: 6
|
43
|
-
|
43
|
+
name: del.icio.us
|
44
44
|
uri: "http://del.icio.us/"
|
45
45
|
api_uri: "https://api.del.icio.us/v1/"
|
46
46
|
uri_template:
|
@@ -48,7 +48,7 @@ delicious:
|
|
48
48
|
sequence: 6
|
49
49
|
digg:
|
50
50
|
id: 7
|
51
|
-
|
51
|
+
name: Digg
|
52
52
|
uri: "http://www.digg.com"
|
53
53
|
api_uri:
|
54
54
|
uri_template: "http://digg.com/rss/{username}/index2.xml"
|
@@ -56,7 +56,7 @@ digg:
|
|
56
56
|
sequence: 7
|
57
57
|
43places:
|
58
58
|
id: 8
|
59
|
-
|
59
|
+
name: 43 Places
|
60
60
|
uri: "http://www.43places.com"
|
61
61
|
api_uri:
|
62
62
|
uri_template: "http://www.43places.com/rss/uber/author?username={username}"
|
@@ -64,7 +64,7 @@ digg:
|
|
64
64
|
sequence: 8
|
65
65
|
allconsuming:
|
66
66
|
id: 9
|
67
|
-
|
67
|
+
name: All Consuming
|
68
68
|
uri: "http://allconsuming.net/"
|
69
69
|
api_uri:
|
70
70
|
uri_template: "http://allconsuming.net/person/{username}/rss"
|
@@ -73,7 +73,7 @@ allconsuming:
|
|
73
73
|
clipmarks:
|
74
74
|
id: 10
|
75
75
|
sequence: 10
|
76
|
-
|
76
|
+
name: Clipmarks
|
77
77
|
uri: "http://www.clipmarks.com"
|
78
78
|
api_uri:
|
79
79
|
uri_template: "http://rss.clipmarks.com/clipper/{username}/"
|
@@ -81,7 +81,7 @@ clipmarks:
|
|
81
81
|
lastfm:
|
82
82
|
id: 11
|
83
83
|
sequence: 11
|
84
|
-
|
84
|
+
name: Last.fm
|
85
85
|
uri: "http://www.last.fm"
|
86
86
|
api_uri:
|
87
87
|
uri_template: "http://ws.audioscrobbler.com/1.0/user/{username}/recenttracks.rss"
|
@@ -89,7 +89,7 @@ lastfm:
|
|
89
89
|
livejournal:
|
90
90
|
id: 12
|
91
91
|
sequence: 12
|
92
|
-
|
92
|
+
name: LiveJournal
|
93
93
|
uri: "http://www.livejournal.com"
|
94
94
|
api_uri:
|
95
95
|
uri_template: "http://{username}.livejournal.com"
|
@@ -97,7 +97,7 @@ livejournal:
|
|
97
97
|
simpy:
|
98
98
|
id: 13
|
99
99
|
sequence: 13
|
100
|
-
|
100
|
+
name: Simpy
|
101
101
|
uri: "http://www.simpy.com"
|
102
102
|
api_uri:
|
103
103
|
uri_template: "http://www.simpy.com/rss/user/{username}/links/"
|
@@ -105,7 +105,7 @@ simpy:
|
|
105
105
|
wordpress:
|
106
106
|
id: 14
|
107
107
|
sequence: 14
|
108
|
-
|
108
|
+
name: Wordpress.com
|
109
109
|
uri: "http://www.wordpress.com/"
|
110
110
|
api_uri:
|
111
111
|
uri_template: "http://{username}.wordpress.com/"
|
@@ -113,7 +113,7 @@ wordpress:
|
|
113
113
|
xanga:
|
114
114
|
id: 15
|
115
115
|
sequence: 15
|
116
|
-
|
116
|
+
name: Xanga
|
117
117
|
uri: "http://www.xanga.com"
|
118
118
|
api_uri:
|
119
119
|
uri_template: "http://www.xanga.com/{username}/rss"
|
@@ -121,7 +121,7 @@ xanga:
|
|
121
121
|
citeulike:
|
122
122
|
id: 16
|
123
123
|
sequence: 16
|
124
|
-
|
124
|
+
name: cite u like
|
125
125
|
uri: "http://www.citeulike.org"
|
126
126
|
api_uri:
|
127
127
|
uri_template: "http://www.citeulike.org/rss/user/{username}"
|
@@ -129,35 +129,35 @@ citeulike:
|
|
129
129
|
googlenews:
|
130
130
|
id: 17
|
131
131
|
sequence: 17
|
132
|
-
|
132
|
+
name: Google News
|
133
133
|
uri: "http://news.google.com/"
|
134
134
|
icon: googlenews.gif
|
135
135
|
googleblogsearch:
|
136
136
|
id: 18
|
137
137
|
sequence: 18
|
138
|
-
|
138
|
+
name: Google Blog Search
|
139
139
|
uri: "http://blogsearch.google.com/"
|
140
140
|
icon: googleblogs.gif
|
141
141
|
opml:
|
142
142
|
id: 19
|
143
143
|
sequence: 19
|
144
|
-
|
144
|
+
name: OPML
|
145
145
|
icon: opml.gif
|
146
146
|
tag:
|
147
147
|
id: 20
|
148
148
|
sequence: 20
|
149
|
-
|
149
|
+
name: Tag
|
150
150
|
icon: tag.gif
|
151
151
|
odeo:
|
152
152
|
id: 21
|
153
153
|
sequence: 21
|
154
|
-
|
154
|
+
name: Odeo Podcasts
|
155
155
|
uri: "http://www.odeo.com"
|
156
156
|
icon: odeo.gif
|
157
157
|
technorati:
|
158
158
|
id: 22
|
159
159
|
sequence: 22
|
160
|
-
|
160
|
+
name: Technorati
|
161
161
|
uri: "http://www.technorati.com/"
|
162
162
|
api_uri:
|
163
163
|
uri_template: "http://feeds.technorati.com/faves/{username}?format=rss"
|
@@ -165,7 +165,7 @@ technorati:
|
|
165
165
|
merlot:
|
166
166
|
id: 23
|
167
167
|
sequence: 23
|
168
|
-
|
168
|
+
name: Merlot
|
169
169
|
uri: "http://www.merlot.org/"
|
170
170
|
api_uri:
|
171
171
|
uri_template:
|