diff --git a/Makefile b/Makefile deleted file mode 100644 index 656fcbd..0000000 --- a/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -build-container: - docker build -t streaming-community-api . - -run-container: - docker run --rm -it -p 8000:8000 -v ${LOCAL_DIR}:/app/Video -v ./config.json:/app/config.json streaming-community-api diff --git a/README.md b/README.md index 296f247..a438884 100644 --- a/README.md +++ b/README.md @@ -29,8 +29,6 @@ Make sure you have the following prerequisites installed on your system: * [ffmpeg](https://www.gyan.dev/ffmpeg/builds/) * [opnessl](https://www.openssl.org) or [pycryptodome](https://pypi.org/project/pycryptodome/) -* [nodejs](https://nodejs.org/) - ## Installation Install the required Python libraries using the following command: @@ -208,19 +206,6 @@ By default the videos will be saved in `/app/Video` inside the container, if you docker run -it -p 8000:8000 -v /path/to/download:/app/Video streaming-community-api ``` -### Docker quick setup with Make - -Inside the Makefile (install `make`) are already configured two commands to build and run the container: - -``` -make build-container - -# set your download directory as ENV variable -make LOCAL_DIR=/path/to/download run-container -``` - -The `run-container` command mounts also the `config.json` file, so any change to the configuration file is reflected immediately without having to rebuild the image. - ## Tutorial For a detailed walkthrough, refer to the [video tutorial](https://www.youtube.com/watch?v=Ok7hQCgxqLg&ab_channel=Nothing) @@ -229,4 +214,4 @@ For a detailed walkthrough, refer to the [video tutorial](https://www.youtube.co ## To do - GUI - Website api -- Add other site +- Add other site \ No newline at end of file diff --git a/Src/Api/Guardaserie/Core/Class/ScrapeSerie.py b/Src/Api/Guardaserie/Core/Class/ScrapeSerie.py index 46c80c9..2275a43 100644 --- a/Src/Api/Guardaserie/Core/Class/ScrapeSerie.py +++ b/Src/Api/Guardaserie/Core/Class/ScrapeSerie.py @@ -44,7 +44,6 @@ class GetSerieInfo: try: # Make an HTTP request to the series URL - print(self.url) response = httpx.get(self.url, headers=self.headers, timeout=10) response.raise_for_status() diff --git a/Src/Lib/Hls/segments.py b/Src/Lib/Hls/segments.py index d38fb50..6869460 100644 --- a/Src/Lib/Hls/segments.py +++ b/Src/Lib/Hls/segments.py @@ -46,6 +46,7 @@ TQDM_DELAY_WORKER = config_manager.get_float('M3U8_DOWNLOAD', 'tqdm_delay') TQDM_USE_LARGE_BAR = config_manager.get_int('M3U8_DOWNLOAD', 'tqdm_use_large_bar') REQUEST_TIMEOUT = config_manager.get_float('REQUESTS', 'timeout') REQUEST_MAX_RETRY = config_manager.get_int('REQUESTS', 'max_retry') +REQUEST_VERIFY = config_manager.get_bool('REQUESTS', 'verify_ssl') THERE_IS_PROXY_LIST = check_file_existence("list_proxy.txt") PROXY_START_MIN = config_manager.get_float('REQUESTS', 'proxy_start_min') PROXY_START_MAX = config_manager.get_float('REQUESTS', 'proxy_start_max') @@ -53,7 +54,6 @@ PROXY_START_MAX = config_manager.get_float('REQUESTS', 'proxy_start_max') # Variable headers_index = config_manager.get_dict('REQUESTS', 'index') -transport = httpx.HTTPTransport(retries=REQUEST_MAX_RETRY) @@ -160,7 +160,7 @@ class M3U8_Segments: # Proxy if THERE_IS_PROXY_LIST: - console.log("[red]Validate proxy.") + console.log("[red]Start validation proxy.") self.valid_proxy = main_test_proxy(self.segments[0]) console.log(f"[cyan]N. Valid ip: [red]{len(self.valid_proxy)}") @@ -204,16 +204,15 @@ class M3U8_Segments: if THERE_IS_PROXY_LIST: proxy = self.valid_proxy[index % len(self.valid_proxy)] logging.info(f"Use proxy: {proxy}") - #print(client.get("https://api.ipify.org/?format=json").json()) - with httpx.Client(proxies=proxy, verify=False, transport=transport) as client: + with httpx.Client(proxies=proxy, verify=REQUEST_VERIFY) as client: if 'key_base_url' in self.__dict__: response = client.get(ts_url, headers=random_headers(self.key_base_url), timeout=REQUEST_TIMEOUT) else: response = client.get(ts_url, headers={'user-agent': get_headers()}, timeout=REQUEST_TIMEOUT) else: - with httpx.Client(verify=False, transport=transport) as client_2: + with httpx.Client(verify=REQUEST_VERIFY) as client_2: if 'key_base_url' in self.__dict__: response = client_2.get(ts_url, headers=random_headers(self.key_base_url), timeout=REQUEST_TIMEOUT) else: diff --git a/Src/Upload/version.py b/Src/Upload/version.py index bc501f4..c69e058 100644 --- a/Src/Upload/version.py +++ b/Src/Upload/version.py @@ -1,5 +1,5 @@ __title__ = 'StreamingCommunity' -__version__ = 'v1.2.0' +__version__ = 'v1.1.0' __author__ = 'Lovi-0' __description__ = 'A command-line program to download film' __copyright__ = 'Copyright 2024' diff --git a/config.json b/config.json index 9c5bba0..0d2caa8 100644 --- a/config.json +++ b/config.json @@ -10,9 +10,9 @@ "not_close": false }, "REQUESTS": { - "timeout": 5, + "timeout": 10, "max_retry": 3, - "verify_ssl": false, + "verify_ssl": true, "index": { "user-agent": "" }, diff --git a/dockerfile b/dockerfile index 9522fb3..ff5a582 100644 --- a/dockerfile +++ b/dockerfile @@ -1,5 +1,8 @@ FROM python:3.11-slim +COPY . /app +WORKDIR /app + ENV TEMP /tmp RUN mkdir -p $TEMP @@ -10,11 +13,7 @@ RUN apt-get update && apt-get install -y \ libffi-dev \ python3-dev \ libxml2-dev \ - libxslt1-dev \ - nodejs - -COPY . /app -WORKDIR /app + libxslt1-dev RUN pip install --no-cache-dir -r requirements.txt diff --git a/run.py b/run.py index 3a7fa1f..1b38f52 100644 --- a/run.py +++ b/run.py @@ -149,7 +149,7 @@ def main(): # Create dynamic prompt message and choices choice_labels = {str(i): alias.split("_")[0].capitalize() for i, alias in enumerate(search_functions.keys())} - prompt_message = f"Insert category [white]({', '.join([f'[red]{key}: [magenta]{label}' for key, label in choice_labels.items()])}[white]): " + prompt_message = f"[green]Insert category [white]({', '.join([f'[red]{key}: [magenta]{label}' for key, label in choice_labels.items()])}[white]): " # Ask the user for input category = msg.ask(prompt_message, choices=list(choice_labels.keys()), default="0")