def delete_source(id, **kwargs): source = Source.get_by_id(id) if gui.yes_no(_.CONFIRM_DELETE_SOURCE): source.delete_instance() Source.update(order=Source.order - 1).where(Source.order > source.order).execute() gui.refresh()
def edit_source(id=None, type=None): if id: source = Source.get_by_id(id) else: source = Source(item_type=type) if source.wizard(): source.save() gui.refresh()
def edit_source(id=None, type=None, order=0, **kwargs): if id: source = Source.get_by_id(id) else: source = Source(item_type=type, order=order) if source.wizard(): source.save() gui.refresh()
def shift_source(id, shift, **kwargs): shift = int(shift) source = Source.get_by_id(id) Source.update(order=Source.order - shift).where(Source.order == source.order + shift).execute() source.order += shift source.save() gui.refresh()
def alert(asset, title, image): alerts = userdata.get('alerts', []) if asset not in alerts: alerts.append(asset) gui.notification(_.REMINDER_SET, heading=title, icon=image) else: alerts.remove(asset) gui.notification(_.REMINDER_REMOVED, heading=title, icon=image) userdata.set('alerts', alerts) gui.refresh()
def alert(asset, title, **kwargs): alerts = userdata.get('alerts', []) if asset not in alerts: alerts.append(asset) gui.notification(title, heading=_.REMINDER_SET) else: alerts.remove(asset) gui.notification(title, heading=_.REMINDER_REMOVED) userdata.set('alerts', alerts) gui.refresh()
def login(**kwargs): username = gui.input(_.ASK_USERNAME, default=userdata.get('username', '')).strip() if not username: return userdata.set('username', username) password = gui.input(_.ASK_PASSWORD, hide_input=True).strip() if not password: return api.login(username=username, password=password) gui.refresh()
def login(): username = gui.input(_.ASK_USERNAME, default=userdata.get('username', '')).strip() if not username: return userdata.set('username', username) password = gui.input(_.ASK_PASSWORD).strip() if not password: return api.login(username=username, password=password) _select_profile() gui.refresh()
def dns4me_login(**kwargs): username = gui.input('dns4me Username').strip() if not username: return password = gui.input('dns4me Password', hide_input=True).strip() if not password: return data = Session().post('https://dns4me.net/api/v2/get_apikey', data={ 'username': username, 'password': password }).json() if 'apikey' in data: userdata.set('dns4me_key', data['apikey']) else: plugin.exception('Failed to login') gui.refresh()
def login(): while not api.logged_in: username = gui.input(_(L_ASK_USERNAME), default=userdata.get('username', '')).strip() if not username: break userdata.set('username', username) password = gui.input(_(L_ASK_PASSWORD), default=cache.get('password', '')).strip() if not password: break cache.set('password', password, expires=60) if api.login(username=username, password=password): gui.refresh() else: gui.ok(_(L_LOGIN_ERROR)) cache.delete('password')
def edit_channel(id, key, **kwargs): channels = Channels() channel = channels.get(id) if key == '_hidden': value = not channel['_hidden'] elif key == '_name': default = channel['_name'] value = gui.input(_.RENAME_CHANNEL, default=default) if not value or value == default: return elif key == 'tvg-chno': default = channel.get('tvg-chno', '') value = gui.numeric(_.SET_CHANNEL_NUMBER, default=default) if not value or value == default: return value = int(value) elif key == 'tvg-logo': default = channel.get('tvg-logo', '') value = gui.input(_.SET_CHANNEL_LOGO, default=default) if not value or value == default: return elif key == 'group-title': default = channel.get('group-title', '') value = gui.input(_.SET_CHANNEL_GROUP, default=default) if not value or value == default: return elif key == 'tvg-id': value = get_tvg_id(channel) if not value: return else: return channels.set_override(id, key, value) gui.refresh()
def logout(**kwargs): if not gui.yes_no(_.LOGOUT_YES_NO): return api.logout() gui.refresh()
def select_profile(**kwargs): _select_profile() gui.refresh()
def ia_install(**kwargs): inputstream.install_widevine(reinstall=True) gui.refresh()
def select_profile(): _select_profile() gui.refresh()
def delete_source(id): source = Source.get_by_id(id) if gui.yes_no(_.CONFIRM_DELETE_SOURCE) and source.delete_instance(): gui.refresh()
def add_channel(sort=None, **kwargs): url = gui.input(_.CHANNEL_PATH) if url: channels = Channels() channels.add(url, is_radio=sort == 'radio') gui.refresh()
def reset_channel(id, **kwargs): channels = Channels() channels.clear_overrides(id) gui.refresh()
def remove_watchlist(id, title, **kwargs): api.set_user_media(id, is_bookmarked='false') gui.notification(title, heading=_.WATCHLIST_REMOVED) gui.refresh()
def add_watchlist(id, title, **kwargs): api.set_user_media(id, is_bookmarked='true') gui.notification(title, heading=_.WATCHLIST_ADDED) gui.refresh()
def logout(): if not gui.yes_no(_(L_LOGOUT_YES_NO)): return api.logout() gui.refresh()
def dns4me_logout(**kwargs): if not gui.yes_no('Are you sure logout?'): return userdata.delete('dns4me_key') gui.refresh()
def toggle_source(id, **kwargs): source = Source.get_by_id(id) source.enabled = not source.enabled source.save() gui.refresh()