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()
Beispiel #6
0
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()
Beispiel #9
0
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()
Beispiel #10
0
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()
Beispiel #12
0
def logout(**kwargs):
    if not gui.yes_no(_.LOGOUT_YES_NO):
        return

    api.logout()
    gui.refresh()
Beispiel #13
0
def select_profile(**kwargs):
    _select_profile()
    gui.refresh()
Beispiel #14
0
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()
Beispiel #21
0
def logout():
    if not gui.yes_no(_(L_LOGOUT_YES_NO)):
        return

    api.logout()
    gui.refresh()
Beispiel #22
0
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()