Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Kanały w google tv
#9
(07-10-2025, 07:42 AM)Tomek napisał(a): 3 sekundy z chatem gpt:
import os
import datetime
import xml.etree.ElementTree as ET

# Rozszerzenia plików wideo, które Kodi rozpoznaje
VIDEO_EXTENSIONS = {'.mp4', '.mkv', '.avi', '.mov', '.wmv', '.flv', '.mpg', '.mpeg'}

def create_nfo(title, date, path, is_folder=False):
    """Tworzy plik NFO w formacie akceptowanym przez Kodi."""
    # Wybór głównego tagu: <movie> dla pliku, <tvshow> dla folderu
    root_tag = 'tvshow' if is_folder else 'movie'
    root = ET.Element(root_tag)

    title_el = ET.SubElement(root, 'title')
    title_el.text = title

    date_el = ET.SubElement(root, 'dateadded')
    date_el.text = date

    # Formatowanie XML (ładny zapis z wcięciami)
    xml_str = ET.tostring(root, encoding='utf-8')
    nfo_path = os.path.splitext(path)[0] + '.nfo'

    # Zapis NFO
    with open(nfo_path, 'wb') as f:
        f.write(b'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n')
        f.write(xml_str)

    print(f'Utworzono NFO: {nfo_path}')

def generate_nfo_for_directory(base_path):
    """Przechodzi po wszystkich plikach i katalogach, tworząc NFO."""
    for root, dirs, files in os.walk(base_path):
        # Najpierw dla folderów (TV show / kolekcje)
        for d in dirs:
            dir_path = os.path.join(root, d)
            nfo_path = os.path.join(dir_path, 'tvshow.nfo')
            if not os.path.exists(nfo_path):
                creation_time = os.path.getctime(dir_path)
                date_str = datetime.datetime.fromtimestamp(creation_time).strftime('%Y-%m-%d')
                create_nfo(d, date_str, nfo_path, is_folder=True)

        # Następnie dla plików wideo
        for f in files:
            file_path = os.path.join(root, f)
            name, ext = os.path.splitext(f)
            if ext.lower() in VIDEO_EXTENSIONS:
                nfo_path = os.path.splitext(file_path)[0] + '.nfo'
                if not os.path.exists(nfo_path):
                    creation_time = os.path.getctime(file_path)
                    date_str = datetime.datetime.fromtimestamp(creation_time).strftime('%Y-%m-%d')
                    create_nfo(name, date_str, file_path, is_folder=False)

if __name__ == "__main__":
    base_dir = input("Podaj ścieżkę katalogu z plikami wideo: ").strip('"')
    if not os.path.isdir(base_dir):
        print("Błąd: podana ścieżka nie jest katalogiem.")
    else:
        generate_nfo_for_directory(base_dir)
        print("Zakończono generowanie plików NFO.")
Oczywiście do zmian we własnym zakresie
Dzięki Smile
Odpowiedz


Wiadomości w tym wątku
Kanały w google tv - przez azizi - 06-10-2025, 12:04 PM
RE: Kanały w google tv - przez harypoter - 06-10-2025, 05:24 PM
RE: Kanały w google tv - przez azizi - 07-10-2025, 05:40 AM
RE: Kanały w google tv - przez Tomek - 07-10-2025, 05:45 AM
RE: Kanały w google tv - przez azizi - 07-10-2025, 06:05 AM
RE: Kanały w google tv - przez Tomek - 07-10-2025, 07:09 AM
RE: Kanały w google tv - przez azizi - 07-10-2025, 07:29 AM
RE: Kanały w google tv - przez Tomek - 07-10-2025, 07:42 AM
RE: Kanały w google tv - przez azizi - 07-10-2025, 07:55 AM
RE: Kanały w google tv - przez azizi - 08-10-2025, 12:52 PM
Kanały w google tv - przez Tomek - 08-10-2025, 01:24 PM
RE: Kanały w google tv - przez azizi - 09-10-2025, 12:42 PM
RE: Kanały w google tv - przez harypoter - 15-10-2025, 07:18 PM
RE: Kanały w google tv - przez azizi - 16-10-2025, 06:16 AM
RE: Kanały w google tv - przez harypoter - 09-10-2025, 07:14 PM
Kanały w google tv - przez Tomek - 10-10-2025, 12:45 AM
RE: Kanały w google tv - przez azizi - 14-10-2025, 11:16 AM
RE: Kanały w google tv - przez azizi - 15-10-2025, 11:07 AM
RE: Kanały w google tv - przez Tomek - 16-10-2025, 07:07 AM
RE: Kanały w google tv - przez azizi - 16-10-2025, 07:20 AM
RE: Kanały w google tv - przez Tomek - 16-10-2025, 07:22 AM
RE: Kanały w google tv - przez azizi - 16-10-2025, 07:31 AM
RE: Kanały w google tv - przez azizi - 17-10-2025, 12:55 PM
Kanały w google tv - przez Tomek - 17-10-2025, 04:45 PM

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości