Class: ActivityMapper::YoutubeServiceModule
- Inherits:
-
ServiceModule
- Object
- ServiceModule
- ActivityMapper::YoutubeServiceModule
- Defined in:
- lib/activity_mapper/service_modules/youtube.rb
Constant Summary collapse
- ACTIVITY_MAP =
{ 'feed/entry' => { 'activity.occurred_at' => 'published/$t', 'activity.caption' => 'title/$t', 'activity_object.title' => 'title/$t', 'activity_object.body' => 'media$group/media$description/$t', 'activity_object.url' => 'media$group/media$player/url', 'activity.url' => 'media$group/media$player/url', 'media.thumbnail_url' => 'media$group/media$thumbnail[0]/url', 'media.embed_url' => 'media$group/media$content[0]/url', 'media.duration' => 'media$group/yt$duration/seconds', 'rating_summary.rater_count' => 'gd$rating/numRaters', 'rating_summary.min' => 'gd$rating/min', 'rating_summary.max' => 'gd$rating/max', 'rating_summary.average' => 'gd$rating/average', 'rating_summary.view_count' => 'yt$statistics/viewCount', 'rating_summary.favorite_count' => 'yt$statistics/favoriteCount' } }
- ACCEPTED_HOSTS =
[/youtube\.com/]
Constants inherited from ServiceModule
ServiceModule::COMMON_DIRECTIVES
Instance Method Summary collapse
-
#aggregate_activity!(options = {}) ⇒ Object
TODO use this data native id (need to somehow encode this to a big ass number: eg: dyMVZqJk8s4) media.categories media.keywords media.credit (media.uploader).
-
#create_or_update_summary!(options = {}) ⇒ Object
TODO use this data: user view statistics.
Methods inherited from ServiceModule
accepts?, all_accepted_hosts, #deep_analysis_on, detect_username, #initialize, klass_for, #shallow_analysis_on, subclasses
Constructor Details
This class inherits a constructor from ActivityMapper::ServiceModule
Instance Method Details
#aggregate_activity!(options = {}) ⇒ Object
TODO use this data native id (need to somehow encode this to a big ass number: eg: dyMVZqJk8s4) media.categories media.keywords media.credit (media.uploader)
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/activity_mapper/service_modules/youtube.rb', line 38 def aggregate_activity!( = {}) mapper = ActivityDataMapper.new(ACTIVITY_MAP) mapper.fetch!( "http://gdata.youtube.com/feeds/api/users/#{@profile.username}/uploads?v=2&alt=json", :format => :json ) mapper.map! mapper.entries.each do |entry| next if Activity.exists?(@profile.user_id, entry) create_activity(entry, ActivityObjectType::VIDEO, ActivityVerb::POST) end mapper.fetch!( "http://gdata.youtube.com/feeds/api/users/#{@profile.username}/favorites?v=2&alt=json", :format => :json ) mapper.map! mapper.entries.each do |entry| next if Activity.exists?(@profile.user_id, entry) create_activity(entry, ActivityObjectType::VIDEO, ActivityVerb::FAVORITE) end end |
#create_or_update_summary!(options = {}) ⇒ Object
TODO use this data: user view statistics
28 29 30 |
# File 'lib/activity_mapper/service_modules/youtube.rb', line 28 def create_or_update_summary!( = {}) @profile.update_attributes(:username => self.class.username_from_url(@profile.url)) end |