def remove_language(language): json_data = get_stored_json() language = Language.validate(language) new_languages = [lang for lang in json_data['languages'] if lang != language] if len(new_languages) == 0: new_languages.append(Language.ALL) json_data['languages'] = new_languages storage.save(json_data)
def get_followed(trending=Boolean.FALSE, language=Language.ALL, cursor='MA==', limit=10): q = Qry('clips/followed') q.add_param(keys.TRENDING, Boolean.validate(trending), Boolean.FALSE) q.add_param(keys.LANGUAGE, Language.validate(language), Language.ALL) q.add_param(keys.LIMIT, limit, 10) q.add_param(keys.CURSOR, Cursor.validate(cursor), 'MA==') return q
def update(video_id, title=None, description=None, game=None, language=None, tag_list=None): q = Qry('videos/{video_id}', method=methods.PUT) q.add_urlkw(keys.VIDEO_ID, video_id) q.add_param(keys.TITLE, title) q.add_param(keys.DESCRIPTION, description) q.add_param(keys.GAME, game) if language is not None: q.add_param(keys.LANGUAGE, Language.validate(language)) q.add_param(keys.TAG_LIST, tag_list) return q
def create(channel_id, title, description=None, game=None, language=None, tag_list=None): q = Qry('videos/', method=methods.POST) q.add_param(keys.CHANNEL_ID, channel_id) q.add_param(keys.TITLE, title) q.add_param(keys.DESCRIPTION, description) q.add_param(keys.GAME, game) if language is not None: q.add_param(keys.LANGUAGE, Language.validate(language)) q.add_param(keys.TAG_LIST, tag_list) return q
def get_metadata(community_id=list(), game_id=list(), user_id=list(), user_login=list(), stream_type=StreamTypeHelix.ALL, language=list(), after='MA==', before='MA==', first=20, use_app_token=False): q = Qry('streams/metadata', use_app_token=use_app_token) q.add_param(keys.AFTER, Cursor.validate(after), 'MA==') q.add_param(keys.BEFORE, Cursor.validate(before), 'MA==') q.add_param(keys.FIRST, first, 20) q.add_param(keys.COMMUNITY_ID, community_id, list()) q.add_param(keys.GAME_ID, game_id, list()) q.add_param(keys.USER_ID, user_id, list()) q.add_param(keys.USER_LOGIN, user_login, list()) q.add_param(keys.TYPE, StreamTypeHelix.validate(stream_type), StreamTypeHelix.ALL) if isinstance(language, list): _language = [lang for lang in language if lang in Language.valid()] q.add_param(keys.LANGUAGE, _language, list()) else: q.add_param(keys.LANGUAGE, Language.validate(language), '') return q
def route(action): if action == 'change': current_language = utils.get_language() valid_languages = Language.valid() missing_languages = [ language for language in valid_languages if language != current_language ] result = kodi.Dialog().select(i18n('change_languages'), missing_languages) if result > -1: utils.change_language(missing_languages[result])
def route(action): if action == 'add': current_languages = utils.get_languages() valid_languages = Language.valid() missing_languages = [language for language in valid_languages if language not in current_languages] result = kodi.Dialog().select(i18n('add_language'), missing_languages) if result > -1: utils.add_language(missing_languages[result]) elif action == 'remove': current_languages = utils.get_languages() result = kodi.Dialog().select(i18n('remove_language'), current_languages) if result > -1: utils.remove_language(current_languages[result])
def add_language(language): json_data = get_stored_json() language = Language.validate(language) if language == Language.ALL: json_data['languages'] = [language] json_data['languages'].append(language) new_languages = list(set(json_data['languages'])) try: index_of_all = new_languages.index(Language.ALL) except ValueError: index_of_all = -1 if (index_of_all > -1) and len(new_languages) > 1: new_languages.remove(Language.ALL) json_data['languages'] = new_languages storage.save(json_data)
def get_videos(channel_id, limit=10, offset=0, broadcast_type=BroadcastType.HIGHLIGHT, hls=Boolean.FALSE, sort_by=VideoSort.TIME, language=Language.ALL): q = Qry('channels/{id}/videos') q.add_urlkw(keys.ID, channel_id) q.add_param(keys.LIMIT, limit, 10) q.add_param(keys.OFFSET, offset, 0) q.add_param(keys.BROADCAST_TYPE, BroadcastType.validate(broadcast_type)) q.add_param(keys.SORT, VideoSort.validate(sort_by), VideoSort.TIME) q.add_param(keys.LANGUAGE, Language.validate(language), Language.ALL) q.add_param(keys.HLS, Boolean.validate(hls), Boolean.FALSE) return q
def get_top(channels=None, games=None, period=ClipPeriod.WEEK, trending=Boolean.FALSE, language=Language.ALL, cursor='MA==', limit=10): q = Qry('clips/top') q.add_param(keys.CHANNEL, channels, None) q.add_param(keys.GAME, games, None) q.add_param(keys.PERIOD, ClipPeriod.validate(period), ClipPeriod.WEEK) q.add_param(keys.TRENDING, Boolean.validate(trending), Boolean.FALSE) q.add_param(keys.LANGUAGE, Language.validate(language), Language.ALL) q.add_param(keys.LIMIT, limit, 10) q.add_param(keys.CURSOR, Cursor.validate(cursor), 'MA==') return q
def get_all(game=None, channel_ids=None, community_id=None, language=Language.ALL, stream_type=StreamType.LIVE, platform=Platform.ALL, limit=25, offset=0): q = Qry('streams', use_token=False) q.add_param(keys.GAME, game) q.add_param(keys.CHANNEL, channel_ids) q.add_param(keys.COMMUNITY_ID, community_id) q.add_param(keys.BROADCASTER_LANGUAGE, Language.validate(language), Language.ALL) q.add_param(keys.STREAM_TYPE, StreamType.validate(stream_type), StreamType.LIVE) platform = Platform.validate(platform) if platform == Platform.XBOX_ONE: q.add_param(keys.XBOX_HEARTBEAT, Boolean.TRUE) elif platform == Platform.PS4: q.add_param(keys.SCE_PLATFORM, 'PS4') q.add_param(keys.LIMIT, limit, 25) q.add_param(keys.OFFSET, offset, 0) return q
def change_language(language=Language.ALL): json_data = get_stored_json() language = Language.validate(language) json_data['languages'] = language storage.save(json_data)