Core: Add arm64 version.

This commit is contained in:
Lovi 2025-06-06 12:30:20 +02:00
parent f4529e5f05
commit 49e038a2c8
7 changed files with 43 additions and 15 deletions

View File

@ -48,10 +48,10 @@
"time_change": "2025-05-26 23:22:45" "time_change": "2025-05-26 23:22:45"
}, },
"streamingcommunity": { "streamingcommunity": {
"domain": "bid", "domain": "art",
"full_url": "https://streamingunity.bid/", "full_url": "https://streamingunity.art/",
"old_domain": "bio", "old_domain": "bid",
"time_change": "2025-06-03 15:27:02" "time_change": "2025-06-05 11:18:33"
}, },
"altadefinizionegratis": { "altadefinizionegratis": {
"domain": "cc", "domain": "cc",

View File

@ -75,9 +75,24 @@ jobs:
executable: StreamingCommunity_linux_previous executable: StreamingCommunity_linux_previous
separator: ':' separator: ':'
# ARM64 build
- os: ubuntu-latest
artifact_name: StreamingCommunity_linux_arm64
executable: StreamingCommunity_linux_arm64
separator: ':'
architecture: arm64
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
# For ARM64, set architecture if present
defaults:
run:
shell: bash
steps: steps:
- name: Set up QEMU (for ARM64)
if: ${{ matrix.architecture == 'arm64' }}
uses: docker/setup-qemu-action@v3
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
@ -94,6 +109,7 @@ jobs:
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
python-version: '3.12' python-version: '3.12'
architecture: ${{ matrix.architecture || 'x64' }}
- name: Install dependencies - name: Install dependencies
run: | run: |
@ -122,6 +138,8 @@ jobs:
--hidden-import=Cryptodome.Util --hidden-import=Cryptodome.Util.Padding \ --hidden-import=Cryptodome.Util --hidden-import=Cryptodome.Util.Padding \
--hidden-import=Cryptodome.Random \ --hidden-import=Cryptodome.Random \
--hidden-import=telebot \ --hidden-import=telebot \
--hidden-import=curl_cffi --hidden-import=_cffi_backend \
--collect-all curl_cffi \
--additional-hooks-dir=pyinstaller/hooks \ --additional-hooks-dir=pyinstaller/hooks \
--add-data "StreamingCommunity${{ matrix.separator }}StreamingCommunity" \ --add-data "StreamingCommunity${{ matrix.separator }}StreamingCommunity" \
--name=${{ matrix.artifact_name }} test_run.py --name=${{ matrix.artifact_name }} test_run.py

View File

@ -16,12 +16,12 @@ jobs:
- name: Count Lines of Code - name: Count Lines of Code
run: | run: |
LOC=$(cloc . --json | jq '.SUM.code') 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 - name: Commit and Push LOC Badge
run: | run: |
git config --local user.name "GitHub Actions" git config --local user.name "GitHub Actions"
git config --local user.email "actions@github.com" 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 commit -m "Update lines of code badge" || echo "No changes to commit"
git push git push

View File

@ -25,7 +25,7 @@
<img src="https://img.shields.io/pypi/dm/streamingcommunity?style=for-the-badge" alt="PyPI Downloads"/> <img src="https://img.shields.io/pypi/dm/streamingcommunity?style=for-the-badge" alt="PyPI Downloads"/>
</a> </a>
<a href="https://github.com/Arrowar/StreamingCommunity"> <a href="https://github.com/Arrowar/StreamingCommunity">
<img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Arrowar/StreamingCommunity/main/.github/media/loc-badge.json&style=for-the-badge" alt="Lines of Code"/> <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Arrowar/StreamingCommunity/main/.github/.domain/loc-badge.json&style=for-the-badge" alt="Lines of Code"/>
</a> </a>
</p> </p>
@ -518,7 +518,7 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
"download_subtitle": true, "download_subtitle": true,
"merge_subs": true, "merge_subs": true,
"specific_list_subtitles": [ "specific_list_subtitles": [
"ita", "ita", // Specify language codes or use ["*"] to download all available subtitles
"eng" "eng"
], ],
"cleanup_tmp_folder": true "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 - `download_subtitle`: Whether to download subtitles
- `merge_subs`: Whether to merge subtitles with video - `merge_subs`: Whether to merge subtitles with video
- `specific_list_subtitles`: List of subtitle languages to download - `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` * Can be changed with `--specific_list_subtitles ita,eng`
#### Cleanup #### Cleanup

View File

@ -180,6 +180,10 @@ class M3U8Manager:
self.sub_streams = [] self.sub_streams = []
if ENABLE_SUBTITLE: if ENABLE_SUBTITLE:
if "*" in DOWNLOAD_SPECIFIC_SUBTITLE:
self.sub_streams = self.parser._subtitle.get_all_uris_and_names() or []
else:
self.sub_streams = [ self.sub_streams = [
s for s in (self.parser._subtitle.get_all_uris_and_names() or []) s for s in (self.parser._subtitle.get_all_uris_and_names() or [])
if s.get('language') in DOWNLOAD_SPECIFIC_SUBTITLE if s.get('language') in DOWNLOAD_SPECIFIC_SUBTITLE
@ -209,9 +213,13 @@ class M3U8Manager:
f"[red]Set:[/red] {set_codec_info}" 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_subtitles = self.parser._subtitle.get_all_uris_and_names() or []
available_sub_languages = [sub.get('language') for sub in available_subtitles] 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: if available_sub_languages:
console.print( console.print(
f"[cyan bold]Subtitle [/cyan bold] [green]Available:[/green] [purple]{', '.join(available_sub_languages)}[/purple] | " f"[cyan bold]Subtitle [/cyan bold] [green]Available:[/green] [purple]{', '.join(available_sub_languages)}[/purple] | "

View File

@ -157,7 +157,7 @@ def global_search(search_terms: str = None, selected_sites: list = None):
# Display progress information # Display progress information
console.print(f"\n[bold green]Searching for:[/bold green] [yellow]{search_terms}[/yellow]") 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: with Progress() as progress:
search_task = progress.add_task("[cyan]Searching...", total=len(selected_sites)) 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 item_dict['source_alias'] = alias
all_results[alias].append(item_dict) 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: except Exception as e:
console.print(f"[bold red]Error searching {site_name}:[/bold red] {str(e)}") console.print(f"[bold red]Error searching {site_name}:[/bold red] {str(e)}")