obj.body = entry.content[0].value else: obj.render_mode = 'link' obj.body = entry.summary if "summary" in entry else "" object_time = None if "published_parsed" in entry: object_time = entry.published_parsed elif "updated_parsed" in entry: object_time = entry.updated_parsed if object_time is None: log.debug("Feed item %s has no timestamp, so making no object", item_url) return None obj.time = datetime(*object_time[:6]) obj.save() return obj def object_from_photo_url(url, width, height): try: return Object.objects.get(service='', foreign_id=url) except Object.DoesNotExist: pass log.debug("Treating %s as a photo URL and making an image object from it", url) image = Media( image_url=url, width=width,
def object_from_post(post, authtoken=None, authsecret=None): sharekey = post['permalink_page'].split('/')[-1] author = account_for_mlkshk_userinfo(post['user']) if not author.person.avatar_source and author.person.avatar is None: if authtoken and authsecret: userinfo = call_mlkshk('https://mlkshk.com/api/user_id/%s' % author.ident, authtoken=authtoken, authsecret=authsecret) avatar_url = userinfo['profile_image_url'] if 'default-icon' not in avatar_url: avatar = Media( width=100, height=100, image_url=avatar_url, ) avatar.save() author.person.avatar = avatar author.person.save() posted_at = datetime.strptime(post['posted_at'], '%Y-%m-%dT%H:%M:%SZ') body = post.get('description') or '' body = u''.join(urlized_words(body)) body = re.sub(r'\r?\n', '<br>', body) if 'url' in post: obj = leapfrog.poll.embedlam.object_for_url(post['url']) if not post.get('description'): return True, obj try: reply = Object.objects.get(service='mlkshk.com', foreign_id=sharekey) except Object.DoesNotExist: reply = Object( service='mlkshk.com', foreign_id=sharekey, author=author, in_reply_to=obj, title=post['title'], permalink_url=post['permalink_page'], render_mode='mixed', body=body, time=posted_at, ) reply.save() return False, reply try: obj = Object.objects.get(service='mlkshk.com', foreign_id=sharekey) except Object.DoesNotExist: photo = Media( image_url=post['original_image_url'], width=post['width'], height=post['height'], sfw=not post['nsfw'], ) photo.save() obj = Object( service='mlkshk.com', foreign_id=sharekey, image=photo, ) obj.title = post['title'] obj.author = author obj.permalink_url = post['permalink_page'] obj.render_mode = 'image' obj.body = body obj.time = posted_at obj.save() # TODO: consider a "save" a share instead of a post? return False, obj
else: obj.render_mode = 'link' obj.body = entry.summary if "summary" in entry else "" object_time = None if "published_parsed" in entry: object_time = entry.published_parsed elif "updated_parsed" in entry: object_time = entry.updated_parsed if object_time is None: log.debug("Feed item %s has no timestamp, so making no object", item_url) return None obj.time = datetime(*object_time[:6]) obj.save() return obj def object_from_photo_url(url, width, height): try: return Object.objects.get(service='', foreign_id=url) except Object.DoesNotExist: pass log.debug("Treating %s as a photo URL and making an image object from it", url) image = Media( image_url=url,