aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWojciech Polak <polak@gnu.org>2019-08-13 18:51:59 +0200
committerWojciech Polak <polak@gnu.org>2019-08-13 18:51:59 +0200
commitbc0e88857ff3958abe7e4b33b4d7edc6df3c2c46 (patch)
tree27c41352aedc6ad4099cf762beb4cb731bf46954
parent25a30112f3f16b0b37b79d7ecca742afa0e95902 (diff)
downloadglifestream-bc0e88857ff3958abe7e4b33b4d7edc6df3c2c46.tar.gz
glifestream-bc0e88857ff3958abe7e4b33b4d7edc6df3c2c46.tar.bz2
Fix Vimeo likes feed
-rw-r--r--glifestream/apis/vimeo.py89
1 files changed, 44 insertions, 45 deletions
diff --git a/glifestream/apis/vimeo.py b/glifestream/apis/vimeo.py
index 83af4ff..efe226c 100644
--- a/glifestream/apis/vimeo.py
+++ b/glifestream/apis/vimeo.py
@@ -47,8 +47,8 @@ class API:
47 self.process = self.process_videos 47 self.process = self.process_videos
48 self.fetch('/api/v2/%s/videos.json' % self.service.url) 48 self.fetch('/api/v2/%s/videos.json' % self.service.url)
49 else: 49 else:
50 self.process = self.process_userdid 50 self.process = self.process_likes
51 self.fetch('/api/v2/activity/%s/user_did.json' % self.service.url) 51 self.fetch('/api/v2/%s/likes.json' % self.service.url)
52 self.process = self.process_videos 52 self.process = self.process_videos
53 self.fetch('/api/v2/%s/videos.json' % self.service.url) 53 self.fetch('/api/v2/%s/videos.json' % self.service.url)
54 54
@@ -71,50 +71,49 @@ class API:
71 self.service.id, e)) 71 self.service.id, e))
72 traceback.print_exc(file=sys.stdout) 72 traceback.print_exc(file=sys.stdout)
73 73
74 def process_userdid(self): 74 def process_likes(self):
75 """Process what user did.""" 75 """Process what user did like."""
76 for ent in self.json: 76 for ent in self.json:
77 if 'type' in ent and ent['type'] == 'like': 77 date = ent['liked_on'][:10]
78 date = ent['date'][:10] 78 guid = 'tag:vimeo,%s:clip%s' % (date, ent['id'])
79 guid = 'tag:vimeo,%s:clip%s' % (date, ent['video_id']) 79 if self.verbose:
80 if self.verbose: 80 print("ID: %s" % guid)
81 print("ID: %s" % guid) 81 try:
82 try: 82 e = Entry.objects.get(service=self.service, guid=guid)
83 e = Entry.objects.get(service=self.service, guid=guid) 83 if not self.force_overwrite and e.date_updated \
84 if not self.force_overwrite and e.date_updated \ 84 and mtime(ent['date']) <= e.date_updated:
85 and mtime(ent['date']) <= e.date_updated: 85 continue
86 continue 86 if e.protected:
87 if e.protected: 87 continue
88 continue 88 except Entry.DoesNotExist:
89 except Entry.DoesNotExist: 89 e = Entry(service=self.service, guid=guid)
90 e = Entry(service=self.service, guid=guid) 90
91 91 e.title = ent['title']
92 e.title = ent['video_title'] 92 e.link = ent['url']
93 e.link = ent['video_url'] 93 e.date_published = ent['liked_on']
94 e.date_published = ent['date'] 94 e.date_updated = ent['liked_on']
95 e.date_updated = ent['date'] 95 e.author_name = ent['user_name']
96 e.author_name = ent['user_name'] 96
97 97 e.idata = 'liked'
98 e.idata = 'liked' 98
99 99 if self.service.public:
100 if self.service.public: 100 ent['thumbnail_large'] = media.save_image(
101 ent['video_thumbnail_medium'] = media.save_image( 101 ent['thumbnail_large'], downscale=True, size=(320, 180))
102 ent['video_thumbnail_medium']) 102
103 103 e.content = """<table class="vc"><tr><td><div id="vimeo-%s" class="play-video"><a href="%s" rel="nofollow"><img src="%s" width="320" height="180" alt="%s" /></a><div class="playbutton"></div></div></td></tr></table>""" % (
104 e.content = """<table class="vc"><tr><td><div id="vimeo-%s" class="play-video"><a href="%s" rel="nofollow"><img src="%s" width="200" height="150" alt="%s" /></a><div class="playbutton"></div></div></td></tr></table>""" % ( 104 ent['id'], e.link, ent['thumbnail_large'], ent['title'])
105 ent['video_id'], e.link, ent['video_thumbnail_medium'], ent['video_title']) 105
106 106 mblob = media.mrss_init()
107 mblob = media.mrss_init() 107 mblob[
108 mblob[ 108 'content'].append([{'url': 'https://vimeo.com/moogaloop.swf?clip_id=%s' % ent['id'],
109 'content'].append([{'url': 'https://vimeo.com/moogaloop.swf?clip_id=%s' % ent['video_id'], 109 'type': 'application/x-shockwave-flash',
110 'type': 'application/x-shockwave-flash', 110 'medium': 'video'}])
111 'medium': 'video'}]) 111 e.mblob = media.mrss_gen_json(mblob)
112 e.mblob = media.mrss_gen_json(mblob) 112
113 113 try:
114 try: 114 e.save()
115 e.save() 115 except:
116 except: 116 pass
117 pass
118 117
119 def process_videos(self): 118 def process_videos(self):
120 """Process videos uploaded by user.""" 119 """Process videos uploaded by user."""

Return to:

Send suggestions and report system problems to the System administrator.