07-10-2025, 07:55 AM
(07-10-2025, 07:42 AM)Tomek napisał(a): 3 sekundy z chatem gpt:Dzięki
Oczywiście do zmian we własnym zakresieimport 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.")

