StreamingCommunity 3.0.6__py3-none-any.whl → 3.0.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of StreamingCommunity might be problematic. Click here for more details.

Files changed (32) hide show
  1. StreamingCommunity/Api/Player/maxstream.py +141 -0
  2. StreamingCommunity/Api/Player/vixcloud.py +5 -3
  3. StreamingCommunity/Api/Site/1337xx/__init__.py +2 -2
  4. StreamingCommunity/Api/Site/altadefinizione/__init__.py +2 -2
  5. StreamingCommunity/Api/Site/altadefinizione/film.py +15 -35
  6. StreamingCommunity/Api/Site/animeunity/__init__.py +1 -1
  7. StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py +21 -23
  8. StreamingCommunity/Api/Site/animeworld/__init__.py +1 -1
  9. StreamingCommunity/Api/Site/cb01new/__init__.py +72 -0
  10. StreamingCommunity/Api/Site/cb01new/film.py +62 -0
  11. StreamingCommunity/Api/Site/cb01new/site.py +78 -0
  12. StreamingCommunity/Api/Site/guardaserie/__init__.py +1 -1
  13. StreamingCommunity/Api/Site/raiplay/__init__.py +1 -1
  14. StreamingCommunity/Api/Site/streamingcommunity/__init__.py +86 -52
  15. StreamingCommunity/Api/Site/streamingcommunity/film.py +2 -2
  16. StreamingCommunity/Api/Site/streamingcommunity/series.py +4 -4
  17. StreamingCommunity/Api/Site/streamingcommunity/site.py +7 -4
  18. StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +6 -3
  19. StreamingCommunity/Api/Site/streamingwatch/__init__.py +10 -4
  20. StreamingCommunity/Api/Site/streamingwatch/site.py +12 -5
  21. StreamingCommunity/Api/Template/site.py +103 -58
  22. StreamingCommunity/Lib/Proxies/proxy.py +14 -174
  23. StreamingCommunity/TelegramHelp/config.json +62 -0
  24. StreamingCommunity/TelegramHelp/telegram_bot.py +4 -0
  25. StreamingCommunity/Upload/version.py +1 -1
  26. StreamingCommunity/run.py +2 -2
  27. {streamingcommunity-3.0.6.dist-info → streamingcommunity-3.0.7.dist-info}/METADATA +30 -12
  28. {streamingcommunity-3.0.6.dist-info → streamingcommunity-3.0.7.dist-info}/RECORD +32 -27
  29. {streamingcommunity-3.0.6.dist-info → streamingcommunity-3.0.7.dist-info}/WHEEL +1 -1
  30. {streamingcommunity-3.0.6.dist-info → streamingcommunity-3.0.7.dist-info}/entry_points.txt +0 -0
  31. {streamingcommunity-3.0.6.dist-info → streamingcommunity-3.0.7.dist-info}/licenses/LICENSE +0 -0
  32. {streamingcommunity-3.0.6.dist-info → streamingcommunity-3.0.7.dist-info}/top_level.txt +0 -0
@@ -1,20 +1,15 @@
1
1
  # 29.04.25
2
2
 
3
- import os
4
3
  import sys
5
4
  import time
6
- import json
7
5
  import signal
8
6
  import warnings
9
7
  warnings.filterwarnings("ignore", category=UserWarning)
10
- from datetime import datetime, timedelta
11
- from concurrent.futures import ThreadPoolExecutor, as_completed
12
8
 
13
9
 
14
10
  # External library
15
11
  import httpx
16
12
  from rich import print
17
- from rich.progress import Progress, SpinnerColumn, BarColumn, TextColumn, TimeRemainingColumn
18
13
 
19
14
 
20
15
  # Internal utilities
@@ -27,118 +22,18 @@ MAX_TIMEOUT = config_manager.get_int("REQUESTS", "timeout")
27
22
 
28
23
 
29
24
  class ProxyFinder:
30
- def __init__(self, url, timeout_threshold: float = 7.0, max_proxies: int = 150, max_workers: int = 12):
25
+ def __init__(self, url, timeout_threshold: float = 7.0):
31
26
  self.url = url
32
27
  self.timeout_threshold = timeout_threshold
33
- self.max_proxies = max_proxies
34
- self.max_workers = max_workers
35
- self.found_proxy = None
36
28
  self.shutdown_flag = False
37
- self.json_file = os.path.join(os.path.dirname(__file__), 'working_proxies.json')
38
29
  signal.signal(signal.SIGINT, self._handle_interrupt)
39
30
 
40
- def load_saved_proxies(self) -> tuple:
41
- """Load saved proxies if they're not expired (2 hours old)"""
42
- try:
43
- if not os.path.exists(self.json_file):
44
- return None, None
45
-
46
- with open(self.json_file, 'r') as f:
47
- data = json.load(f)
48
-
49
- if not data.get('proxies') or not data.get('last_update'):
50
- return None, None
51
-
52
- last_update = datetime.fromisoformat(data['last_update'])
53
- if datetime.now() - last_update > timedelta(hours=2):
54
- return None, None
55
-
56
- return data['proxies'], last_update
57
- except Exception:
58
- return None, None
59
-
60
- def save_working_proxy(self, proxy: str, response_time: float):
61
- """Save working proxy to JSON file"""
62
- data = {
63
- 'proxies': [{'proxy': proxy, 'response_time': response_time}],
64
- 'last_update': datetime.now().isoformat()
65
- }
66
- try:
67
- with open(self.json_file, 'w') as f:
68
- json.dump(data, f, indent=4)
69
- except Exception as e:
70
- print(f"[bold red]Error saving proxy:[/bold red] {str(e)}")
71
-
72
- def fetch_geonode(self) -> list:
73
- proxies = []
74
- try:
75
- response = httpx.get(
76
- "https://proxylist.geonode.com/api/proxy-list?protocols=http%2Chttps&limit=100&page=1&sort_by=speed&sort_type=asc",
77
- headers=get_headers(),
78
- timeout=MAX_TIMEOUT
79
- )
80
- data = response.json()
81
- proxies = [(f"http://{p['ip']}:{p['port']}", "Geonode") for p in data.get('data', [])]
82
-
83
- except Exception as e:
84
- print(f"[bold red]Error in Geonode:[/bold red] {str(e)[:100]}")
85
-
86
- return proxies
87
-
88
- def fetch_proxyscrape(self) -> list:
89
- proxies = []
90
- try:
91
- response = httpx.get(
92
- "https://api.proxyscrape.com/v4/free-proxy-list/get?request=get_proxies&protocol=http&skip=0&proxy_format=protocolipport&format=json&limit=100&timeout=1000",
93
- headers=get_headers(),
94
- timeout=MAX_TIMEOUT
95
- )
96
- data = response.json()
97
- if 'proxies' in data and isinstance(data['proxies'], list):
98
- proxies = [(proxy_data['proxy'], "ProxyScrape") for proxy_data in data['proxies'] if 'proxy' in proxy_data]
99
-
100
- except Exception as e:
101
- print(f"[bold red]Error in ProxyScrape:[/bold red] {str(e)[:100]}")
102
-
103
- return proxies
104
-
105
- def fetch_proxies_from_sources(self) -> list:
106
- #print("[cyan]Fetching proxies from sources...[/cyan]")
107
- with ThreadPoolExecutor(max_workers=3) as executor:
108
- proxyscrape_future = executor.submit(self.fetch_proxyscrape)
109
- geonode_future = executor.submit(self.fetch_geonode)
110
-
111
- sources_proxies = {}
112
-
113
- try:
114
- proxyscrape_result = proxyscrape_future.result()
115
- sources_proxies["proxyscrape"] = proxyscrape_result[:int(self.max_proxies/2)]
116
- except Exception as e:
117
- print(f"[bold red]Error fetching from proxyscrape:[/bold red] {str(e)[:100]}")
118
- sources_proxies["proxyscrape"] = []
119
-
120
- try:
121
- geonode_result = geonode_future.result()
122
- sources_proxies["geonode"] = geonode_result[:int(self.max_proxies/2)]
123
- except Exception as e:
124
- print(f"[bold red]Error fetching from geonode:[/bold red] {str(e)[:100]}")
125
- sources_proxies["geonode"] = []
126
-
127
- merged_proxies = []
128
-
129
- if "proxyscrape" in sources_proxies:
130
- merged_proxies.extend(sources_proxies["proxyscrape"])
131
-
132
- if "geonode" in sources_proxies:
133
- merged_proxies.extend(sources_proxies["geonode"])
134
-
135
- proxy_list = merged_proxies[:self.max_proxies]
136
- return proxy_list
137
-
138
31
  def _test_single_request(self, proxy_info: tuple) -> tuple:
139
32
  proxy, source = proxy_info
140
33
  try:
141
34
  start = time.time()
35
+ print(f"[yellow]Testing proxy for URL: {self.url}...")
36
+
142
37
  with httpx.Client(proxy=proxy, timeout=self.timeout_threshold) as client:
143
38
  response = client.get(self.url, headers=get_headers())
144
39
  if response.status_code == 200:
@@ -161,72 +56,17 @@ class ProxyFinder:
161
56
  return (proxy, success2 and time2 <= self.timeout_threshold, avg_time, text1, source)
162
57
 
163
58
  def _handle_interrupt(self, sig, frame):
164
- print("\n[bold yellow]Received keyboard interrupt. Terminating...[/bold yellow]")
59
+ print("\n[red]Received keyboard interrupt. Terminating...")
165
60
  self.shutdown_flag = True
166
61
  sys.exit(0)
167
62
 
168
- def find_fast_proxy(self) -> tuple:
169
- saved_proxies, last_update = self.load_saved_proxies()
170
- if saved_proxies:
171
- print("[cyan]Testing saved proxy...[/cyan]")
172
- for proxy_data in saved_proxies:
173
- result = self.test_proxy((proxy_data['proxy'], 'cached'))
174
- if result[1]:
175
- return proxy_data['proxy'], result[3], result[2]
176
- else:
177
- print(f"[red]Saved proxy {proxy_data['proxy']} failed - response time: {result[2]:.2f}s[/red]")
178
-
179
- proxies = self.fetch_proxies_from_sources()
180
- if not proxies:
181
- print("[bold red]No proxies fetched to test.[/bold red]")
182
- return (None, None, None)
183
-
184
- found_proxy = None
185
- response_text = None
186
- source = None
187
- failed_count = 0
188
- success_count = 0
189
-
190
- #print(f"[cyan]Testing {len(proxies)} proxies...[/cyan]")
191
- with ThreadPoolExecutor(max_workers=self.max_workers) as executor:
192
- futures = {executor.submit(self.test_proxy, p): p for p in proxies}
193
- with Progress(
194
- SpinnerColumn(),
195
- TextColumn("[progress.description]{task.description}"),
196
- BarColumn(),
197
- TextColumn("[progress.percentage]{task.percentage:>3.0f}%"),
198
- TextColumn("[cyan]{task.fields[success]}[/cyan]/[red]{task.fields[failed]}[/red]"),
199
- TimeRemainingColumn(),
200
- ) as progress:
201
- task = progress.add_task(
202
- "[cyan]Testing Proxies",
203
- total=len(futures),
204
- success=success_count,
205
- failed=failed_count
206
- )
207
-
208
- for future in as_completed(futures):
209
- if self.shutdown_flag:
210
- break
211
-
212
- try:
213
- proxy, success, elapsed, response, proxy_source = future.result()
214
- if success:
215
- success_count += 1
216
- print(f"[bold green]Found valid proxy:[/bold green] {proxy} ({elapsed:.2f}s)")
217
- found_proxy = proxy
218
- response_text = response
219
- self.save_working_proxy(proxy, elapsed)
220
- self.shutdown_flag = True
221
- break
222
- else:
223
- failed_count += 1
224
- except Exception:
225
- failed_count += 1
226
-
227
- progress.update(task, advance=1, success=success_count, failed=failed_count)
228
-
229
- if not found_proxy:
230
- print("[bold red]No working proxies found[/bold red]")
231
-
232
- return (found_proxy, response_text, source)
63
+ def find_fast_proxy(self) -> str:
64
+ try:
65
+ proxy_config = config_manager.get("REQUESTS", "proxy")
66
+ if proxy_config and isinstance(proxy_config, dict) and 'http' in proxy_config:
67
+ print("[cyan]Using configured proxy from config.json...[/cyan]")
68
+ return proxy_config['http']
69
+ except Exception as e:
70
+ print(f"[red]Error getting configured proxy: {str(e)}[/red]")
71
+
72
+ return None
@@ -0,0 +1,62 @@
1
+ {
2
+ "DEFAULT": {
3
+ "debug": false,
4
+ "show_message": true,
5
+ "clean_console": true,
6
+ "show_trending": true,
7
+ "use_api": true,
8
+ "not_close": false,
9
+ "telegram_bot": true,
10
+ "download_site_data": true,
11
+ "validate_github_config": true
12
+ },
13
+ "OUT_FOLDER": {
14
+ "root_path": "/mnt/data/media/",
15
+ "movie_folder_name": "films",
16
+ "serie_folder_name": "serie_tv",
17
+ "anime_folder_name": "Anime",
18
+ "map_episode_name": "E%(episode)_%(episode_name)",
19
+ "add_siteName": false
20
+ },
21
+ "QBIT_CONFIG": {
22
+ "host": "192.168.1.51",
23
+ "port": "6666",
24
+ "user": "admin",
25
+ "pass": "adminadmin"
26
+ },
27
+ "M3U8_DOWNLOAD": {
28
+ "tqdm_delay": 0.01,
29
+ "default_video_workser": 12,
30
+ "default_audio_workser": 12,
31
+ "segment_timeout": 8,
32
+ "download_audio": true,
33
+ "merge_audio": true,
34
+ "specific_list_audio": [
35
+ "ita"
36
+ ],
37
+ "download_subtitle": true,
38
+ "merge_subs": true,
39
+ "specific_list_subtitles": [
40
+ "ita",
41
+ "eng"
42
+ ],
43
+ "cleanup_tmp_folder": true
44
+ },
45
+ "M3U8_CONVERSION": {
46
+ "use_codec": false,
47
+ "use_vcodec": true,
48
+ "use_acodec": true,
49
+ "use_bitrate": true,
50
+ "use_gpu": false,
51
+ "default_preset": "ultrafast"
52
+ },
53
+ "M3U8_PARSER": {
54
+ "force_resolution": "Best",
55
+ "get_only_link": false
56
+ },
57
+ "REQUESTS": {
58
+ "verify": false,
59
+ "timeout": 20,
60
+ "max_retry": 8
61
+ }
62
+ }
@@ -575,6 +575,10 @@ class TelegramBot:
575
575
  cleaned_output = cleaned_output.replace(
576
576
  "\n\n", "\n"
577
577
  ) # Rimuovi newline multipli
578
+
579
+ # Inizializza le variabili
580
+ cleaned_output_0 = None # o ""
581
+ cleaned_output_1 = None # o ""
578
582
 
579
583
  # Dentro cleaned_output c'è una stringa recupero quello che si trova tra ## ##
580
584
  download_section = re.search(r"##(.*?)##", cleaned_output, re.DOTALL)
@@ -1,5 +1,5 @@
1
1
  __title__ = 'StreamingCommunity'
2
- __version__ = '3.0.6'
2
+ __version__ = '3.0.7'
3
3
  __author__ = 'Arrowar'
4
4
  __description__ = 'A command-line program to download film'
5
5
  __copyright__ = 'Copyright 2024'
StreamingCommunity/run.py CHANGED
@@ -219,8 +219,8 @@ def main(script_id = 0):
219
219
  console.print("[blue]• Quad9 (9.9.9.9) 'https://docs.quad9.net/Setup_Guides/Windows/Windows_10/'")
220
220
  console.print("\n[yellow]⚠️ The program will not work until you configure your DNS settings.")
221
221
 
222
- time.sleep(1)
223
- msg.ask("[yellow]Press Enter to exit...")
222
+ time.sleep(2)
223
+ msg.ask("[yellow]Press Enter to continue ...")
224
224
 
225
225
  # Load search functions
226
226
  search_functions = load_search_functions()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: StreamingCommunity
3
- Version: 3.0.6
3
+ Version: 3.0.7
4
4
  Home-page: https://github.com/Lovi-0/StreamingCommunity
5
5
  Author: Lovi-0
6
6
  Project-URL: Bug Reports, https://github.com/Lovi-0/StreamingCommunity/issues
@@ -506,7 +506,11 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
506
506
  "REQUESTS": {
507
507
  "verify": false,
508
508
  "timeout": 20,
509
- "max_retry": 8
509
+ "max_retry": 8,
510
+ "proxy": {
511
+ "http": "http://username:password@host:port",
512
+ "https": "https://username:password@host:port"
513
+ }
510
514
  }
511
515
  }
512
516
  ```
@@ -514,6 +518,22 @@ To enable qBittorrent integration, follow the setup guide [here](https://github.
514
518
  - `verify`: Verifies SSL certificates
515
519
  - `timeout`: Maximum timeout (in seconds) for each request
516
520
  - `max_retry`: Number of retry attempts per segment during M3U8 index download
521
+ - `proxy`: Proxy configuration for HTTP/HTTPS requests
522
+ * Set to empty string `""` to disable proxies (default)
523
+ * Example with authentication:
524
+ ```json
525
+ "proxy": {
526
+ "http": "http://username:password@host:port",
527
+ "https": "https://username:password@host:port"
528
+ }
529
+ ```
530
+ * Example without authentication:
531
+ ```json
532
+ "proxy": {
533
+ "http": "http://host:port",
534
+ "https": "https://host:port"
535
+ }
536
+ ```
517
537
  </details>
518
538
 
519
539
  <details>
@@ -764,26 +784,24 @@ The `run-container` command mounts also the `config.json` file, so any change to
764
784
  The bot was created to replace terminal commands and allow interaction via Telegram. Each download runs within a screen session, enabling multiple downloads to run simultaneously.
765
785
 
766
786
  To run the bot in the background, simply start it inside a screen session and then press Ctrl + A, followed by D, to detach from the session without stopping the bot.
767
- </details>
768
-
769
- <details>
770
- <summary>🤖 Bot Commands</summary>
771
787
 
772
788
  Command Functions:
773
789
 
774
790
  🔹 /start – Starts a new search for a download. This command performs the same operations as manually running the script in the terminal with test_run.py.
775
791
 
776
792
  🔹 /list – Displays the status of active downloads, with options to:
777
- - Stop an incorrect download using /stop <ID>
778
- - View the real-time output of a download using /screen <ID>
793
+
794
+ Stop an incorrect download using /stop <ID>.
795
+
796
+ View the real-time output of a download using /screen <ID>.
779
797
 
780
798
  ⚠ Warning: If a download is interrupted, incomplete files may remain in the folder specified in config.json. These files must be deleted manually to avoid storage or management issues.
781
- </details>
782
799
 
783
- <details>
784
- <summary>🔧 Environment Setup</summary>
800
+ 🛠 Configuration: Currently, the bot's settings are stored in the config.json file, which is located in the same directory as the telegram_bot.py script.
801
+
802
+ ## .env Example:
785
803
 
786
- Create an `.env` file with:
804
+ You need to create an .env file and enter your Telegram token and user ID to authorize only one user to use it
787
805
 
788
806
  ```
789
807
  TOKEN_TELEGRAM=IlTuo2131TOKEN$12D3Telegram
@@ -1,55 +1,59 @@
1
1
  StreamingCommunity/__init__.py,sha256=Cw-N0VCg7sef1WqdtvVwrhs1zc4LoUhs5C8k7vpM1lQ,207
2
2
  StreamingCommunity/global_search.py,sha256=fAl_tRCP8SeQoBifXs7hGX9-7Bd9FlJw69NjsWNUUL0,12396
3
- StreamingCommunity/run.py,sha256=QIjF9xyUumIMFNYSUxX5ScD4Ypqag48XGdLDxIemzQE,12379
3
+ StreamingCommunity/run.py,sha256=Ad-_SUbfJblh6vtgSnA1ZIw8IXYl0AY3n4OhoTvEH5A,12384
4
4
  StreamingCommunity/Api/Player/ddl.py,sha256=S3UZFonJl3d3xU1fQrosRFXFhwAm8hGVQ8Ff8g-6xSI,2071
5
5
  StreamingCommunity/Api/Player/hdplayer.py,sha256=zfPcmtt8f-NfH9yapwwWpVSts-7s47vJ4_XHKJFg0i8,1875
6
+ StreamingCommunity/Api/Player/maxstream.py,sha256=6y2h7cMSA_kmaeiOWqqyMVBMrtX6HTt2WT0QXxirCxg,4839
6
7
  StreamingCommunity/Api/Player/mediapolisvod.py,sha256=OcdnE1BMSwPZM-nw74GXNJ44E9RYwGnc_kFEA-G8XyY,2294
7
8
  StreamingCommunity/Api/Player/mixdrop.py,sha256=B5KEv-S0xg8b8X2doSxPVcjgwDIlB5TP3m35zfn3v5w,4968
8
9
  StreamingCommunity/Api/Player/supervideo.py,sha256=hr9QViI-XD0Dqhcx90oaH8_j0d6cxpVaf-EuCjMs6hI,5199
9
10
  StreamingCommunity/Api/Player/sweetpixel.py,sha256=gJSe1fop5J216CB3u8vstxLPP5YbcyoGUH4y3X3-JaQ,1643
10
- StreamingCommunity/Api/Player/vixcloud.py,sha256=qI9ppYEMGaJ1B5y693BOMeRQri-F4-94SfRkS-9udfM,6287
11
+ StreamingCommunity/Api/Player/vixcloud.py,sha256=I929S-n7h0zBT_4J8ScVVUJsqEHQgz0pVP5Ct_opdTw,6402
11
12
  StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py,sha256=U-8QlD5kGzIk3-4t4D6QyYmiDe8UBrSuVi1YHRQb7AU,4295
12
13
  StreamingCommunity/Api/Player/Helper/Vixcloud/util.py,sha256=QLUgbwQrpuPIVNzdBlAiEJXnd-eCj_JQFckZZEEL55w,5214
13
- StreamingCommunity/Api/Site/1337xx/__init__.py,sha256=wH0vPIZmfUwORdvBeofWlz1Qp_ODRenNVl6EAWlYhD0,2019
14
+ StreamingCommunity/Api/Site/1337xx/__init__.py,sha256=-lZenAXIv69E38G1AssvRbdQ5ghZS-DjV-SifsLLpn8,2032
14
15
  StreamingCommunity/Api/Site/1337xx/site.py,sha256=5XVUMTQn1UqMYgo7tPAw7bGMA-tqhQnfeOGKkgGh9OA,2349
15
16
  StreamingCommunity/Api/Site/1337xx/title.py,sha256=8T3cVRb-Mt9QdOtKWVVFHz8iOHqspf7iw28E7bfTV78,1865
16
- StreamingCommunity/Api/Site/altadefinizione/__init__.py,sha256=KN2vASobeP68irZI5sHjHzeviNTdkWbFtFEI-JxGAck,4165
17
- StreamingCommunity/Api/Site/altadefinizione/film.py,sha256=0XeqMrMHnk5nbFkVTFaNZWtlXI8pETl7dsORDtIMbjg,4395
17
+ StreamingCommunity/Api/Site/altadefinizione/__init__.py,sha256=6CF9MCh3AstetNlTqG_uzRUQEmMR4iix2vPzGbl3EWM,4180
18
+ StreamingCommunity/Api/Site/altadefinizione/film.py,sha256=nSAko9sWZWAdAZ_bSr0S3tEPJYyLmzNzUmUD8Zuq_eo,3493
18
19
  StreamingCommunity/Api/Site/altadefinizione/series.py,sha256=-rCYx-Fa7aZiYepcIne7OdH1aaUFZZAPX-ToBv6mxFs,8192
19
20
  StreamingCommunity/Api/Site/altadefinizione/site.py,sha256=2kUNQ8ebYlX5dkSql-CvEhU01TOTNtuyEMIAD6SC3lg,2865
20
21
  StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py,sha256=bSApjfY9xd5dw0tZ1t7vB6ifAo5vAkeeEwX6IS7yH1o,3756
21
- StreamingCommunity/Api/Site/animeunity/__init__.py,sha256=tTNT7e6ZxRwpaFh7yp8qKZxj8bt37exrRgQe8xmoL4g,4050
22
+ StreamingCommunity/Api/Site/animeunity/__init__.py,sha256=3T-F9Hsq1wlELOAHqYWCxNYHfDeYsQLRYifmQATjh0A,4063
22
23
  StreamingCommunity/Api/Site/animeunity/film.py,sha256=Vqg6yag2siR-Y3ougBsV8mzdQXChxg6ghz_KVXFQ3pE,998
23
24
  StreamingCommunity/Api/Site/animeunity/serie.py,sha256=ib86sLXYsYbrvrFNbzKdhlwMUO3DT7JS5yTTrrSr2jk,5711
24
25
  StreamingCommunity/Api/Site/animeunity/site.py,sha256=iRFMUdtHricrc09gmVS1kUOQ-EqH_8zafh8ag4HHiUA,5672
25
- StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py,sha256=Ze6a8D2MRhiOvSw3mTpL3ue2iVc6pA5aqoyUMCTnT7A,3809
26
- StreamingCommunity/Api/Site/animeworld/__init__.py,sha256=izP_05rW-7hzRWNdGxx4rSejwa9heAn_YJhQ7aX-Ygk,2809
26
+ StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py,sha256=UladSvOlTEVLiV0-rAz45zrET5qRHMuTGuKEpeQoumU,3872
27
+ StreamingCommunity/Api/Site/animeworld/__init__.py,sha256=fjStJyOl6VBVDgoi6wr2yA0CQ_UQ4atTBzal0gOBgRM,2822
27
28
  StreamingCommunity/Api/Site/animeworld/film.py,sha256=W9KOS9Wvx3Mlqx5WojR-NgnF9WX8mI79JZPS7UwG-dc,1763
28
29
  StreamingCommunity/Api/Site/animeworld/serie.py,sha256=MXyV1fK05jPW4iV9NWrRKW-R4ect-TSN78-2APayniU,3516
29
30
  StreamingCommunity/Api/Site/animeworld/site.py,sha256=HBUAYiOa-UPGAO4lyTL1qIqqpDNVhWRHZ-nyLFltl7I,3702
30
31
  StreamingCommunity/Api/Site/animeworld/util/ScrapeSerie.py,sha256=CBTCH_wnTXUK_MKwq9a1k_XdvOlUrMpbUmpkD5fXVQ0,3589
31
- StreamingCommunity/Api/Site/guardaserie/__init__.py,sha256=SBkqcu5zAvYhVYlrk4D5L9cEuYFaraiODlmWspEkOu8,2787
32
+ StreamingCommunity/Api/Site/cb01new/__init__.py,sha256=95M3DiNbLbZ6v1oFkPuAPEVJWf12W2JzJvxZKjZs_V8,2071
33
+ StreamingCommunity/Api/Site/cb01new/film.py,sha256=vjd1ftm4LhxxG0TTKEwlOXtx0AYgxBbV5ZlQH8aSxGU,1695
34
+ StreamingCommunity/Api/Site/cb01new/site.py,sha256=82GPxjOyY7Dlj1WbA0YNovgbKhuF3Vmca07IVXGh6lE,2139
35
+ StreamingCommunity/Api/Site/guardaserie/__init__.py,sha256=vnbt1DVG6nmHaLSUOO_2NQYi9iTiOPLrwtvUd_DZDZg,2800
32
36
  StreamingCommunity/Api/Site/guardaserie/series.py,sha256=U9rMZCjRqHLFjo468vikxl-2RqO6DCJjebB-G8Y6LDg,6492
33
37
  StreamingCommunity/Api/Site/guardaserie/site.py,sha256=6PPp6qykuKZ3Sa2uY7E1xTwh1-8vHINsEpokGnathmw,2326
34
38
  StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py,sha256=_aXU-YcUtSwbC2b6QpNnWDZR8m6vp9xzBEx_zdu5tgI,4196
35
- StreamingCommunity/Api/Site/raiplay/__init__.py,sha256=ySKu1kk6FDjgTu66jXZHPz9PJqAuZUxLlizLMdKwFLc,3153
39
+ StreamingCommunity/Api/Site/raiplay/__init__.py,sha256=RItEFpC6_sMNJFRiZuVsQdzMuqW7VZifenTMT1I1p_o,3166
36
40
  StreamingCommunity/Api/Site/raiplay/film.py,sha256=wBv5kQXx7-aCKhAZ5LABZ8zUzu_jPGdXOl9OM2p8dpY,1982
37
41
  StreamingCommunity/Api/Site/raiplay/series.py,sha256=uQVbeA_g3Z1Ciqeq99gsY2F8mC5DssH3ueGbCW8gd9Q,6161
38
42
  StreamingCommunity/Api/Site/raiplay/site.py,sha256=0s1yHhEIA-JJVb2uVe_SZKILx7TIisadZmov7ZhG28s,5160
39
43
  StreamingCommunity/Api/Site/raiplay/util/ScrapeSerie.py,sha256=5F6abToCTtsvW8iIACbChZ0fPlymJiCSF_y8FRsDu7M,5002
40
- StreamingCommunity/Api/Site/streamingcommunity/__init__.py,sha256=LOEmBd5-t1JEVxu2Oh_kAporuINR2iBHG6sozTVEbDY,4269
41
- StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=r9qDqDrtk3de1J2A-YLvPTzh_Ai-VnAdQ6fgdO-qbMM,2583
42
- StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=KSXgfizALSiX1h7FHyOoycU0oBxrSWy_QJ27v7lBa30,8876
43
- StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=NE4DepqaXXLUycdFOEfe1-KybtCZhgwMAqczbn-dflE,3792
44
- StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=vnqVwDb4sxEXzMcr9B4ZZHFuADwcHSMCa3VMguKIe_U,5555
45
- StreamingCommunity/Api/Site/streamingwatch/__init__.py,sha256=ZIS1wZ6mkJsYVEekdXbqX7ZRkhzcoZuovwOwizEwjBA,3566
44
+ StreamingCommunity/Api/Site/streamingcommunity/__init__.py,sha256=xH-rznnpJd-mNniYt1SAGBymhZRxT05S5UxdSGvRPW4,5968
45
+ StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=HMfDve_4xuxeYbenDt9H5MEf1FwQBZNAkpcJEbiMRqA,2609
46
+ StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=W1KHSrF_rVl757dtLugvqVm7HCjovCHaHZXoGSRjOoI,8903
47
+ StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=cqaVM4cNXVqN_5ImeS_c7FI6go3TZPKkDi3XbD93MSQ,4019
48
+ StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=Q05e8k2xvWd66jv3jlBtvpTau2J1C0zXw5uHvcimzxY,5664
49
+ StreamingCommunity/Api/Site/streamingwatch/__init__.py,sha256=UCE61tSwyvC4Gg9XqcembOWulD8vKEQk__g7VXeVgcA,3723
46
50
  StreamingCommunity/Api/Site/streamingwatch/film.py,sha256=QWE4e7Z9c0oTidP76cZPWdOKFU77_RbMXOHOlLRtPFk,1664
47
51
  StreamingCommunity/Api/Site/streamingwatch/series.py,sha256=HF4SykhaOathLeCbYrRd1-BdCg30pDRQRCI43FnM2ck,6233
48
- StreamingCommunity/Api/Site/streamingwatch/site.py,sha256=tFPQTjT9AwZuAh3Z-cn110Xb1snEh4CCNv8Zuc1Vch8,3250
52
+ StreamingCommunity/Api/Site/streamingwatch/site.py,sha256=C7rpHhfiBZFb-BVvXHvc6BRVqT6mFIkuHLm06mok_BM,3516
49
53
  StreamingCommunity/Api/Site/streamingwatch/util/ScrapeSerie.py,sha256=tEiwL7R5wI8F9ZLOiI-E7pEh72UJaNtswCjhx_wRlBY,4300
50
54
  StreamingCommunity/Api/Template/__init__.py,sha256=oyfd_4_g5p5q6mxb_rKwSsudZnTM3W3kg1tLwxg-v-Q,46
51
55
  StreamingCommunity/Api/Template/config_loader.py,sha256=2RT_0mqQmWzXM4rYaqss-yhXztYAcfNkTalFPjzv270,2056
52
- StreamingCommunity/Api/Template/site.py,sha256=BJjQktdu2q2pkGflJv3UdrpSEmzJCJnaT-u-jD5zhgs,2861
56
+ StreamingCommunity/Api/Template/site.py,sha256=vUcHK4fuoBtDtO_Kgb4bQqfQDtVH5Jg9_-mVhZA3NTU,4919
53
57
  StreamingCommunity/Api/Template/Class/SearchType.py,sha256=LOlE8UgraEM0UAVeNCThDGi8bleei31p7KpryuZm3VE,2530
54
58
  StreamingCommunity/Api/Template/Util/__init__.py,sha256=ZWQQd6iymNFDol9HaKPhVBoRX1W-xHJZgU_mZvLVdsM,196
55
59
  StreamingCommunity/Api/Template/Util/manage_ep.py,sha256=FYe2DC9SXIXzlRYI7fW4ieBpfrxYzsUgt2C47tYRk7U,9252
@@ -67,14 +71,15 @@ StreamingCommunity/Lib/M3U8/decryptor.py,sha256=kuxxsd3eN0VGRrMJWXzHo8gCpT0u3fSZ
67
71
  StreamingCommunity/Lib/M3U8/estimator.py,sha256=8gwTxJ3poRqZdHUTD9_oqXegiPWSXFuqLmqCZBnXS8A,5893
68
72
  StreamingCommunity/Lib/M3U8/parser.py,sha256=cSjXPOSgTewrfLgREyQ47wzoOeoYo3L4lOfEWZKxad8,22485
69
73
  StreamingCommunity/Lib/M3U8/url_fixer.py,sha256=zldE4yOuNBV6AAvL1KI6p7XdRI_R5YZRscbDgT1564M,1735
70
- StreamingCommunity/Lib/Proxies/proxy.py,sha256=oHWT0a4kO3k8AyUVO_c0LfPmLcO5A8sGLhgJjBBwEnk,9350
74
+ StreamingCommunity/Lib/Proxies/proxy.py,sha256=KEaVWvstewt05x81AU7zQfOnMpI7tOdJfwAfMIpLiUE,2475
71
75
  StreamingCommunity/Lib/TMBD/__init__.py,sha256=XzE42tw3Ws59DD1PF8WmGtZ0D4D7Hk3Af8QthNE-22U,66
72
76
  StreamingCommunity/Lib/TMBD/obj_tmbd.py,sha256=dRSvJFS5yqmsBZcw2wqbStcBtXNjU_3n5czMyremAtU,1187
73
77
  StreamingCommunity/Lib/TMBD/tmdb.py,sha256=byg0EFnlmd9JeLvn1N9K3QkB1KEfeMuFa7OVfGqks1Y,10685
74
78
  StreamingCommunity/TelegramHelp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- StreamingCommunity/TelegramHelp/telegram_bot.py,sha256=Qe1__aoK4PpDuing8JtWgdHzLee8LuYYyfeLNA7yADU,26307
79
+ StreamingCommunity/TelegramHelp/config.json,sha256=x1rtclDIrlnFcmiAmCQnV3WpnlTl5ds1LRRqECIF7xk,1581
80
+ StreamingCommunity/TelegramHelp/telegram_bot.py,sha256=zCqj7xBofh9FYfEYl55mgT945jqtKo7qJhn-SMLvAvA,26455
76
81
  StreamingCommunity/Upload/update.py,sha256=Tp7PdU49rk1bga76_DiaghrbE7Fb3p4iq5S4CqZZy2A,3462
77
- StreamingCommunity/Upload/version.py,sha256=C0ehXbEWJcCstD3TYwAoKRQMBN8NVHjVNgCjbF7F1sc,171
82
+ StreamingCommunity/Upload/version.py,sha256=pQQWmD4WVRPFe3lUF2cLbFWjyLHAb-Lmrhe7-7h4omQ,171
78
83
  StreamingCommunity/Util/color.py,sha256=NvD0Eni-25oOOkY-szCEoc0lGvzQxyL7xhM0RE4EvUM,458
79
84
  StreamingCommunity/Util/config_json.py,sha256=KTbOhFOyXqqgmGZcjQsIuHsh-aUGAMXoSeZgXQ25Vy8,24867
80
85
  StreamingCommunity/Util/ffmpeg_installer.py,sha256=yRVIPwbh05tZ-duZmXkH0qasLNxaQCAT_E4cTP79Z3c,14890
@@ -83,9 +88,9 @@ StreamingCommunity/Util/logger.py,sha256=9kGD6GmWj2pM8ADpJc85o7jm8DD0c5Aguqnq-9k
83
88
  StreamingCommunity/Util/message.py,sha256=SJaIPLvWeQqsIODVUKw3TgYRmBChovmlbcF6OUxqMI8,1425
84
89
  StreamingCommunity/Util/os.py,sha256=Q1t8K7jUR27RGEZghfN1Xmvw8BGzK0npF1cFUf1OloQ,16381
85
90
  StreamingCommunity/Util/table.py,sha256=Nw5PlsvfEIOQZWy5VhsU5OK3heuBXGwsqmLl0k8yQzc,9813
86
- streamingcommunity-3.0.6.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
87
- streamingcommunity-3.0.6.dist-info/METADATA,sha256=HT6QIkZruwuT2gtRe83SuQDlm1StzCJWqq5pYCp9-FE,24230
88
- streamingcommunity-3.0.6.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
89
- streamingcommunity-3.0.6.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
90
- streamingcommunity-3.0.6.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
91
- streamingcommunity-3.0.6.dist-info/RECORD,,
91
+ streamingcommunity-3.0.7.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
92
+ streamingcommunity-3.0.7.dist-info/METADATA,sha256=_2-Z-kYQsSoj2zp73prdTVcawMzQU0UMmx3nKTvJnyM,24958
93
+ streamingcommunity-3.0.7.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
94
+ streamingcommunity-3.0.7.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
95
+ streamingcommunity-3.0.7.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
96
+ streamingcommunity-3.0.7.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.4.0)
2
+ Generator: setuptools (80.7.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5