# -*- coding: utf-8 -*-
# Module: default
# Author: cache
# Created on: 10.5.2020
# License: AGPL v.3 https://www.gnu.org/licenses/agpl-3.0.html

import sys
import galdPl
import requests
import re
import os

def get_json_files_from_folder(folder):
    base_url = "https://git.gald.site/gald/galdistream/src/branch/main/resources/"
    url = base_url + folder
    r = requests.get(url, timeout=10)
    r.raise_for_status()
    
    # Hledáme JSON soubory pomocí regex
    json_pattern = r'href="(/gald/galdistream/src/branch/main/resources/[^"]*\.json)"'
    matches = re.findall(json_pattern, r.text)
    
    files = []
    for match in matches:
        # Extrahujeme pouze název souboru
        file_name = match.split("/")[-1]
        files.append(file_name)
    return files

def update_json_db():
    base_url_raw = "https://git.gald.site/gald/galdistream/raw/branch/main/resources/"
    folders = ["movies", "series"]
    all_files = []
    for folder in folders:
        try:
            files = get_json_files_from_folder(folder)
            all_files += [f"{folder}/{file}" for file in files]
        except Exception as e:
            print(f"Chyba při získávání souborů ze složky {folder}: {e}")
    for file in all_files:
        url = base_url_raw + file
        local_path = "resources/" + file
        try:
            r = requests.get(url, timeout=10)
            r.raise_for_status()
            os.makedirs(os.path.dirname(local_path), exist_ok=True)
            with open(local_path, "wb") as f:
                f.write(r.content)
        except Exception as e:
            print(f"Chyba při stahování {file}: {e}")

if __name__ == '__main__':
    update_json_db()
    galdPl.router(sys.argv[2][1:])
