Exemplo n.º 1
0
def watch_filter(delete=''):
    PLog("watch_filter:")

    if delete:
        icon = R(ICON_DIR_WATCH)
        PLog('watch_filter: entferne_Filter')
        msg1 = 'Filter entfernen:'
        if os.path.isfile(MERKFILTER):
            os.remove(MERKFILTER)
            if os.path.isfile(MERKACTIVE) == True:  # Merkliste aktiv?
                xbmc.executebuiltin('Container.Refresh')
            msg2 = "Filter wurde entfernt"
        else:
            msg2 = "kein Filter gefunden"

        xbmcgui.Dialog().notification(msg1, msg2, icon, 5000)
        return

    my_items, my_ordner = ReadFavourites('Merk')  # Ordnerliste holen
    my_ordner = check_ordner(my_ordner)
    my_ordner.insert(0, u"*ohne Zuordnung*")

    preselect = 0  # Vorauswahl
    if os.path.isfile(MERKFILTER) == True:
        myfilter = RLoad(MERKFILTER, abs_path=True)
        PLog('myfilter: ' + myfilter)
        if myfilter:  # leer möglich
            preselect = my_ordner.index(myfilter)

    ret = xbmcgui.Dialog().select(u'Ordner wählen (Abbrechen = ohne Filter)',
                                  my_ordner,
                                  preselect=preselect)
    ordner = ''
    if ret >= 0:
        ordner = my_ordner[ret]
    PLog("ordner: " + ordner)

    # RunScript + RunPlugin hier fehlgeschlagen, daher
    #	Filterung via Triggerdatei MERKFILTER
    err_msg = RSave(MERKFILTER, ordner, withcodec=True)
    xbmc.executebuiltin('Container.Refresh')
Exemplo n.º 2
0
if 'url' in mydict:
    url = mydict['url']
PLog(action)
PLog(name)
PLog(thumb)
PLog(Plot)
PLog(url)

if 'filter' in action:  # Filter-Aktionen:
    if action == 'filter':  # Aufrufer ShowFavs (Settings: Ordner)
        watch_filter()  # Filter setzen
    if action == 'filter_delete':
        watch_filter(delete=True)  # Filter (MERKFILTER) löschen
else:  # Merklisten-Aktionen:
    Plot = clean_Plot(Plot)
    msg1, err_msg, item_cnt = Watch_items(action, name, thumb, Plot,
                                          url)  # Einträge add / del / folder
    msg2 = err_msg
    if item_cnt:
        msg2 = "%s\n%s" % (msg2, u"Einträge: %s" % item_cnt)
        if action == 'del' or action == 'folder':  # Refresh Liste nach Löschen
            # MERKACTIVE ersetzt hier Ermitteln von Window + Control
            # bei Verzicht würde jede Liste refresht (stört bei großen Listen)
            if os.path.isfile(MERKACTIVE) == True:  # Merkliste aktiv?
                xbmc.executebuiltin('Container.Refresh')

    # 01.02.2029 Dialog ersetzt durch notification
    icon = R(ICON_DIR_WATCH)
    xbmcgui.Dialog().notification(msg1, msg2, icon, 5000)
    # exit()		# thread.lock-Error in Kodi-Matrix
Exemplo n.º 3
0
def do_folder():
    PLog("do_folder:")

    dialog = xbmcgui.Dialog()
    head = 'Merklisten-Ordner bearbeiten'
    slist = [
        u'INFO: aktuelle Liste der Merklisten-Ordner',
        u'INFO: Regeln für neue Merklisten-Ordner',
        u'Ordner entfernen (nur möglich, wenn nicht verknüpft)',
        u'Neuen Ordner hinzufügen (bitte die Regeln beachten - s.o.)',
        u'[COLOR red]RESET:[/COLOR] Basis-Ordnerliste wiederherstellen'
    ]
    while 1:  # Dauerschleife bis Abbruch
        ret = xbmcgui.Dialog().select(head, slist)
        PLog("ret: %d" % ret)
        if ret == -1 or ret == None:
            break

        icon = R(ICON_DIR_WATCH)
        my_items, my_ordner_list = ReadFavourites('Merk')
        my_ordner_list = check_ordnerlist(
            my_ordner_list)  # Fallback Basis-Ordner-Liste
        my_ordner_list = sorted(my_ordner_list)
        merkliste = " ".join(my_items)  # speichern als String
        merkliste = py2_decode(merkliste)

        #-----------------------------------------------------	# Ordner listen
        if ret == 0:
            my_ordner_list = "\n".join(my_ordner_list)
            ret1 = dialog.textviewer(slist[0], my_ordner_list)
            if ret1 == None:
                continue
            PLog("ret1: %d" % ret1)

        #-----------------------------------------------------	# Regeln für neue Ordner listen
        if ret == 1:
            my_info_list = "\n".join(ORDNER_INFO)
            ret2 = dialog.textviewer(slist[1], my_info_list)
            if ret2 == None:
                continue
            PLog("ret2: %d" % ret2)

        #-----------------------------------------------------	# Ordner entfernen
        if ret == 2:
            ret3 = xbmcgui.Dialog().select(slist[2], my_ordner_list)
            PLog("ret3: %d" % ret3)
            if ret3 == -1:  # Abbruch, Esc
                continue

            ordner = ''
            ordner = my_ordner_list[ret3]
            PLog("ordner: " + ordner)
            msg1 = u"Ordner [COLOR red]%s[/COLOR] wirklich löschen?" % ordner
            ret4 = MyDialog(msg1=msg1,
                            msg2='',
                            msg3='',
                            ok=False,
                            cancel='Abbruch',
                            yes='JA',
                            heading=slist[1])
            PLog("ret4: %d" % ret4)
            if ret4 == 1:
                exist, link_cnt = check_ordner(
                    ordner, my_ordner_list,
                    my_items)  # Abgleich Ordner mit Ordnerliste
                if link_cnt > 0:
                    msg2 = ''
                    msg3 = ''
                    msg1 = u"Ordner [COLOR red]%s[/COLOR] ist bereits verknüpft." % ordner
                    if link_cnt:
                        msg2 = u"Anzahl der Verknüpfungen: %d" % link_cnt
                        msg3 = u"Ordner kann nicht  entfernt werden."
                    MyDialog(msg1, msg2, msg3)
                else:
                    my_ordner_list.remove(ordner)
                    ret, err_msg = save_merkliste(merkliste, my_ordner_list)
                    # PLog(my_ordner_list)	# Debug
                    msg1 = u'Merklisten-Ordner:'
                    msg2 = u"[COLOR red]%s[/COLOR] entfernt" % ordner
                    if ret == False:
                        msg2 = err_msg
                    xbmcgui.Dialog().notification(msg1, msg2, icon, 5000)

        #-----------------------------------------------------	# Ordner hinzufügen
        if ret == 3:
            new = get_keyboard_input('Neuen Ordner hinzufügen')  # Modul util
            if new == None or new.strip() == '':
                continue
            new_org = py2_decode(new)
            PLog(new)

            # kein 100%iger Schutz erforderlich:
            no_chars = [
                u'#', u' ', u'*', u'+', u'|', u',', u'!', u'"', u'$', u'%',
                u'(', u')', u'?', u'\\', u'~', u'\'', u';', u':', u'.', u'^',
                u'°'
            ]
            notsafe = False
            for char in no_chars:
                if char in new:
                    if char == ' ':
                        char = 'Leerzeichen'
                    notsafe = True
                    msg1 = u'unerlaubtes Zeichen: [COLOR red]%s[/COLOR]' % char
                    MyDialog(msg1, '', '')
                    break
            if notsafe:
                continue

            my_ordner_list.append(new)
            ret, err_msg = save_merkliste(merkliste, my_ordner_list)
            #PLog(my_ordner_list)	# Debug
            msg1 = u'Merklisten-Ordner:'
            msg2 = u"[COLOR red]%s[/COLOR] hinzugefügt" % new
            if ret == False:
                msg2 = err_msg
            xbmcgui.Dialog().notification(msg1, msg2, icon, 5000)

        #-----------------------------------------------------	# Basis-Ordnerliste wiederherstellen
        if ret == 4:
            msg1 = u"Basis-Ordnerliste wirklich wiederherstellen?"
            msg2 = u"Eigene Ordner und das Filtern damit entfallen."
            msg3 = u"Verknüpfungen mit diesen Ordnern bleiben aber erhalten."
            ret5 = MyDialog(msg1,
                            msg2,
                            msg3,
                            ok=False,
                            cancel='Abbruch',
                            yes='JA',
                            heading=slist[4])
            PLog("ret5: %d" % ret5)

            if ret5 == 1:
                my_ordner_list = []
                ret, err_msg = save_merkliste(merkliste, my_ordner_list)
                #PLog(my_ordner_list)	# Debug
                msg1 = u'Merklisten-Ordner:'
                msg2 = u"Basis-Ordnerliste wiederhergestellt"
                if ret == False:
                    msg2 = err_msg
                xbmcgui.Dialog().notification(msg1, msg2, icon, 5000)

    return