muck-raker 0.1.26 → 0.1.27
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/README.rdoc +39 -4
- data/VERSION +1 -1
- data/app/controllers/muck/feeds_controller.rb +8 -2
- data/app/controllers/muck/identity_feeds_controller.rb +154 -0
- data/app/controllers/muck/visits_controller.rb +7 -1
- data/app/helpers/muck_raker_services_helper.rb +117 -0
- data/app/models/aggregation.rb +17 -0
- data/app/models/amazon.rb +59 -0
- data/app/models/amazon_request.rb +83 -0
- data/app/models/click.rb +0 -8
- data/app/models/entry.rb +2 -1
- data/app/models/feed.rb +53 -57
- data/app/models/feed_parent.rb +0 -5
- data/app/models/identity_feed.rb +26 -0
- data/app/models/recommendation.rb +0 -5
- data/app/models/service.rb +53 -8
- data/app/models/service_category.rb +14 -0
- data/app/models/tag_cloud.rb +0 -4
- data/app/views/activity_templates/_entry_comment.html.erb +8 -0
- data/app/views/activity_templates/_entry_share.html.erb +8 -0
- data/app/views/identity_feeds/_form.html.erb +20 -0
- data/app/views/identity_feeds/_service_categories.html.erb +13 -0
- data/app/views/identity_feeds/_services_for_user.html.erb +25 -0
- data/app/views/identity_feeds/edit.html.erb +2 -0
- data/app/views/identity_feeds/index.html.erb +32 -0
- data/app/views/identity_feeds/new.html.erb +1 -0
- data/app/views/parts/_add_extended_feed.html.erb +1 -1
- data/app/views/parts/_add_feed.html.erb +1 -1
- data/app/views/parts/_add_single_feed.html.erb +1 -1
- data/app/views/service_templates/_facebook.html.erb +4 -0
- data/app/views/service_templates/_friendfeed.html.erb +2 -0
- data/app/views/service_templates/_goodreads.html.erb +2 -0
- data/app/views/service_templates/_linkedin.html.erb +2 -0
- data/app/views/service_templates/_netflix.html.erb +2 -0
- data/app/views/service_templates/_polyvore.html.erb +2 -0
- data/app/views/service_templates/_zotero_group.html.erb +2 -0
- data/app/views/services/_edit_service.html.erb +1 -0
- data/app/views/services/_new_service.html.erb +1 -0
- data/app/views/services/_summary.html.erb +5 -0
- data/app/views/services/_view_service.html.erb +1 -0
- data/app/views/visits/_comments_tool.html.erb +19 -0
- data/app/views/visits/_frame_scripts.html.erb +26 -0
- data/app/views/visits/_share_tool.html.erb +22 -0
- data/app/views/visits/_toolbar.html.erb +25 -0
- data/app/views/visits/show.html.erb +4 -96
- data/config/muck_raker_routes.rb +2 -0
- data/db/bootstrap/service_categories.yml +40 -0
- data/db/bootstrap/services.yml +605 -153
- data/db/migrate/20090826220530_change_services_sequence_to_sort.rb +9 -0
- data/db/migrate/20090826225652_create_identity_feeds.rb +14 -0
- data/db/migrate/20090827005105_add_identity_fields_to_services.rb +13 -0
- data/db/migrate/20090827015308_create_service_categories.rb +12 -0
- data/db/migrate/20090827221502_add_prompt_and_template_to_services.rb +11 -0
- data/lib/active_record/acts/muck_feed_owner.rb +31 -0
- data/lib/active_record/acts/muck_feed_parent.rb +3 -2
- data/lib/active_record/acts/muck_raker_comment.rb +39 -0
- data/lib/active_record/acts/muck_raker_share.rb +32 -0
- data/lib/muck_raker/tasks.rb +19 -0
- data/lib/muck_raker.rb +6 -0
- data/locales/ar.yml +98 -61
- data/locales/bg.yml +90 -53
- data/locales/ca.yml +87 -50
- data/locales/cs.yml +82 -45
- data/locales/da.yml +69 -32
- data/locales/de.yml +75 -38
- data/locales/el.yml +78 -41
- data/locales/en.yml +39 -2
- data/locales/es.yml +82 -45
- data/locales/et.yml +89 -52
- data/locales/fa.yml +82 -45
- data/locales/fi.yml +95 -58
- data/locales/fr.yml +80 -43
- data/locales/gl.yml +94 -57
- data/locales/hi.yml +77 -40
- data/locales/hr.yml +84 -47
- data/locales/hu.yml +101 -64
- data/locales/id.yml +81 -44
- data/locales/it.yml +84 -47
- data/locales/iw.yml +91 -54
- data/locales/ja.yml +96 -59
- data/locales/ko.yml +77 -40
- data/locales/lt.yml +85 -48
- data/locales/lv.yml +87 -50
- data/locales/mt.yml +90 -53
- data/locales/nl.yml +75 -38
- data/locales/no.yml +77 -40
- data/locales/pl.yml +79 -42
- data/locales/pt-PT.yml +87 -50
- data/locales/ro.yml +100 -63
- data/locales/ru.yml +94 -57
- data/locales/sk.yml +83 -46
- data/locales/sl.yml +84 -47
- data/locales/sq.yml +101 -64
- data/locales/sr.yml +106 -69
- data/locales/sv.yml +87 -50
- data/locales/th.yml +100 -63
- data/locales/tl.yml +73 -36
- data/locales/tr.yml +84 -47
- data/locales/uk.yml +98 -61
- data/locales/vi.yml +87 -50
- data/locales/zh-CN.yml +82 -45
- data/locales/zh-TW.yml +82 -45
- data/locales/zh.yml +83 -46
- data/muck-raker.gemspec +517 -5
- data/public/ecs_to_rss-wishlist.xslt +41 -0
- data/public/images/service_icons/16/blogger.png +0 -0
- data/public/images/service_icons/16/citeulike.png +0 -0
- data/public/images/service_icons/16/clipmarks.png +0 -0
- data/public/images/service_icons/16/dailymotion.png +0 -0
- data/public/images/service_icons/16/delicious.png +0 -0
- data/public/images/service_icons/16/digg.png +0 -0
- data/public/images/service_icons/16/diigo.png +0 -0
- data/public/images/service_icons/16/facebook.png +0 -0
- data/public/images/service_icons/16/feed.png +0 -0
- data/public/images/service_icons/16/flickr.png +0 -0
- data/public/images/service_icons/16/fotolog.png +0 -0
- data/public/images/service_icons/16/friendfeed.png +0 -0
- data/public/images/service_icons/16/friendster.png +0 -0
- data/public/images/service_icons/16/furl.png +0 -0
- data/public/images/service_icons/16/goodreads.png +0 -0
- data/public/images/service_icons/16/google.png +0 -0
- data/public/images/service_icons/16/googleblog.png +0 -0
- data/public/images/service_icons/16/googlenews.png +0 -0
- data/public/images/service_icons/16/identica.png +0 -0
- data/public/images/service_icons/16/joost.png +0 -0
- data/public/images/service_icons/16/lastfm.png +0 -0
- data/public/images/service_icons/16/librarything.png +0 -0
- data/public/images/service_icons/16/linkedin.png +0 -0
- data/public/images/service_icons/16/livejournal.png +0 -0
- data/public/images/service_icons/16/magnolia.png +0 -0
- data/public/images/service_icons/16/mendeley.png +0 -0
- data/public/images/service_icons/16/mixx.png +0 -0
- data/public/images/service_icons/16/myspace.png +0 -0
- data/public/images/service_icons/16/netflix.png +0 -0
- data/public/images/service_icons/16/netvibes.png +0 -0
- data/public/images/service_icons/16/newsvine.png +0 -0
- data/public/images/service_icons/16/oai.png +0 -0
- data/public/images/service_icons/16/odeo.png +0 -0
- data/public/images/service_icons/16/opml.png +0 -0
- data/public/images/service_icons/16/pandora.png +0 -0
- data/public/images/service_icons/16/photobucket.png +0 -0
- data/public/images/service_icons/16/picasa.png +0 -0
- data/public/images/service_icons/16/polyvore.png +0 -0
- data/public/images/service_icons/16/pownce.png +0 -0
- data/public/images/service_icons/16/reddit.png +0 -0
- data/public/images/service_icons/16/simpy.png +0 -0
- data/public/images/service_icons/16/smugmug.png +0 -0
- data/public/images/service_icons/16/stumbleupon.png +0 -0
- data/public/images/service_icons/16/tag.png +0 -0
- data/public/images/service_icons/16/technorati.png +0 -0
- data/public/images/service_icons/16/tumblr.png +0 -0
- data/public/images/service_icons/16/twitter.png +0 -0
- data/public/images/service_icons/16/vimeo.png +0 -0
- data/public/images/service_icons/16/webshots.png +0 -0
- data/public/images/service_icons/16/wordpress.png +0 -0
- data/public/images/service_icons/16/xanga.png +0 -0
- data/public/images/service_icons/16/yahoo.png +0 -0
- data/public/images/service_icons/16/yelp.png +0 -0
- data/public/images/service_icons/16/youtube.png +0 -0
- data/public/images/service_icons/16/zooomr.png +0 -0
- data/public/images/service_icons/16/zotero.png +0 -0
- data/public/images/service_icons/24/amazon.png +0 -0
- data/public/images/service_icons/24/blogger.png +0 -0
- data/public/images/service_icons/24/citeulike.png +0 -0
- data/public/images/service_icons/24/clipmarks.png +0 -0
- data/public/images/service_icons/24/dailymotion.png +0 -0
- data/public/images/service_icons/24/delicious.png +0 -0
- data/public/images/service_icons/24/digg.png +0 -0
- data/public/images/service_icons/24/diigo.png +0 -0
- data/public/images/service_icons/24/facebook.png +0 -0
- data/public/images/service_icons/24/feed.png +0 -0
- data/public/images/service_icons/24/flickr.png +0 -0
- data/public/images/service_icons/24/fotolog.png +0 -0
- data/public/images/service_icons/24/friendfeed.png +0 -0
- data/public/images/service_icons/24/friendster.png +0 -0
- data/public/images/service_icons/24/furl.png +0 -0
- data/public/images/service_icons/24/goodreads.png +0 -0
- data/public/images/service_icons/24/google.png +0 -0
- data/public/images/service_icons/24/googleblog.png +0 -0
- data/public/images/service_icons/24/googlenews.png +0 -0
- data/public/images/service_icons/24/identica.png +0 -0
- data/public/images/service_icons/24/joost.png +0 -0
- data/public/images/service_icons/24/lastfm.png +0 -0
- data/public/images/service_icons/24/librarything.png +0 -0
- data/public/images/service_icons/24/linkedin.png +0 -0
- data/public/images/service_icons/24/livejournal.png +0 -0
- data/public/images/service_icons/24/magnolia.png +0 -0
- data/public/images/service_icons/24/mendeley.png +0 -0
- data/public/images/service_icons/24/mixx.png +0 -0
- data/public/images/service_icons/24/myspace.png +0 -0
- data/public/images/service_icons/24/netflix.png +0 -0
- data/public/images/service_icons/24/netvibes.png +0 -0
- data/public/images/service_icons/24/newsvine.png +0 -0
- data/public/images/service_icons/24/oai.png +0 -0
- data/public/images/service_icons/24/odeo.png +0 -0
- data/public/images/service_icons/24/opml.png +0 -0
- data/public/images/service_icons/24/pandora.png +0 -0
- data/public/images/service_icons/24/photobucket.png +0 -0
- data/public/images/service_icons/24/picasa.png +0 -0
- data/public/images/service_icons/24/polyvore.png +0 -0
- data/public/images/service_icons/24/pownce.png +0 -0
- data/public/images/service_icons/24/reddit.png +0 -0
- data/public/images/service_icons/24/simpy.png +0 -0
- data/public/images/service_icons/24/smugmug.png +0 -0
- data/public/images/service_icons/24/stumbleupon.png +0 -0
- data/public/images/service_icons/24/tag.png +0 -0
- data/public/images/service_icons/24/technorati.png +0 -0
- data/public/images/service_icons/24/tumblr.png +0 -0
- data/public/images/service_icons/24/twitter.png +0 -0
- data/public/images/service_icons/24/vimeo.png +0 -0
- data/public/images/service_icons/24/webshots.png +0 -0
- data/public/images/service_icons/24/wordpress.png +0 -0
- data/public/images/service_icons/24/xanga.png +0 -0
- data/public/images/service_icons/24/yahoo.png +0 -0
- data/public/images/service_icons/24/yelp.png +0 -0
- data/public/images/service_icons/24/youtube.png +0 -0
- data/public/images/service_icons/24/zooomr.png +0 -0
- data/public/images/service_icons/24/zotero.png +0 -0
- data/public/images/service_icons/48/amazon.png +0 -0
- data/public/images/service_icons/48/blogger.png +0 -0
- data/public/images/service_icons/48/citeulike.png +0 -0
- data/public/images/service_icons/48/clipmarks.png +0 -0
- data/public/images/service_icons/48/dailymotion.png +0 -0
- data/public/images/service_icons/48/delicious.png +0 -0
- data/public/images/service_icons/48/digg.png +0 -0
- data/public/images/service_icons/48/diigo.png +0 -0
- data/public/images/service_icons/48/facebook.png +0 -0
- data/public/images/service_icons/48/feed.png +0 -0
- data/public/images/service_icons/48/flickr.png +0 -0
- data/public/images/service_icons/48/fotolog.png +0 -0
- data/public/images/service_icons/48/friendfeed.png +0 -0
- data/public/images/service_icons/48/friendster.png +0 -0
- data/public/images/service_icons/48/furl.png +0 -0
- data/public/images/service_icons/48/goodreads.png +0 -0
- data/public/images/service_icons/48/google.png +0 -0
- data/public/images/service_icons/48/googleblog.png +0 -0
- data/public/images/service_icons/48/googlenews.png +0 -0
- data/public/images/service_icons/48/identica.png +0 -0
- data/public/images/service_icons/48/joost.png +0 -0
- data/public/images/service_icons/48/lastfm.png +0 -0
- data/public/images/service_icons/48/librarything.png +0 -0
- data/public/images/service_icons/48/linkedin.png +0 -0
- data/public/images/service_icons/48/livejournal.png +0 -0
- data/public/images/service_icons/48/magnolia.png +0 -0
- data/public/images/service_icons/48/mendeley.png +0 -0
- data/public/images/service_icons/48/mixx.png +0 -0
- data/public/images/service_icons/48/myspace.png +0 -0
- data/public/images/service_icons/48/netflix.png +0 -0
- data/public/images/service_icons/48/netvibes.png +0 -0
- data/public/images/service_icons/48/newsvine.png +0 -0
- data/public/images/service_icons/48/oai.png +0 -0
- data/public/images/service_icons/48/odeo.png +0 -0
- data/public/images/service_icons/48/opml.png +0 -0
- data/public/images/service_icons/48/pandora.png +0 -0
- data/public/images/service_icons/48/photobucket.png +0 -0
- data/public/images/service_icons/48/picasa.png +0 -0
- data/public/images/service_icons/48/polyvore.png +0 -0
- data/public/images/service_icons/48/pownce.png +0 -0
- data/public/images/service_icons/48/reddit.png +0 -0
- data/public/images/service_icons/48/simpy.png +0 -0
- data/public/images/service_icons/48/smugmug.png +0 -0
- data/public/images/service_icons/48/stumbleupon.png +0 -0
- data/public/images/service_icons/48/tag.png +0 -0
- data/public/images/service_icons/48/technorati.png +0 -0
- data/public/images/service_icons/48/tumblr.png +0 -0
- data/public/images/service_icons/48/twitter.png +0 -0
- data/public/images/service_icons/48/vimeo.png +0 -0
- data/public/images/service_icons/48/webshots.png +0 -0
- data/public/images/service_icons/48/wordpress.png +0 -0
- data/public/images/service_icons/48/xanga.png +0 -0
- data/public/images/service_icons/48/yahoo.png +0 -0
- data/public/images/service_icons/48/yelp.png +0 -0
- data/public/images/service_icons/48/youtube.png +0 -0
- data/public/images/service_icons/48/zooomr.png +0 -0
- data/public/images/service_icons/48/zotero.png +0 -0
- data/public/images/service_icons/60/amazon.png +0 -0
- data/public/images/service_icons/60/blogger.png +0 -0
- data/public/images/service_icons/60/citeulike.png +0 -0
- data/public/images/service_icons/60/clipmarks.png +0 -0
- data/public/images/service_icons/60/dailymotion.png +0 -0
- data/public/images/service_icons/60/delicious.png +0 -0
- data/public/images/service_icons/60/digg.png +0 -0
- data/public/images/service_icons/60/diigo.png +0 -0
- data/public/images/service_icons/60/facebook.png +0 -0
- data/public/images/service_icons/60/feed.png +0 -0
- data/public/images/service_icons/60/flickr.png +0 -0
- data/public/images/service_icons/60/fotolog.png +0 -0
- data/public/images/service_icons/60/friendfeed.png +0 -0
- data/public/images/service_icons/60/friendster.png +0 -0
- data/public/images/service_icons/60/furl.png +0 -0
- data/public/images/service_icons/60/goodreads.png +0 -0
- data/public/images/service_icons/60/google.png +0 -0
- data/public/images/service_icons/60/googleblog.png +0 -0
- data/public/images/service_icons/60/googlenews.png +0 -0
- data/public/images/service_icons/60/identica.png +0 -0
- data/public/images/service_icons/60/joost.png +0 -0
- data/public/images/service_icons/60/lastfm.png +0 -0
- data/public/images/service_icons/60/librarything.png +0 -0
- data/public/images/service_icons/60/linkedin.png +0 -0
- data/public/images/service_icons/60/livejournal.png +0 -0
- data/public/images/service_icons/60/magnolia.png +0 -0
- data/public/images/service_icons/60/mendeley.png +0 -0
- data/public/images/service_icons/60/mixx.png +0 -0
- data/public/images/service_icons/60/myspace.png +0 -0
- data/public/images/service_icons/60/netflix.png +0 -0
- data/public/images/service_icons/60/netvibes.png +0 -0
- data/public/images/service_icons/60/newsvine.png +0 -0
- data/public/images/service_icons/60/oai.png +0 -0
- data/public/images/service_icons/60/odeo.png +0 -0
- data/public/images/service_icons/60/opml.png +0 -0
- data/public/images/service_icons/60/pandora.png +0 -0
- data/public/images/service_icons/60/photobucket.png +0 -0
- data/public/images/service_icons/60/picasa.png +0 -0
- data/public/images/service_icons/60/polyvore.png +0 -0
- data/public/images/service_icons/60/pownce.png +0 -0
- data/public/images/service_icons/60/reddit.png +0 -0
- data/public/images/service_icons/60/simpy.png +0 -0
- data/public/images/service_icons/60/smugmug.png +0 -0
- data/public/images/service_icons/60/stumbleupon.png +0 -0
- data/public/images/service_icons/60/tag.png +0 -0
- data/public/images/service_icons/60/technorati.png +0 -0
- data/public/images/service_icons/60/tumblr.png +0 -0
- data/public/images/service_icons/60/twitter.png +0 -0
- data/public/images/service_icons/60/vimeo.png +0 -0
- data/public/images/service_icons/60/webshots.png +0 -0
- data/public/images/service_icons/60/wordpress.png +0 -0
- data/public/images/service_icons/60/xanga.png +0 -0
- data/public/images/service_icons/60/yahoo.png +0 -0
- data/public/images/service_icons/60/yelp.png +0 -0
- data/public/images/service_icons/60/youtube.png +0 -0
- data/public/images/service_icons/60/zooomr.png +0 -0
- data/public/images/service_icons/60/zotero.png +0 -0
- data/public/images/service_icons/amazon.png +0 -0
- data/public/images/service_icons/facebook_friend_links.jpg +0 -0
- data/public/images/service_icons/facebook_my_links.jpg +0 -0
- data/public/images/service_icons/source/Aquaticus_Social_Icon_template_by_jwloh.psd +0 -0
- data/public/images/service_icons/source/Google.psd +0 -0
- data/public/images/service_icons/source/Quake 9 Design.webloc +0 -0
- data/public/images/service_icons/source/ReadMe.rtf +52 -0
- data/public/images/service_icons/source/aquaticus.social.png +0 -0
- data/public/images/service_icons/source/citeulike.png +0 -0
- data/public/images/service_icons/source/clipmarks.png +0 -0
- data/public/images/service_icons/source/netflix.png +0 -0
- data/public/images/service_icons/source/oai.png +0 -0
- data/public/images/service_icons/source/odeo.png +0 -0
- data/public/images/service_icons/source/opml.png +0 -0
- data/public/images/service_icons/source/pandora.png +0 -0
- data/public/images/service_icons/source/simpy.png +0 -0
- data/public/images/service_icons/source/template.png +0 -0
- data/public/images/service_icons/source/xanga.png +0 -0
- data/public/javascripts/muck_raker.js +19 -5
- data/public/stylesheets/frame.css +52 -0
- data/raker/lib/aggregatord.jar +0 -0
- data/test/rails_root/app/controllers/application_controller.rb +2 -0
- data/test/rails_root/app/models/activity.rb +22 -1
- data/test/rails_root/app/models/comment.rb +21 -1
- data/test/rails_root/app/models/share.rb +19 -2
- data/test/rails_root/app/models/user.rb +2 -1
- data/test/rails_root/config/global_config.yml +4 -1
- data/test/rails_root/config/routes.rb +8 -1
- data/test/rails_root/db/bootstrap/service_categories.yml +40 -0
- data/test/rails_root/db/bootstrap/services.yml +605 -153
- data/test/rails_root/db/migrate/20090818204527_add_activity_indexes.rb +9 -0
- data/test/rails_root/db/migrate/20090819030523_add_attachable_to_activities.rb +13 -0
- data/test/rails_root/db/migrate/20090826220530_change_services_sequence_to_sort.rb +9 -0
- data/test/rails_root/db/migrate/20090826225652_create_identity_feeds.rb +14 -0
- data/test/rails_root/db/migrate/20090827005105_add_identity_fields_to_services.rb +13 -0
- data/test/rails_root/db/migrate/20090827015308_create_service_categories.rb +12 -0
- data/test/rails_root/db/migrate/20090827221502_add_prompt_and_template_to_services.rb +11 -0
- data/test/rails_root/public/ecs_to_rss-wishlist.xslt +41 -0
- data/test/rails_root/public/images/icons/comment.png +0 -0
- data/test/rails_root/public/images/service_icons/16/blogger.png +0 -0
- data/test/rails_root/public/images/service_icons/16/citeulike.png +0 -0
- data/test/rails_root/public/images/service_icons/16/clipmarks.png +0 -0
- data/test/rails_root/public/images/service_icons/16/delicious.png +0 -0
- data/test/rails_root/public/images/service_icons/16/digg.png +0 -0
- data/test/rails_root/public/images/service_icons/16/facebook.png +0 -0
- data/test/rails_root/public/images/service_icons/16/feed.png +0 -0
- data/test/rails_root/public/images/service_icons/16/flickr.png +0 -0
- data/test/rails_root/public/images/service_icons/16/friendfeed.png +0 -0
- data/test/rails_root/public/images/service_icons/16/friendster.png +0 -0
- data/test/rails_root/public/images/service_icons/16/furl.png +0 -0
- data/test/rails_root/public/images/service_icons/16/google.png +0 -0
- data/test/rails_root/public/images/service_icons/16/lastfm.png +0 -0
- data/test/rails_root/public/images/service_icons/16/linkedin.png +0 -0
- data/test/rails_root/public/images/service_icons/16/livejournal.png +0 -0
- data/test/rails_root/public/images/service_icons/16/magnolia.png +0 -0
- data/test/rails_root/public/images/service_icons/16/mixx.png +0 -0
- data/test/rails_root/public/images/service_icons/16/myspace.png +0 -0
- data/test/rails_root/public/images/service_icons/16/netflix.png +0 -0
- data/test/rails_root/public/images/service_icons/16/netvibes.png +0 -0
- data/test/rails_root/public/images/service_icons/16/newsvine.png +0 -0
- data/test/rails_root/public/images/service_icons/16/oai.png +0 -0
- data/test/rails_root/public/images/service_icons/16/odeo.png +0 -0
- data/test/rails_root/public/images/service_icons/16/opml.png +0 -0
- data/test/rails_root/public/images/service_icons/16/pandora.png +0 -0
- data/test/rails_root/public/images/service_icons/16/picasa.png +0 -0
- data/test/rails_root/public/images/service_icons/16/pownce.png +0 -0
- data/test/rails_root/public/images/service_icons/16/reddit.png +0 -0
- data/test/rails_root/public/images/service_icons/16/simpy.png +0 -0
- data/test/rails_root/public/images/service_icons/16/stumbleupon.png +0 -0
- data/test/rails_root/public/images/service_icons/16/technorati.png +0 -0
- data/test/rails_root/public/images/service_icons/16/twitter.png +0 -0
- data/test/rails_root/public/images/service_icons/16/vimeo.png +0 -0
- data/test/rails_root/public/images/service_icons/16/webshots.png +0 -0
- data/test/rails_root/public/images/service_icons/16/wordpress.png +0 -0
- data/test/rails_root/public/images/service_icons/16/xanga.png +0 -0
- data/test/rails_root/public/images/service_icons/16/yahoo.png +0 -0
- data/test/rails_root/public/images/service_icons/16/yelp.png +0 -0
- data/test/rails_root/public/images/service_icons/16/youtube.png +0 -0
- data/test/rails_root/public/images/service_icons/24/blogger.png +0 -0
- data/test/rails_root/public/images/service_icons/24/citeulike.png +0 -0
- data/test/rails_root/public/images/service_icons/24/clipmarks.png +0 -0
- data/test/rails_root/public/images/service_icons/24/delicious.png +0 -0
- data/test/rails_root/public/images/service_icons/24/digg.png +0 -0
- data/test/rails_root/public/images/service_icons/24/facebook.png +0 -0
- data/test/rails_root/public/images/service_icons/24/feed.png +0 -0
- data/test/rails_root/public/images/service_icons/24/flickr.png +0 -0
- data/test/rails_root/public/images/service_icons/24/friendfeed.png +0 -0
- data/test/rails_root/public/images/service_icons/24/friendster.png +0 -0
- data/test/rails_root/public/images/service_icons/24/furl.png +0 -0
- data/test/rails_root/public/images/service_icons/24/google.png +0 -0
- data/test/rails_root/public/images/service_icons/24/lastfm.png +0 -0
- data/test/rails_root/public/images/service_icons/24/linkedin.png +0 -0
- data/test/rails_root/public/images/service_icons/24/livejournal.png +0 -0
- data/test/rails_root/public/images/service_icons/24/magnolia.png +0 -0
- data/test/rails_root/public/images/service_icons/24/mixx.png +0 -0
- data/test/rails_root/public/images/service_icons/24/myspace.png +0 -0
- data/test/rails_root/public/images/service_icons/24/netflix.png +0 -0
- data/test/rails_root/public/images/service_icons/24/netvibes.png +0 -0
- data/test/rails_root/public/images/service_icons/24/newsvine.png +0 -0
- data/test/rails_root/public/images/service_icons/24/oai.png +0 -0
- data/test/rails_root/public/images/service_icons/24/odeo.png +0 -0
- data/test/rails_root/public/images/service_icons/24/opml.png +0 -0
- data/test/rails_root/public/images/service_icons/24/pandora.png +0 -0
- data/test/rails_root/public/images/service_icons/24/picasa.png +0 -0
- data/test/rails_root/public/images/service_icons/24/pownce.png +0 -0
- data/test/rails_root/public/images/service_icons/24/reddit.png +0 -0
- data/test/rails_root/public/images/service_icons/24/simpy.png +0 -0
- data/test/rails_root/public/images/service_icons/24/stumbleupon.png +0 -0
- data/test/rails_root/public/images/service_icons/24/technorati.png +0 -0
- data/test/rails_root/public/images/service_icons/24/twitter.png +0 -0
- data/test/rails_root/public/images/service_icons/24/vimeo.png +0 -0
- data/test/rails_root/public/images/service_icons/24/webshots.png +0 -0
- data/test/rails_root/public/images/service_icons/24/wordpress.png +0 -0
- data/test/rails_root/public/images/service_icons/24/xanga.png +0 -0
- data/test/rails_root/public/images/service_icons/24/yahoo.png +0 -0
- data/test/rails_root/public/images/service_icons/24/yelp.png +0 -0
- data/test/rails_root/public/images/service_icons/24/youtube.png +0 -0
- data/test/rails_root/public/images/service_icons/48/blogger.png +0 -0
- data/test/rails_root/public/images/service_icons/48/citeulike.png +0 -0
- data/test/rails_root/public/images/service_icons/48/clipmarks.png +0 -0
- data/test/rails_root/public/images/service_icons/48/delicious.png +0 -0
- data/test/rails_root/public/images/service_icons/48/digg.png +0 -0
- data/test/rails_root/public/images/service_icons/48/facebook.png +0 -0
- data/test/rails_root/public/images/service_icons/48/feed.png +0 -0
- data/test/rails_root/public/images/service_icons/48/flickr.png +0 -0
- data/test/rails_root/public/images/service_icons/48/friendfeed.png +0 -0
- data/test/rails_root/public/images/service_icons/48/friendster.png +0 -0
- data/test/rails_root/public/images/service_icons/48/furl.png +0 -0
- data/test/rails_root/public/images/service_icons/48/google.png +0 -0
- data/test/rails_root/public/images/service_icons/48/lastfm.png +0 -0
- data/test/rails_root/public/images/service_icons/48/linkedin.png +0 -0
- data/test/rails_root/public/images/service_icons/48/livejournal.png +0 -0
- data/test/rails_root/public/images/service_icons/48/magnolia.png +0 -0
- data/test/rails_root/public/images/service_icons/48/mixx.png +0 -0
- data/test/rails_root/public/images/service_icons/48/myspace.png +0 -0
- data/test/rails_root/public/images/service_icons/48/netflix.png +0 -0
- data/test/rails_root/public/images/service_icons/48/netvibes.png +0 -0
- data/test/rails_root/public/images/service_icons/48/newsvine.png +0 -0
- data/test/rails_root/public/images/service_icons/48/oai.png +0 -0
- data/test/rails_root/public/images/service_icons/48/odeo.png +0 -0
- data/test/rails_root/public/images/service_icons/48/opml.png +0 -0
- data/test/rails_root/public/images/service_icons/48/pandora.png +0 -0
- data/test/rails_root/public/images/service_icons/48/picasa.png +0 -0
- data/test/rails_root/public/images/service_icons/48/pownce.png +0 -0
- data/test/rails_root/public/images/service_icons/48/reddit.png +0 -0
- data/test/rails_root/public/images/service_icons/48/simpy.png +0 -0
- data/test/rails_root/public/images/service_icons/48/stumbleupon.png +0 -0
- data/test/rails_root/public/images/service_icons/48/technorati.png +0 -0
- data/test/rails_root/public/images/service_icons/48/twitter.png +0 -0
- data/test/rails_root/public/images/service_icons/48/vimeo.png +0 -0
- data/test/rails_root/public/images/service_icons/48/webshots.png +0 -0
- data/test/rails_root/public/images/service_icons/48/wordpress.png +0 -0
- data/test/rails_root/public/images/service_icons/48/xanga.png +0 -0
- data/test/rails_root/public/images/service_icons/48/yahoo.png +0 -0
- data/test/rails_root/public/images/service_icons/48/yelp.png +0 -0
- data/test/rails_root/public/images/service_icons/48/youtube.png +0 -0
- data/test/rails_root/public/images/service_icons/60/blogger.png +0 -0
- data/test/rails_root/public/images/service_icons/60/citeulike.png +0 -0
- data/test/rails_root/public/images/service_icons/60/clipmarks.png +0 -0
- data/test/rails_root/public/images/service_icons/60/delicious.png +0 -0
- data/test/rails_root/public/images/service_icons/60/digg.png +0 -0
- data/test/rails_root/public/images/service_icons/60/facebook.png +0 -0
- data/test/rails_root/public/images/service_icons/60/feed.png +0 -0
- data/test/rails_root/public/images/service_icons/60/flickr.png +0 -0
- data/test/rails_root/public/images/service_icons/60/friendfeed.png +0 -0
- data/test/rails_root/public/images/service_icons/60/friendster.png +0 -0
- data/test/rails_root/public/images/service_icons/60/furl.png +0 -0
- data/test/rails_root/public/images/service_icons/60/google.png +0 -0
- data/test/rails_root/public/images/service_icons/60/lastfm.png +0 -0
- data/test/rails_root/public/images/service_icons/60/linkedin.png +0 -0
- data/test/rails_root/public/images/service_icons/60/livejournal.png +0 -0
- data/test/rails_root/public/images/service_icons/60/magnolia.png +0 -0
- data/test/rails_root/public/images/service_icons/60/mixx.png +0 -0
- data/test/rails_root/public/images/service_icons/60/myspace.png +0 -0
- data/test/rails_root/public/images/service_icons/60/netflix.png +0 -0
- data/test/rails_root/public/images/service_icons/60/netvibes.png +0 -0
- data/test/rails_root/public/images/service_icons/60/newsvine.png +0 -0
- data/test/rails_root/public/images/service_icons/60/oai.png +0 -0
- data/test/rails_root/public/images/service_icons/60/odeo.png +0 -0
- data/test/rails_root/public/images/service_icons/60/opml.png +0 -0
- data/test/rails_root/public/images/service_icons/60/pandora.png +0 -0
- data/test/rails_root/public/images/service_icons/60/picasa.png +0 -0
- data/test/rails_root/public/images/service_icons/60/pownce.png +0 -0
- data/test/rails_root/public/images/service_icons/60/reddit.png +0 -0
- data/test/rails_root/public/images/service_icons/60/simpy.png +0 -0
- data/test/rails_root/public/images/service_icons/60/stumbleupon.png +0 -0
- data/test/rails_root/public/images/service_icons/60/technorati.png +0 -0
- data/test/rails_root/public/images/service_icons/60/twitter.png +0 -0
- data/test/rails_root/public/images/service_icons/60/vimeo.png +0 -0
- data/test/rails_root/public/images/service_icons/60/webshots.png +0 -0
- data/test/rails_root/public/images/service_icons/60/wordpress.png +0 -0
- data/test/rails_root/public/images/service_icons/60/xanga.png +0 -0
- data/test/rails_root/public/images/service_icons/60/yahoo.png +0 -0
- data/test/rails_root/public/images/service_icons/60/yelp.png +0 -0
- data/test/rails_root/public/images/service_icons/60/youtube.png +0 -0
- data/test/rails_root/public/images/service_icons/ReadMe.rtf +52 -0
- data/test/rails_root/public/images/service_icons/facebook_friend_links.jpg +0 -0
- data/test/rails_root/public/images/service_icons/facebook_my_links.jpg +0 -0
- data/test/rails_root/public/images/service_icons/source/Aquaticus_Social_Icon_template_by_jwloh.psd +0 -0
- data/test/rails_root/public/images/service_icons/source/Google.psd +0 -0
- data/test/rails_root/public/images/service_icons/source/Quake 9 Design.webloc +0 -0
- data/test/rails_root/public/images/service_icons/source/ReadMe.rtf +52 -0
- data/test/rails_root/public/images/service_icons/source/aquaticus.social.png +0 -0
- data/test/rails_root/public/images/service_icons/source/citeulike.png +0 -0
- data/test/rails_root/public/images/service_icons/source/clipmarks.png +0 -0
- data/test/rails_root/public/images/service_icons/source/netflix.png +0 -0
- data/test/rails_root/public/images/service_icons/source/oai.png +0 -0
- data/test/rails_root/public/images/service_icons/source/odeo.png +0 -0
- data/test/rails_root/public/images/service_icons/source/opml.png +0 -0
- data/test/rails_root/public/images/service_icons/source/pandora.png +0 -0
- data/test/rails_root/public/images/service_icons/source/simpy.png +0 -0
- data/test/rails_root/public/images/service_icons/source/template.png +0 -0
- data/test/rails_root/public/images/service_icons/source/xanga.png +0 -0
- data/test/rails_root/public/javascripts/jquery-ui.js +188 -0
- data/test/rails_root/public/javascripts/jquery.js +19 -0
- data/test/rails_root/public/javascripts/jrails.js +1 -0
- data/test/rails_root/public/javascripts/muck.js +5 -18
- data/test/rails_root/public/javascripts/muck_activities.js +3 -3
- data/test/rails_root/public/javascripts/muck_raker.js +19 -5
- data/test/rails_root/public/stylesheets/application.css +48 -2
- data/test/rails_root/public/stylesheets/frame.css +52 -0
- data/test/rails_root/public/stylesheets/styles.css +1 -1
- data/test/rails_root/test/factories.rb +16 -0
- data/test/rails_root/test/functional/feeds_controller_test.rb +2 -2
- data/test/rails_root/test/functional/identity_feeds_controller_test.rb +107 -0
- data/test/rails_root/test/test_helper.rb +1 -0
- data/test/rails_root/test/unit/comment_test.rb +38 -0
- data/test/rails_root/test/unit/feed_parent_test.rb +0 -5
- data/test/rails_root/test/unit/feed_test.rb +45 -7
- data/test/rails_root/test/unit/identity_feed_test.rb +8 -0
- data/test/rails_root/test/unit/service_category_test.rb +19 -0
- data/test/rails_root/test/unit/service_test.rb +68 -0
- data/test/rails_root/test/unit/share_test.rb +31 -0
- data/test/rails_root/test/unit/tag_cloud_test.rb +0 -4
- data/test/rails_root/test/unit/user_test.rb +30 -1
- data/test/rails_root/vendor/plugins/jrails/CHANGELOG +43 -0
- data/test/rails_root/vendor/plugins/jrails/LICENSE +18 -0
- data/test/rails_root/vendor/plugins/jrails/README.rdoc +21 -0
- data/test/rails_root/vendor/plugins/jrails/Rakefile +18 -0
- data/test/rails_root/vendor/plugins/jrails/VERSION.yml +4 -0
- data/test/rails_root/vendor/plugins/jrails/bin/jrails +30 -0
- data/test/rails_root/vendor/plugins/jrails/init.rb +1 -0
- data/test/rails_root/vendor/plugins/jrails/install.rb +9 -0
- data/test/rails_root/vendor/plugins/jrails/javascripts/jquery-ui.js +188 -0
- data/test/rails_root/vendor/plugins/jrails/javascripts/jquery.js +19 -0
- data/test/rails_root/vendor/plugins/jrails/javascripts/jrails.js +1 -0
- data/test/rails_root/vendor/plugins/jrails/javascripts/sources/jrails.js +197 -0
- data/test/rails_root/vendor/plugins/jrails/jrails.gemspec +50 -0
- data/test/rails_root/vendor/plugins/jrails/lib/jrails.rb +421 -0
- data/test/rails_root/vendor/plugins/jrails/rails/init.rb +15 -0
- data/test/rails_root/vendor/plugins/jrails/tasks/jrails.rake +25 -0
- metadata +519 -4
data/app/models/feed.rb
CHANGED
@@ -12,8 +12,8 @@
|
|
12
12
|
# top_tags :text
|
13
13
|
# priority :integer(4) default(10)
|
14
14
|
# status :integer(4) default(1)
|
15
|
-
# last_requested_at :datetime
|
16
|
-
# last_harvested_at :datetime
|
15
|
+
# last_requested_at :datetime default(Wed Jan 01 00:00:00 UTC 1969)
|
16
|
+
# last_harvested_at :datetime default(Wed Jan 01 00:00:00 UTC 1969)
|
17
17
|
# harvest_interval :integer(4) default(86400)
|
18
18
|
# failed_requests :integer(4) default(0)
|
19
19
|
# error_message :text
|
@@ -32,45 +32,7 @@
|
|
32
32
|
# contributor_id :integer(4)
|
33
33
|
# etag :string(255)
|
34
34
|
#
|
35
|
-
# Indexes
|
36
|
-
#
|
37
|
-
# index_feeds_on_service_id (service_id)
|
38
|
-
# index_feeds_on_uri (uri)
|
39
|
-
#
|
40
35
|
|
41
|
-
# == Schema Information
|
42
|
-
#
|
43
|
-
# Table name: feeds
|
44
|
-
#
|
45
|
-
# id :integer(4) not null, primary key
|
46
|
-
# uri :string(2083)
|
47
|
-
# display_uri :string(2083)
|
48
|
-
# title :string(1000)
|
49
|
-
# short_title :string(100)
|
50
|
-
# description :text
|
51
|
-
# tag_filter :string(1000)
|
52
|
-
# top_tags :text
|
53
|
-
# priority :integer(4) default(10)
|
54
|
-
# status :integer(4) default(1)
|
55
|
-
# last_requested_at :datetime
|
56
|
-
# last_harvested_at :datetime
|
57
|
-
# harvest_interval :integer(4) default(86400)
|
58
|
-
# failed_requests :integer(4) default(0)
|
59
|
-
# error_message :text
|
60
|
-
# service_id :integer(4) default(0)
|
61
|
-
# login :string(255)
|
62
|
-
# password :string(255)
|
63
|
-
# created_at :datetime
|
64
|
-
# updated_at :datetime
|
65
|
-
# entries_changed_at :datetime
|
66
|
-
# harvested_from_display_uri :string(2083)
|
67
|
-
# harvested_from_title :string(1000)
|
68
|
-
# harvested_from_short_title :string(100)
|
69
|
-
# entries_count :integer(4)
|
70
|
-
# default_language_id :integer(4) default(0)
|
71
|
-
# default_grain_size :string(255) default("unknown")
|
72
|
-
# contributor_id :integer(4)
|
73
|
-
#
|
74
36
|
class Feed < ActiveRecord::Base
|
75
37
|
|
76
38
|
require 'httparty'
|
@@ -81,10 +43,12 @@ class Feed < ActiveRecord::Base
|
|
81
43
|
validates_presence_of :uri
|
82
44
|
|
83
45
|
has_many :feed_parents
|
84
|
-
has_many :
|
46
|
+
has_many :identity_feeds
|
47
|
+
has_many :entries, :dependent => :destroy
|
85
48
|
belongs_to :contributor, :class_name => 'User', :foreign_key => 'contributor_id'
|
86
49
|
belongs_to :default_language, :class_name => 'Language', :foreign_key => 'default_language_id'
|
87
|
-
|
50
|
+
belongs_to :service
|
51
|
+
|
88
52
|
named_scope :banned, :conditions => "status < 0"
|
89
53
|
named_scope :valid, :conditions => "status >= 0"
|
90
54
|
named_scope :by_title, :order => "title ASC"
|
@@ -128,6 +92,34 @@ class Feed < ActiveRecord::Base
|
|
128
92
|
# end
|
129
93
|
end
|
130
94
|
|
95
|
+
# provided to make feed quack like a feedzirra feed
|
96
|
+
def url
|
97
|
+
display_uri
|
98
|
+
end
|
99
|
+
|
100
|
+
# provided to make feed quack like a feedzirra feed
|
101
|
+
def feed_url
|
102
|
+
uri
|
103
|
+
end
|
104
|
+
|
105
|
+
# provided to make feed quack like a feedzirra feed
|
106
|
+
def last_modified
|
107
|
+
entries_changed_at
|
108
|
+
end
|
109
|
+
|
110
|
+
# This will delete a feed if there are no references to it
|
111
|
+
def delete_if_unused(user)
|
112
|
+
if user.id == contributor_id
|
113
|
+
feed = FeedParent.find_by_feed_id(self.id)
|
114
|
+
return false if feed # feed is still being used
|
115
|
+
feed = IdentityFeed.find_by_feed_id(self.id)
|
116
|
+
return false if feed # feed is still being used
|
117
|
+
self.destroy
|
118
|
+
else
|
119
|
+
false
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
131
123
|
# Gathers all available feed uris from the given uri and parses them into
|
132
124
|
# feed objects
|
133
125
|
def self.gather_information(uri)
|
@@ -147,24 +139,28 @@ class Feed < ActiveRecord::Base
|
|
147
139
|
:uri => feed.feed_url)
|
148
140
|
end
|
149
141
|
|
150
|
-
# provided to make feed quack like a feedzirra feed
|
151
|
-
def url
|
152
|
-
display_uri
|
153
|
-
end
|
154
|
-
|
155
|
-
# provided to make feed quack like a feedzirra feed
|
156
|
-
def feed_url
|
157
|
-
uri
|
158
|
-
end
|
159
|
-
|
160
|
-
# provided to make feed quack like a feedzirra feed
|
161
|
-
def last_modified
|
162
|
-
entries_changed_at
|
163
|
-
end
|
164
|
-
|
165
142
|
# Looks for feeds from a given url
|
166
143
|
def self.discover_feeds(uri)
|
167
144
|
Feedbag.find(uri)
|
168
145
|
end
|
169
146
|
|
147
|
+
# creates a feed for a service with a username and optional password
|
148
|
+
def self.create_service_feeds(service, uri, username, password, contributor_id)
|
149
|
+
uris = service.generate_uris(username, password, uri)
|
150
|
+
uris.collect{ |u| Feed.find_or_create(u.url, u.title, username, password, service.id, contributor_id) } if uris
|
151
|
+
end
|
152
|
+
|
153
|
+
# Finds or creates a feed based on the url. Any give feed uri should only exist once in the system
|
154
|
+
def self.find_or_create(uri, title, username, password, service_id, contributor_id)
|
155
|
+
Feed.find_by_uri(uri) ||
|
156
|
+
Feed.new(:uri => uri,
|
157
|
+
:harvest_interval => '01:00:00',
|
158
|
+
:last_harvested_at => Time.at(0),
|
159
|
+
:title => title,
|
160
|
+
:login => username,
|
161
|
+
:password => password,
|
162
|
+
:service_id => service_id,
|
163
|
+
:contributor_id => contributor_id)
|
164
|
+
end
|
165
|
+
|
170
166
|
end
|
data/app/models/feed_parent.rb
CHANGED
@@ -9,11 +9,6 @@
|
|
9
9
|
# created_at :datetime
|
10
10
|
# updated_at :datetime
|
11
11
|
#
|
12
|
-
# Indexes
|
13
|
-
#
|
14
|
-
# index_feed_parents_on_feed_id (feed_id)
|
15
|
-
# index_feed_parents_on_ownable_id_and_ownable_type (ownable_id,ownable_type)
|
16
|
-
#
|
17
12
|
|
18
13
|
class FeedParent < ActiveRecord::Base
|
19
14
|
unloadable
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# == Schema Information
|
2
|
+
#
|
3
|
+
# Table name: identity_feeds
|
4
|
+
#
|
5
|
+
# id :integer(4) not null, primary key
|
6
|
+
# feed_id :integer(4) not null
|
7
|
+
# ownable_id :integer(4) not null
|
8
|
+
# ownable_type :string(255) not null
|
9
|
+
#
|
10
|
+
|
11
|
+
class IdentityFeed < ActiveRecord::Base
|
12
|
+
belongs_to :ownable, :polymorphic => true
|
13
|
+
belongs_to :feed
|
14
|
+
|
15
|
+
validates_uniqueness_of :feed_id, :scope => [:ownable_id, :ownable_type]
|
16
|
+
|
17
|
+
# override this method to change the way permissions are handled on comments
|
18
|
+
def can_edit?(user)
|
19
|
+
if ownable == user || check_user(user)
|
20
|
+
true
|
21
|
+
else
|
22
|
+
false
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -10,11 +10,6 @@
|
|
10
10
|
# clicks :integer(4) default(0)
|
11
11
|
# avg_time_at_dest :integer(4) default(60)
|
12
12
|
#
|
13
|
-
# Indexes
|
14
|
-
#
|
15
|
-
# index_recommendations_on_dest_entry_id (dest_entry_id)
|
16
|
-
# index_recommendations_on_entry_id (entry_id)
|
17
|
-
#
|
18
13
|
|
19
14
|
class Recommendation < ActiveRecord::Base
|
20
15
|
end
|
data/app/models/service.rb
CHANGED
@@ -2,15 +2,60 @@
|
|
2
2
|
#
|
3
3
|
# Table name: services
|
4
4
|
#
|
5
|
-
# id
|
6
|
-
# uri
|
7
|
-
# name
|
8
|
-
# api_uri
|
9
|
-
# uri_template
|
10
|
-
# icon
|
11
|
-
#
|
12
|
-
# requires_password
|
5
|
+
# id :integer(4) not null, primary key
|
6
|
+
# uri :string(2083) default("")
|
7
|
+
# name :string(1000) default("")
|
8
|
+
# api_uri :string(2083) default("")
|
9
|
+
# uri_template :string(2083) default("")
|
10
|
+
# icon :string(2083) default("rss.gif")
|
11
|
+
# sort :integer(4)
|
12
|
+
# requires_password :boolean(1)
|
13
|
+
# is_identity :boolean(1)
|
14
|
+
# service_category_id :integer(4)
|
15
|
+
# active :boolean(1) default(TRUE)
|
13
16
|
#
|
14
17
|
|
15
18
|
class Service < ActiveRecord::Base
|
19
|
+
|
20
|
+
belongs_to :service_category
|
21
|
+
named_scope :sorted, :order => "sort ASC"
|
22
|
+
named_scope :identity_services, :conditions => ['use_for = ?', 'identity']
|
23
|
+
named_scope :tag_services, :conditions => ['use_for = ?', 'tags']
|
24
|
+
|
25
|
+
def generate_uris(username = '', password = '', uri = '')
|
26
|
+
if self.name == 'Facebook'
|
27
|
+
# Facebook can't just use feeds like everyone else.
|
28
|
+
params = {}
|
29
|
+
pairs = uri.split('?')[1].split('&')
|
30
|
+
pairs.each do |pair|
|
31
|
+
p = pair.split('=')
|
32
|
+
params[p[0].to_sym] = p[1]
|
33
|
+
end
|
34
|
+
uris = []
|
35
|
+
uris << OpenStruct.new(:url => "http://www.facebook.com/feeds/notifications.php?id=#{params[:id]}&viewer=#{params[:id]}&key=#{params[:key]}&format=rss20", :title => I18n.t('muck.raker.facebook_notifications'))
|
36
|
+
uris << OpenStruct.new(:url => "http://www.facebook.com/feeds/share_posts.php?id=#{params[:id]}&viewer=#{params[:id]}&key=#{params[:key]}&format=rss20", :title => I18n.t('muck.raker.facebook_shares'))
|
37
|
+
uris << OpenStruct.new(:url => "http://www.facebook.com/feeds/notes.php?id=#{params[:id]}&viewer=#{params[:id]}&key=#{params[:key]}&format=rss20", :title => I18n.t('muck.raker.facebook_notes'))
|
38
|
+
uris
|
39
|
+
elsif self.name == 'Amazon'
|
40
|
+
# Have to build and sign Amazon wishlist rss feeds
|
41
|
+
am = AmazonRequest.new(GlobalConfig.amazon_access_key_id, GlobalConfig.amazon_secret_access_key, GlobalConfig.amazon_associate_tag)
|
42
|
+
am.get_amazon_feeds(username) # username needs to be the user's Amazon email
|
43
|
+
elsif !self.uri_template.blank? && !username.blank?
|
44
|
+
uri = self.uri_template.sub("{username}", username)
|
45
|
+
Feed.discover_feeds(uri)
|
46
|
+
elsif !uri.blank?
|
47
|
+
Feed.discover_feeds(uri)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# Generate a uri for the current service
|
52
|
+
def generate_tag_uri(tag)
|
53
|
+
self.uri_template.sub("{tag}", tag)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Generates uris for 'tag' using all services where 'use_for' is 'tags'
|
57
|
+
def self.generate_tag_uris(tag)
|
58
|
+
Service.tag_services.collect { |service| service.generate_tag_uri(tag) }
|
59
|
+
end
|
60
|
+
|
16
61
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# == Schema Information
|
2
|
+
#
|
3
|
+
# Table name: service_categories
|
4
|
+
#
|
5
|
+
# id :integer(4) not null, primary key
|
6
|
+
# name :string(255) not null
|
7
|
+
# sort :integer(4) default(0)
|
8
|
+
#
|
9
|
+
|
10
|
+
class ServiceCategory < ActiveRecord::Base
|
11
|
+
named_scope :sorted, :order => "sort ASC"
|
12
|
+
has_many :services, :order => 'sort ASC'
|
13
|
+
has_many :identity_services, :class_name => 'Service', :order => 'sort ASC', :conditions => ['use_for = ?', 'identity']
|
14
|
+
end
|
data/app/models/tag_cloud.rb
CHANGED
@@ -0,0 +1,8 @@
|
|
1
|
+
<% activity_for(activity, :activity_css_class => 'activity-entry-comment') do -%>
|
2
|
+
<% if limited -%>
|
3
|
+
<%= activity.item.body %>
|
4
|
+
<% else -%>
|
5
|
+
<%= t('muck.raker.entry_commment_contents', :resource => link_to(activity.item.commentable.title, visit_path(activity.item.commentable, :show_comments => true))) -%>
|
6
|
+
<p class="entry-comment-contents"><%= activity.item.body %></p>
|
7
|
+
<% end -%>
|
8
|
+
<% end -%>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<% if activity.item.entry
|
2
|
+
link = link_to(activity.item.title, visit_path(activity.item.entry), :target => '_blank')
|
3
|
+
else
|
4
|
+
link = link_to(activity.item.title, activity.item.uri, :target => '_blank')
|
5
|
+
end -%>
|
6
|
+
<% activity_for(activity, :activity_css_class => 'activity-share') do -%>
|
7
|
+
<%= t('muck.shares.share_activity_content', :link => link, :message => activity.item.message) %>
|
8
|
+
<% end -%>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<div id="identity-feed">
|
2
|
+
<% form_for(:feed, :url => url_by_identity_feed(parent, @identity_feed, service)) do |f| -%>
|
3
|
+
<%= service_title(service) %>
|
4
|
+
<% if service.template.blank? -%>
|
5
|
+
<% if service.uri_template.blank? -%>
|
6
|
+
<%= text_field_tag :uri, feed.uri %>
|
7
|
+
<% else -%>
|
8
|
+
<%= text_field_tag :username, feed.login %>
|
9
|
+
<% end -%>
|
10
|
+
<% else -%>
|
11
|
+
<%= render :partial => "service_templates/#{service.template}", :locals => { :service => service, :feed => feed } -%>
|
12
|
+
<% end -%>
|
13
|
+
<div class="button form-row">
|
14
|
+
<%= f.submit t('muck.raker.import_service', :service => service.name), :id => 'submit_feed', :onclick => "jQuery('#submit_feed').hide();jQuery('#finding_uri_message').show();" %>
|
15
|
+
<span id="finding_uri_message" style="display:none;">
|
16
|
+
<%= t('muck.raker.submitting_feed_message') %><img src="/images/loading.gif" alt="<%= t('muck.raker.loading_content_image') %>" />
|
17
|
+
</span>
|
18
|
+
</div>
|
19
|
+
<% end -%>
|
20
|
+
</div>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<div id="available-services" class="services-main <%= css %>">
|
2
|
+
<h2><%= title || I18n.t('muck.raker.available_services') %></h2>
|
3
|
+
<% service_categories.each do |service_category| -%>
|
4
|
+
<% if service_category.identity_services.length > 0 -%>
|
5
|
+
<div id="<%= service_category.dom_id %>" class="service-category">
|
6
|
+
<h3><%= service_category.name %></h3>
|
7
|
+
<ul id="services-list" class="services-list">
|
8
|
+
<%= render :partial => 'services/new_service', :collection => service_category.identity_services %>
|
9
|
+
</ul>
|
10
|
+
</div>
|
11
|
+
<% end -%>
|
12
|
+
<% end -%>
|
13
|
+
</div>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<div id="my-services" class="services-main <%= css %>">
|
2
|
+
<h2><%= title || I18n.t('muck.raker.my_services') %></h2>
|
3
|
+
<ul id="my-services-list" class="services-list">
|
4
|
+
<% if edit -%>
|
5
|
+
<%= render :partial => 'services/edit_service', :collection => identity_feeds %>
|
6
|
+
<% else -%>
|
7
|
+
<%= render :partial => 'services/view_service', :collection => identity_feeds %>
|
8
|
+
<% end -%>
|
9
|
+
</ul>
|
10
|
+
</div>
|
11
|
+
<% content_for :javascript do -%>
|
12
|
+
jQuery(document).ready(function() {
|
13
|
+
jQuery('ul#my-services-list li form').hide();
|
14
|
+
jQuery('ul#my-services-list li').hover(
|
15
|
+
function () { jQuery(this).children('form').show(); },
|
16
|
+
function () { jQuery(this).children('form').hide(); }
|
17
|
+
);
|
18
|
+
|
19
|
+
jQuery('.muck_ajax_delete_control').click(function(){
|
20
|
+
jQuery(this).parents('li').html(jQuery('#muck_ajax_delete_control_message').html());
|
21
|
+
return true;
|
22
|
+
});
|
23
|
+
});
|
24
|
+
<% end -%>
|
25
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<%= output_errors('', {:class => 'help-box'}) %>
|
2
|
+
<%= service_categories(@service_categories, nil, 'span-15') %>
|
3
|
+
<%= services_for_user(@user_services, nil, 'span-5') %>
|
4
|
+
|
5
|
+
<% content_for :javascript do -%>
|
6
|
+
jQuery(document).ready(function() {
|
7
|
+
jQuery('a.lightbox').fancybox({
|
8
|
+
'hideOnContentClick': false,
|
9
|
+
'overlayShow': true,
|
10
|
+
'frameWidth': 400,
|
11
|
+
'frameHeight': 100
|
12
|
+
});
|
13
|
+
jQuery('a#facebook-link').fancybox({
|
14
|
+
'hideOnContentClick': false,
|
15
|
+
'overlayShow': true,
|
16
|
+
'frameWidth': 400,
|
17
|
+
'frameHeight': 275
|
18
|
+
});
|
19
|
+
jQuery('a#zotero-groups-link').fancybox({
|
20
|
+
'hideOnContentClick': false,
|
21
|
+
'overlayShow': true,
|
22
|
+
'frameWidth': 400,
|
23
|
+
'frameHeight': 130
|
24
|
+
});
|
25
|
+
jQuery('a#netflix-link').fancybox({
|
26
|
+
'hideOnContentClick': false,
|
27
|
+
'overlayShow': true,
|
28
|
+
'frameWidth': 400,
|
29
|
+
'frameHeight': 160
|
30
|
+
});
|
31
|
+
});
|
32
|
+
<% end -%>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial=> 'identity_feeds/form', :locals => { :service => @service, :parent => @parent, :feed => @feed } %>
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<%= text_field_tag :uri, feed.uri %>
|
2
|
+
<p><%= t('muck.raker.facebook_link', :link => '<a href="http://www.facebook.com/posted.php" target="blank">Click Here</a>') %></p>
|
3
|
+
<img src="/images/service_icons/facebook_my_links.jpg" />
|
4
|
+
<p><%= t('muck.raker.facebook_instructions') %></p>
|
@@ -0,0 +1 @@
|
|
1
|
+
<li id="<%= edit_service.dom_id %>"><%= service_lightbox_edit(@parent, edit_service) %><%= service_delete(edit_service, :image) %></li>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= service_lightbox(@parent, new_service) %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<li id="<%= view_service.dom_id %>"><%= service_external_link(view_service) %><%= service_delete(view_service, :image) %></li>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<div id="comments_tool" class="tool" style="display:none;">
|
2
|
+
<div id="comments_tools_close_wrapper" class="close_link_wrapper">
|
3
|
+
<a href="#" id="comments_tools_close" class="close_link"><%= t('muck.raker.hide')%></a>
|
4
|
+
</div>
|
5
|
+
<div class="tools_container">
|
6
|
+
<div id="comments_wrapper" class="tools_wrapper">
|
7
|
+
<%= cached_activities(@activities, true) %>
|
8
|
+
<%= activity_scripts %>
|
9
|
+
</div>
|
10
|
+
<div id="comments_control">
|
11
|
+
<% if logged_in? -%>
|
12
|
+
<%= output_errors(t('muck.comments.problem_adding_comment'), {:class => 'help-box'}, @comment) %>
|
13
|
+
<%= comment_form(@entry, nil, true, 'entry-comment-submit') %>
|
14
|
+
<% else -%>
|
15
|
+
<%= link_to t('muck.raker.login_to_comment'), login_path %>
|
16
|
+
<% end -%>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
</div>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<% content_for :head do -%>
|
2
|
+
<%= javascript_include_tag 'muck_raker.js' %>
|
3
|
+
<%= javascript_tag %[var ADD_SHARE_MESSAGE = '#{t('muck.shares.adding_share')}';] %>
|
4
|
+
<% end -%>
|
5
|
+
<% content_for :javascript do -%>
|
6
|
+
jQuery(document).ready(function() {
|
7
|
+
<%= "show_tool('comments');" if params[:show_comments] || @entry.comment_count > 0 -%>
|
8
|
+
jQuery(window).bind('resize', function() {
|
9
|
+
maximize_space();
|
10
|
+
});
|
11
|
+
jQuery('#comment').click(function(){
|
12
|
+
return show_tool('comments');
|
13
|
+
});
|
14
|
+
jQuery('#share').click(function(){
|
15
|
+
return show_tool('share');
|
16
|
+
});
|
17
|
+
jQuery('.close_link').click(function(){
|
18
|
+
jQuery('.tool').hide();
|
19
|
+
jQuery("#content_iframe").width('100%');
|
20
|
+
return false;
|
21
|
+
});
|
22
|
+
setup_entry_comment_submit();
|
23
|
+
setup_share_submit();
|
24
|
+
apply_frame_comment_hover();
|
25
|
+
});
|
26
|
+
<% end -%>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<div id="share_tool" class="tool" style="display:none;">
|
2
|
+
<div id="share_tool_close_wrapper" class="close_link_wrapper">
|
3
|
+
<a href="#" id="share_tool_close" class="close_link"><%= t('muck.raker.hide')%></a>
|
4
|
+
</div>
|
5
|
+
<div class="tools_container">
|
6
|
+
<div id="shares_control">
|
7
|
+
<h2><%= t('muck.shares.share_title') %></h2>
|
8
|
+
<% if logged_in? -%>
|
9
|
+
<% if already_shared_entry?(current_user, @entry) -%>
|
10
|
+
<%= t('muck.raker.already_shared') %>
|
11
|
+
<% end -%>
|
12
|
+
<%= output_errors(t('muck.shares.problem_adding_share'), {:class => 'help-box'}, @share) %>
|
13
|
+
<% share_form(@share) do |f| -%>
|
14
|
+
<%= f.hidden_field :entry_id -%>
|
15
|
+
<%= hidden_field_tag :render_new, false -%>
|
16
|
+
<% end -%>
|
17
|
+
<% else -%>
|
18
|
+
<%= link_to t('muck.shares.login_prompt'), login_path %>
|
19
|
+
<% end -%>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<div id="toolbar">
|
2
|
+
<div id="toolbar-logo">
|
3
|
+
|
4
|
+
</div>
|
5
|
+
<div id="close" class="section">
|
6
|
+
<a id="close_frame" title="Remove frame and go to this web address." class="url_fragment" href="<%= @resource_uri %>"> </a>
|
7
|
+
<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>
|
8
|
+
</div>
|
9
|
+
<div id="search" class="section">
|
10
|
+
<% form_tag(search_entries_path, {:method => :get}) do -%>
|
11
|
+
<div id="search_box"><%= text_field_tag(:q, '', :id => 'search-box') %></div>
|
12
|
+
<input id="search_go" class="input-button" type="submit" value="<%= t('muck.raker.search_button') %>"/>
|
13
|
+
<% end -%>
|
14
|
+
</div>
|
15
|
+
<div id="tools" class="section">
|
16
|
+
<%#= link_to t('muck.raker.remix'), new_content_path(@entry), :id => 'share' - copy the page into the content system %>
|
17
|
+
<%#= link_to t('muck.raker.save'), new_content_path(@entry), :id => 'share' - save the content for use later on %>
|
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' if GlobalConfig.enable_raker_shares -%>
|
20
|
+
<% else -%>
|
21
|
+
<span id="share_login"><%= t('muck.raker.login_or_signup_prompt', :signup => link_to(t('muck.raker.signup'), signup_path, :id => 'signup'), :login => link_to(t('muck.raker.login'), login_path, :id => 'login') ) %></span>
|
22
|
+
<% end -%>
|
23
|
+
<%= link_to t('muck.raker.comment_entries_count', :count => @comment_count), entry_comments_path(@entry), :id => 'comment' if GlobalConfig.enable_raker_comments -%>
|
24
|
+
</div>
|
25
|
+
</div>
|