def parse_feed_entry(entry): """ Parses a feedparser entry from a blip rss feed into a dictionary mapping :class:`.Video` fields to values. This is used for blip feeds and blip API requests (since those can also be done with feeds.) """ files = [VideoFile(url=enclosure.get('url'), mime_type=enclosure.get('type'), length=(enclosure.get('filesize') or enclosure.get('length'))) for enclosure in get_accepted_enclosures(entry)] data = { 'guid': entry['id'], 'link': entry['link'], 'title': entry['title'], 'description': entry['blip_puredescription'], 'files': files, 'embed_code': entry['media_player']['content'], 'publish_datetime': datetime.strptime(entry['blip_datestamp'], "%Y-%m-%dT%H:%M:%SZ"), 'thumbnail_url': get_entry_thumbnail_url(entry), 'tags': [tag['term'] for tag in entry['tags'] if tag['scheme'] is None][1:], 'user': entry['blip_safeusername'], 'user_url': entry['blip_showpage'] } if 'license' in entry: data['license'] = entry['license'] return data
def get_video_data(self, item): if item.get('published_parsed'): best_date = struct_time_to_datetime(item['published_parsed']) elif item.get('updated_parsed'): best_date = struct_time_to_datetime(item['updated_parsed']) else: best_date = None link = item.get('link') if 'links' in item: for possible_link in item.links: if possible_link.get('rel') == 'via': # original URL link = possible_link['href'] break if ('content' in item and item['content'] and item['content'][0]['value']): # Atom description = item['content'][0]['value'] else: description = item.get('summary', '') files = [VideoFile(url=enclosure.get('url'), mime_type=enclosure.get('type'), length=(enclosure.get('filesize') or enclosure.get('length'))) for enclosure in get_accepted_enclosures(item)] embed_code = None if 'media_player' in item: player = item['media_player'] if player.get('content'): embed_code = convert_entities(player['content']) elif 'url' in player: files.append(VideoFile( url=player['url'], mime_type=player.get('type'))) if not files: files = None if 'media_license' in item: license = item['media_license']['href'] else: license = item.get('license') return { 'link': link, 'title': convert_entities(item.get('title', '')), 'description': description, 'thumbnail_url': get_entry_thumbnail_url(item), 'files': files, 'publish_datetime': best_date, 'guid': item.get('id'), 'embed_code': embed_code, 'tags': [tag['term'] for tag in item['tags'] if tag['scheme'] is None] if 'tags' in item else None, 'license': license }
def get_video_data(self, item): files = [VideoFile(url=enclosure.get('url'), mime_type=enclosure.get('type'), length=(enclosure.get('filesize') or enclosure.get('length'))) for enclosure in get_accepted_enclosures(item)] data = { 'title': item.title, 'description': item.description, 'thumbnail_url': item.media_thumbnail[0]['url'], 'publish_datetime': struct_time_to_datetime(item.published_parsed), 'user': item['kaltura_userscreenname'], 'files': files or None, } return data
def get_video_data(self, item): if item.get('published_parsed'): best_date = struct_time_to_datetime(item['published_parsed']) elif item.get('updated_parsed'): best_date = struct_time_to_datetime(item['updated_parsed']) else: best_date = None link = item.get('link') if 'links' in item: for possible_link in item.links: if possible_link.get('rel') == 'via': # original URL link = possible_link['href'] break if ('content' in item and item['content'] and item['content'][0]['value']): # Atom description = item['content'][0]['value'] else: description = item.get('summary', '') files = [ VideoFile(url=enclosure.get('url'), mime_type=enclosure.get('type'), length=(enclosure.get('filesize') or enclosure.get('length'))) for enclosure in get_accepted_enclosures(item) ] embed_code = None if 'media_player' in item: player = item['media_player'] if player.get('content'): embed_code = convert_entities(player['content']) elif 'url' in player: files.append( VideoFile(url=player['url'], mime_type=player.get('type'))) if not files: files = None if 'media_license' in item: license = item['media_license']['href'] else: license = item.get('license') return { 'link': link, 'title': convert_entities(item.get('title', '')), 'description': description, 'thumbnail_url': get_entry_thumbnail_url(item), 'files': files, 'publish_datetime': best_date, 'guid': item.get('id'), 'embed_code': embed_code, 'tags': [tag['term'] for tag in item['tags'] if tag['scheme'] is None] if 'tags' in item else None, 'license': license }