Skip to content

Commit 3d2ed77

Browse files
committed
Bump v3.3.1
1 parent dd20b29 commit 3d2ed77

File tree

23 files changed

+148
-227
lines changed

23 files changed

+148
-227
lines changed

.github/.domain/domains.json

Lines changed: 48 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,50 @@
11
{
2-
"cb01new": {
3-
"domain": "quest",
4-
"full_url": "https://cb01net.quest/",
5-
"old_domain": "pics",
6-
"time_change": "2025-09-01 20:20:23"
7-
},
8-
"animeunity": {
9-
"domain": "so",
10-
"full_url": "https://www.animeunity.so/",
11-
"old_domain": "so",
12-
"time_change": "2025-07-08 13:59:31"
13-
},
14-
"animeworld": {
15-
"domain": "ac",
16-
"full_url": "https://www.animeworld.ac/",
17-
"old_domain": "ac",
18-
"time_change": "2025-03-21 12:20:27"
19-
},
20-
"guardaserie": {
21-
"domain": "sale",
22-
"full_url": "https://guardaserietv.sale/",
23-
"old_domain": "app",
24-
"time_change": "2025-08-20 07:20:06"
25-
},
26-
"streamingwatch": {
27-
"domain": "org",
28-
"full_url": "https://www.streamingwatch.org/",
29-
"old_domain": "org",
30-
"time_change": "2025-04-29 12:30:30"
31-
},
32-
"altadefinizione": {
33-
"domain": "center",
34-
"full_url": "https://altadefinizionegratis.center/",
35-
"old_domain": "free",
36-
"time_change": "2025-09-04 14:18:54"
37-
},
38-
"streamingcommunity": {
39-
"domain": "bid",
40-
"full_url": "https://streamingcommunityz.bid/",
41-
"old_domain": "chat",
42-
"time_change": "2025-09-01 15:20:03"
43-
},
44-
"altadefinizionegratis": {
45-
"domain": "center",
46-
"full_url": "https://altadefinizionegratis.center/",
47-
"old_domain": "cool",
48-
"time_change": "2025-08-25 18:30:42"
49-
}
2+
"cb01new": {
3+
"domain": "quest",
4+
"full_url": "https://cb01net.quest/",
5+
"old_domain": "pics",
6+
"time_change": "2025-09-01 20:20:23"
7+
},
8+
"animeunity": {
9+
"domain": "so",
10+
"full_url": "https://www.animeunity.so/",
11+
"old_domain": "so",
12+
"time_change": "2025-07-08 13:59:31"
13+
},
14+
"animeworld": {
15+
"domain": "ac",
16+
"full_url": "https://www.animeworld.ac/",
17+
"old_domain": "ac",
18+
"time_change": "2025-03-21 12:20:27"
19+
},
20+
"guardaserie": {
21+
"domain": "sale",
22+
"full_url": "https://guardaserietv.sale/",
23+
"old_domain": "app",
24+
"time_change": "2025-08-20 07:20:06"
25+
},
26+
"streamingwatch": {
27+
"domain": "org",
28+
"full_url": "https://www.streamingwatch.org/",
29+
"old_domain": "org",
30+
"time_change": "2025-04-29 12:30:30"
31+
},
32+
"altadefinizione": {
33+
"domain": "center",
34+
"full_url": "https://altadefinizionegratis.center/",
35+
"old_domain": "free",
36+
"time_change": "2025-09-04 14:18:54"
37+
},
38+
"streamingcommunity": {
39+
"domain": "bid",
40+
"full_url": "https://streamingcommunityz.bid/",
41+
"old_domain": "chat",
42+
"time_change": "2025-09-01 15:20:03"
43+
},
44+
"altadefinizionegratis": {
45+
"domain": "center",
46+
"full_url": "https://altadefinizionegratis.center/",
47+
"old_domain": "cool",
48+
"time_change": "2025-08-25 18:30:42"
49+
}
5050
}

.github/workflows/build.yml

Lines changed: 18 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
# Workflow: Build and Publish
2-
# Author: Arrowar
3-
41
name: Build and Publish
2+
53
on:
64
workflow_dispatch:
75
inputs:
@@ -21,24 +19,30 @@ jobs:
2119
publish:
2220
if: startsWith(github.ref_name, 'v') || (github.event_name == 'workflow_dispatch' && github.event.inputs.publish_pypi == 'true')
2321
runs-on: ubuntu-latest
22+
2423
steps:
2524
- name: Checkout repository
2625
uses: actions/checkout@v4
2726
with:
2827
fetch-depth: 0
28+
2929
- name: Get the latest tag
3030
id: get_latest_tag
3131
run: echo "latest_tag=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
32+
3233
- name: Set up Python
3334
uses: actions/setup-python@v4
3435
with:
35-
python-version: '3.12'
36+
python-version: '3.13'
37+
3638
- name: Install packaging dependencies
3739
run: |
3840
python -m pip install --upgrade pip
3941
python -m pip install --upgrade setuptools>=61.0.0 wheel twine build
42+
4043
- name: Build package
4144
run: python -m build
45+
4246
- name: Upload to PyPI
4347
env:
4448
TWINE_USERNAME: __token__
@@ -47,33 +51,35 @@ jobs:
4751

4852
build:
4953
if: startsWith(github.ref_name, 'v') || (github.event_name == 'workflow_dispatch' && github.event.inputs.publish_pypi == 'false')
54+
5055
strategy:
5156
matrix:
5257
include:
5358
- os: windows-latest
5459
artifact_name: StreamingCommunity_win
5560
executable: StreamingCommunity_win.exe
5661
separator: ';'
57-
is_windows: true
62+
5863
- os: macos-latest
5964
artifact_name: StreamingCommunity_mac
6065
executable: StreamingCommunity_mac
6166
separator: ':'
62-
is_windows: false
67+
6368
- os: ubuntu-latest
6469
artifact_name: StreamingCommunity_linux_latest
6570
executable: StreamingCommunity_linux_latest
6671
separator: ':'
67-
is_windows: false
72+
6873
- os: ubuntu-22.04
6974
artifact_name: StreamingCommunity_linux_previous
7075
executable: StreamingCommunity_linux_previous
7176
separator: ':'
72-
is_windows: false
77+
7378
runs-on: ${{ matrix.os }}
7479
defaults:
7580
run:
7681
shell: bash
82+
7783
steps:
7884
- name: Checkout repository
7985
uses: actions/checkout@v4
@@ -99,24 +105,10 @@ jobs:
99105
python -m pip install -r requirements.txt
100106
python -m pip install pyinstaller
101107
102-
- name: Create version file for Windows (inline)
103-
if: matrix.is_windows
104-
shell: bash
105-
run: |
106-
cat <<EOF > version.txt
107-
# UTF-8
108-
[Version]
109-
CompanyName=Arrowar
110-
FileDescription=StreamingCommunity by Arrowar
111-
LegalCopyright=© Arrowar
112-
ProductName=StreamingCommunity
113-
ProductVersion=3.3.1
114-
EOF
115-
116108
- name: Build executable with PyInstaller
117109
shell: bash
118110
run: |
119-
CMD="pyinstaller --onefile --hidden-import=pycryptodomex --hidden-import=ua_generator \
111+
pyinstaller --onefile --hidden-import=pycryptodomex --hidden-import=ua_generator \
120112
--hidden-import=qbittorrentapi --hidden-import=qbittorrent \
121113
--hidden-import=bs4 --hidden-import=httpx --hidden-import=rich --hidden-import=tqdm \
122114
--hidden-import=m3u8 --hidden-import=psutil --hidden-import=unidecode \
@@ -138,18 +130,8 @@ jobs:
138130
--hidden-import=curl_cffi --hidden-import=_cffi_backend \
139131
--collect-all curl_cffi \
140132
--additional-hooks-dir=pyinstaller/hooks \
141-
--add-data \"StreamingCommunity${{ matrix.separator }}StreamingCommunity\" \
142-
--name=${{ matrix.artifact_name }}"
143-
144-
# Aggiungi il file version.txt solo su Windows
145-
if [[ "${{ matrix.is_windows }}" == "true" ]]; then
146-
CMD+=" --version-file=version.txt"
147-
fi
148-
149-
CMD+=" test_run.py"
150-
151-
echo "Running: $CMD"
152-
eval $CMD
133+
--add-data "StreamingCommunity${{ matrix.separator }}StreamingCommunity" \
134+
--name=${{ matrix.artifact_name }} test_run.py
153135
154136
- name: Upload executable
155137
uses: actions/upload-artifact@v4
@@ -164,4 +146,4 @@ jobs:
164146
tag_name: ${{ github.ref_name }}
165147
files: dist/${{ matrix.executable }}
166148
env:
167-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
149+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/testing.yml

Lines changed: 0 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -50,48 +50,6 @@ jobs:
5050
run: |
5151
PYTHONPATH=$PYTHONPATH:$(pwd) python -m Test.Util.osPath
5252
53-
test-hls-download:
54-
name: Test HLS Download
55-
runs-on: ubuntu-latest
56-
57-
steps:
58-
- uses: actions/checkout@v3
59-
60-
- name: Set up Python
61-
uses: actions/setup-python@v4
62-
with:
63-
python-version: '3.11'
64-
65-
- name: Install dependencies
66-
run: |
67-
python -m pip install --upgrade pip
68-
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
69-
70-
- name: Run HLS download test
71-
run: |
72-
PYTHONPATH=$PYTHONPATH:$(pwd) python -m unittest Test.Download.HLS
73-
74-
test-mp4-download:
75-
name: Test MP4 Download
76-
runs-on: ubuntu-latest
77-
78-
steps:
79-
- uses: actions/checkout@v3
80-
81-
- name: Set up Python
82-
uses: actions/setup-python@v4
83-
with:
84-
python-version: '3.11'
85-
86-
- name: Install dependencies
87-
run: |
88-
python -m pip install --upgrade pip
89-
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
90-
91-
- name: Run MP4 download test
92-
run: |
93-
PYTHONPATH=$PYTHONPATH:$(pwd) python -m unittest Test.Download.MP4
94-
9553
ruff-lint:
9654
name: Lint with Ruff
9755
runs-on: ubuntu-latest

StreamingCommunity/Api/Site/altadefinizione/__init__.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,17 @@ def process_search_result(select_title, selections=None):
8080
select_title (MediaItem): The selected media item
8181
selections (dict, optional): Dictionary containing selection inputs that bypass manual input
8282
{'season': season_selection, 'episode': episode_selection}
83+
84+
Returns:
85+
bool: True if processing was successful, False otherwise
8386
"""
8487
if not select_title:
8588
if site_constant.TELEGRAM_BOT:
8689
bot = get_bot_instance()
8790
bot.send_message("No title selected or selection cancelled.", None)
8891
else:
8992
console.print("[yellow]No title selected or selection cancelled.")
90-
return
93+
return False
9194

9295
if select_title.type == 'tv':
9396
season_selection = None
@@ -98,9 +101,11 @@ def process_search_result(select_title, selections=None):
98101
episode_selection = selections.get('episode')
99102

100103
download_series(select_title, season_selection, episode_selection)
104+
return True
101105

102106
else:
103107
download_film(select_title)
108+
return True
104109

105110
# search("Game of Thrones", selections={"season": "1", "episode": "1-3"})
106111
def search(string_to_search: str = None, get_onlyDatabase: bool = False, direct_item: dict = None, selections: dict = None):

StreamingCommunity/Api/Site/animeunity/__init__.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,21 @@ def process_search_result(select_title, selections=None):
7979
select_title (MediaItem): The selected media item
8080
selections (dict, optional): Dictionary containing selection inputs that bypass manual input
8181
{'season': season_selection, 'episode': episode_selection}
82+
83+
Returns:
84+
bool: True if processing was successful, False otherwise
8285
"""
8386
if not select_title:
8487
if site_constant.TELEGRAM_BOT:
8588
bot = get_bot_instance()
8689
bot.send_message("No title selected or selection cancelled.", None)
8790
else:
8891
console.print("[yellow]No title selected or selection cancelled.")
89-
return
92+
return False
9093

9194
if select_title.type == 'Movie':
9295
download_film(select_title)
96+
return True
9397

9498
else:
9599
season_selection = None
@@ -100,6 +104,7 @@ def process_search_result(select_title, selections=None):
100104
episode_selection = selections.get('episode')
101105

102106
download_series(select_title, season_selection, episode_selection)
107+
return True
103108

104109
def search(string_to_search: str = None, get_onlyDatabase: bool = False, direct_item: dict = None, selections: dict = None):
105110
"""

StreamingCommunity/Api/Site/animeworld/__init__.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# 21.03.25
22

3+
import sys
4+
import subprocess
5+
6+
37
# External library
48
from rich.console import Console
59
from rich.prompt import Prompt
@@ -75,23 +79,28 @@ def process_search_result(select_title, selections=None):
7579
select_title (MediaItem): The selected media item
7680
selections (dict, optional): Dictionary containing selection inputs that bypass manual input
7781
{'season': season_selection, 'episode': episode_selection}
82+
83+
Returns:
84+
bool: True if processing was successful, False otherwise
7885
"""
7986
if not select_title:
8087
if site_constant.TELEGRAM_BOT:
8188
bot = get_bot_instance()
8289
bot.send_message("No title selected or selection cancelled.", None)
8390
else:
8491
console.print("[yellow]No title selected or selection cancelled.")
85-
return
92+
return False
8693

8794
if select_title.type == "TV":
8895
episode_selection = None
8996
if selections:
9097
episode_selection = selections.get('episode')
9198
download_series(select_title, episode_selection)
99+
return True
92100

93101
else:
94102
download_film(select_title)
103+
return True
95104

96105
def search(string_to_search: str = None, get_onlyDatabase: bool = False, direct_item: dict = None, selections: dict = None):
97106
"""

0 commit comments

Comments
 (0)