diff --git a/.github/.domain/domains.json b/.github/.domain/domains.json index 85745cc..e5a8942 100644 --- a/.github/.domain/domains.json +++ b/.github/.domain/domains.json @@ -48,10 +48,10 @@ "time_change": "2025-05-26 23:22:45" }, "streamingcommunity": { - "domain": "bid", - "full_url": "https://streamingunity.bid/", - "old_domain": "bio", - "time_change": "2025-06-03 15:27:02" + "domain": "art", + "full_url": "https://streamingunity.art/", + "old_domain": "bid", + "time_change": "2025-06-05 11:18:33" }, "altadefinizionegratis": { "domain": "cc", diff --git a/.github/media/loc-badge.json b/.github/.domain/loc-badge.json similarity index 100% rename from .github/media/loc-badge.json rename to .github/.domain/loc-badge.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6f58f25..82e529f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -75,9 +75,24 @@ jobs: executable: StreamingCommunity_linux_previous separator: ':' + # ARM64 build + - os: ubuntu-latest + artifact_name: StreamingCommunity_linux_arm64 + executable: StreamingCommunity_linux_arm64 + separator: ':' + architecture: arm64 + runs-on: ${{ matrix.os }} + # For ARM64, set architecture if present + defaults: + run: + shell: bash steps: + - name: Set up QEMU (for ARM64) + if: ${{ matrix.architecture == 'arm64' }} + uses: docker/setup-qemu-action@v3 + - name: Checkout repository uses: actions/checkout@v4 with: @@ -94,6 +109,7 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.12' + architecture: ${{ matrix.architecture || 'x64' }} - name: Install dependencies run: | @@ -122,6 +138,8 @@ jobs: --hidden-import=Cryptodome.Util --hidden-import=Cryptodome.Util.Padding \ --hidden-import=Cryptodome.Random \ --hidden-import=telebot \ + --hidden-import=curl_cffi --hidden-import=_cffi_backend \ + --collect-all curl_cffi \ --additional-hooks-dir=pyinstaller/hooks \ --add-data "StreamingCommunity${{ matrix.separator }}StreamingCommunity" \ --name=${{ matrix.artifact_name }} test_run.py diff --git a/.github/workflows/update-loc.yml b/.github/workflows/update-loc.yml index ea325fe..a570fed 100644 --- a/.github/workflows/update-loc.yml +++ b/.github/workflows/update-loc.yml @@ -16,12 +16,12 @@ jobs: - name: Count Lines of Code run: | LOC=$(cloc . --json | jq '.SUM.code') - echo "{\"schemaVersion\": 1, \"label\": \"Lines of Code\", \"message\": \"$LOC\", \"color\": \"green\"}" > .github/media/loc-badge.json + echo "{\"schemaVersion\": 1, \"label\": \"Lines of Code\", \"message\": \"$LOC\", \"color\": \"green\"}" > .github/.domain/loc-badge.json - name: Commit and Push LOC Badge run: | git config --local user.name "GitHub Actions" git config --local user.email "actions@github.com" - git add .github/media/loc-badge.json + git add .github/.domain/loc-badge.json git commit -m "Update lines of code badge" || echo "No changes to commit" git push \ No newline at end of file diff --git a/README.md b/README.md index 0780427..1a712a4 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ PyPI Downloads - Lines of Code + Lines of Code

@@ -518,7 +518,7 @@ To enable qBittorrent integration, follow the setup guide [here](https://github. "download_subtitle": true, "merge_subs": true, "specific_list_subtitles": [ - "ita", + "ita", // Specify language codes or use ["*"] to download all available subtitles "eng" ], "cleanup_tmp_folder": true @@ -544,6 +544,8 @@ To enable qBittorrent integration, follow the setup guide [here](https://github. - `download_subtitle`: Whether to download subtitles - `merge_subs`: Whether to merge subtitles with video - `specific_list_subtitles`: List of subtitle languages to download + * Use `["*"]` to download all available subtitles + * Or specify individual languages like `["ita", "eng"]` * Can be changed with `--specific_list_subtitles ita,eng` #### Cleanup diff --git a/StreamingCommunity/Lib/Downloader/HLS/downloader.py b/StreamingCommunity/Lib/Downloader/HLS/downloader.py index 2b56ef2..5d8c5de 100644 --- a/StreamingCommunity/Lib/Downloader/HLS/downloader.py +++ b/StreamingCommunity/Lib/Downloader/HLS/downloader.py @@ -180,10 +180,14 @@ class M3U8Manager: self.sub_streams = [] if ENABLE_SUBTITLE: - self.sub_streams = [ - s for s in (self.parser._subtitle.get_all_uris_and_names() or []) - if s.get('language') in DOWNLOAD_SPECIFIC_SUBTITLE - ] + if "*" in DOWNLOAD_SPECIFIC_SUBTITLE: + self.sub_streams = self.parser._subtitle.get_all_uris_and_names() or [] + + else: + self.sub_streams = [ + s for s in (self.parser._subtitle.get_all_uris_and_names() or []) + if s.get('language') in DOWNLOAD_SPECIFIC_SUBTITLE + ] def log_selection(self): tuple_available_resolution = self.parser._video.get_list_resolution() @@ -209,9 +213,13 @@ class M3U8Manager: f"[red]Set:[/red] {set_codec_info}" ) + # Get available subtitles and their languages available_subtitles = self.parser._subtitle.get_all_uris_and_names() or [] available_sub_languages = [sub.get('language') for sub in available_subtitles] - downloadable_sub_languages = list(set(available_sub_languages) & set(DOWNLOAD_SPECIFIC_SUBTITLE)) + + # If "*" is in DOWNLOAD_SPECIFIC_SUBTITLE, all languages are downloadable + downloadable_sub_languages = available_sub_languages if "*" in DOWNLOAD_SPECIFIC_SUBTITLE else list(set(available_sub_languages) & set(DOWNLOAD_SPECIFIC_SUBTITLE)) + if available_sub_languages: console.print( f"[cyan bold]Subtitle [/cyan bold] [green]Available:[/green] [purple]{', '.join(available_sub_languages)}[/purple] | " diff --git a/StreamingCommunity/global_search.py b/StreamingCommunity/global_search.py index b3c5526..d420de3 100644 --- a/StreamingCommunity/global_search.py +++ b/StreamingCommunity/global_search.py @@ -157,7 +157,7 @@ def global_search(search_terms: str = None, selected_sites: list = None): # Display progress information console.print(f"\n[bold green]Searching for:[/bold green] [yellow]{search_terms}[/yellow]") - console.print(f"[bold green]Searching across:[/bold green] {len(selected_sites)} sites") + console.print(f"[bold green]Searching across:[/bold green] {len(selected_sites)} sites \n") with Progress() as progress: search_task = progress.add_task("[cyan]Searching...", total=len(selected_sites)) @@ -188,7 +188,7 @@ def global_search(search_terms: str = None, selected_sites: list = None): item_dict['source_alias'] = alias all_results[alias].append(item_dict) - console.print(f"[green]Found {len(database.media_list)} results from {site_name}") + console.print(f"\n[green]Found {len(database.media_list)} results from {site_name}") except Exception as e: console.print(f"[bold red]Error searching {site_name}:[/bold red] {str(e)}")