StreamingCommunity 2.9.3__py3-none-any.whl → 2.9.5__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 (45) hide show
  1. StreamingCommunity/Api/Player/Helper/Vixcloud/util.py +40 -38
  2. StreamingCommunity/Api/Player/maxstream.py +3 -11
  3. StreamingCommunity/Api/Site/1337xx/__init__.py +26 -12
  4. StreamingCommunity/Api/Site/1337xx/site.py +3 -10
  5. StreamingCommunity/Api/Site/altadefinizione/__init__.py +108 -0
  6. StreamingCommunity/Api/Site/altadefinizione/film.py +128 -0
  7. StreamingCommunity/Api/Site/altadefinizione/series.py +209 -0
  8. StreamingCommunity/Api/Site/altadefinizione/site.py +93 -0
  9. StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py +72 -0
  10. StreamingCommunity/Api/Site/animeunity/__init__.py +53 -32
  11. StreamingCommunity/Api/Site/animeunity/film_serie.py +6 -2
  12. StreamingCommunity/Api/Site/animeunity/site.py +1 -11
  13. StreamingCommunity/Api/Site/cb01new/__init__.py +26 -14
  14. StreamingCommunity/Api/Site/cb01new/site.py +7 -16
  15. StreamingCommunity/Api/Site/ddlstreamitaly/__init__.py +26 -15
  16. StreamingCommunity/Api/Site/ddlstreamitaly/site.py +1 -9
  17. StreamingCommunity/Api/Site/guardaserie/__init__.py +23 -11
  18. StreamingCommunity/Api/Site/guardaserie/site.py +3 -10
  19. StreamingCommunity/Api/Site/mostraguarda/__init__.py +27 -7
  20. StreamingCommunity/Api/Site/streamingcommunity/__init__.py +50 -27
  21. StreamingCommunity/Api/Site/streamingcommunity/series.py +34 -12
  22. StreamingCommunity/Api/Site/streamingcommunity/site.py +14 -10
  23. StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +38 -17
  24. StreamingCommunity/Api/Template/Class/SearchType.py +1 -1
  25. StreamingCommunity/Api/Template/Util/__init__.py +0 -1
  26. StreamingCommunity/Api/Template/Util/manage_ep.py +1 -0
  27. StreamingCommunity/Api/Template/config_loader.py +0 -4
  28. StreamingCommunity/Lib/Downloader/HLS/downloader.py +2 -2
  29. StreamingCommunity/Lib/Downloader/HLS/segments.py +1 -1
  30. StreamingCommunity/Lib/Downloader/MP4/downloader.py +8 -6
  31. StreamingCommunity/Lib/M3U8/estimator.py +3 -3
  32. StreamingCommunity/Upload/version.py +1 -1
  33. StreamingCommunity/Util/config_json.py +2 -11
  34. StreamingCommunity/Util/table.py +12 -2
  35. StreamingCommunity/__init__.py +6 -0
  36. StreamingCommunity/global_search.py +315 -0
  37. StreamingCommunity/run.py +27 -3
  38. {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.5.dist-info}/METADATA +128 -16
  39. streamingcommunity-2.9.5.dist-info/RECORD +80 -0
  40. {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.5.dist-info}/WHEEL +1 -1
  41. StreamingCommunity/Api/Template/Util/get_domain.py +0 -100
  42. StreamingCommunity-2.9.3.dist-info/RECORD +0 -75
  43. {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.5.dist-info}/LICENSE +0 -0
  44. {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.5.dist-info}/entry_points.txt +0 -0
  45. {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.5.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: StreamingCommunity
3
- Version: 2.9.3
3
+ Version: 2.9.5
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
@@ -23,6 +23,14 @@ Requires-Dist: pycryptodomex
23
23
  Requires-Dist: ua-generator
24
24
  Requires-Dist: qbittorrent-api
25
25
  Requires-Dist: pyTelegramBotAPI
26
+ Dynamic: author
27
+ Dynamic: description
28
+ Dynamic: description-content-type
29
+ Dynamic: home-page
30
+ Dynamic: keywords
31
+ Dynamic: project-url
32
+ Dynamic: requires-dist
33
+ Dynamic: requires-python
26
34
 
27
35
  <p align="center">
28
36
  <img src="https://i.ibb.co/v6RnT0wY/s2.jpg" alt="Project Logo" width="700"/>
@@ -71,6 +79,7 @@ Requires-Dist: pyTelegramBotAPI
71
79
  - 📥 [Download](#m3u8_download-settings)
72
80
  - 🔍 [Parser](#m3u8_parser-settings)
73
81
  - 📝 [Command](#command)
82
+ - 🔍 [Global search](#global-search)
74
83
  - 💻 [Examples of terminal](#examples-of-terminal-usage)
75
84
  - 🔧 [Manual domain configuration](#update-domains)
76
85
  - 🐳 [Docker](#docker)
@@ -105,9 +114,15 @@ Install directly from PyPI:
105
114
  pip install StreamingCommunity
106
115
  ```
107
116
 
108
- ### Creating a Run Script
117
+ Update to the latest version:
109
118
 
110
- Create `run_streaming.py`:
119
+ ```bash
120
+ pip install --upgrade StreamingCommunity
121
+ ```
122
+
123
+ ## Quick Start
124
+
125
+ Create a simple script (`run_streaming.py`) to launch the main application:
111
126
 
112
127
  ```python
113
128
  from StreamingCommunity.run import main
@@ -117,16 +132,85 @@ if __name__ == "__main__":
117
132
  ```
118
133
 
119
134
  Run the script:
135
+
120
136
  ```bash
121
137
  python run_streaming.py
122
138
  ```
123
139
 
124
- ### Updating via PyPI
140
+ ## Modules
125
141
 
126
- ```bash
127
- pip install --upgrade StreamingCommunity
142
+ ### HLS Downloader
143
+
144
+ Download HTTP Live Streaming (HLS) content from m3u8 URLs.
145
+
146
+ ```python
147
+ from StreamingCommunity.Download import HLS_Downloader
148
+
149
+ # Initialize with m3u8 URL and optional output path
150
+ downloader = HLS_Downloader(
151
+ m3u8_url="https://example.com/stream.m3u8",
152
+ output_path="/downloads/video.mp4" # Optional
153
+ )
154
+
155
+ # Start the download
156
+ downloader.download()
157
+ ```
158
+
159
+ See [HLS example](./Test/Download/HLS.py) for complete usage.
160
+
161
+ ### MP4 Downloader
162
+
163
+ Direct MP4 file downloader with support for custom headers and referrer.
164
+
165
+ ```python
166
+ from StreamingCommunity.Download import MP4_downloader
167
+
168
+ # Basic usage
169
+ downloader = MP4_downloader(
170
+ url="https://example.com/video.mp4",
171
+ path="/downloads/saved_video.mp4"
172
+ )
173
+
174
+ # Advanced usage with custom headers and referrer
175
+ headers = {
176
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
177
+ }
178
+ downloader = MP4_downloader(
179
+ url="https://example.com/video.mp4",
180
+ path="/downloads/saved_video.mp4",
181
+ referer="https://example.com",
182
+ headers_=headers
183
+ )
184
+
185
+ # Start download
186
+ downloader.download()
128
187
  ```
129
188
 
189
+ See [MP4 example](./Test/Download/MP4.py) for complete usage.
190
+
191
+ ### Torrent Client
192
+
193
+ Download content via torrent magnet links.
194
+
195
+ ```python
196
+ from StreamingCommunity.Download import TOR_downloader
197
+
198
+ # Initialize torrent client
199
+ client = TOR_downloader()
200
+
201
+ # Add magnet link
202
+ client.add_magnet_link("magnet:?xt=urn:btih:example_hash&dn=example_name")
203
+
204
+ # Start download
205
+ client.start_download()
206
+
207
+ # Move downloaded files to specific location
208
+ client.move_downloaded_files("/downloads/torrents/")
209
+ ```
210
+
211
+ See [Torrent example](./Test/Download/TOR.py) for complete usage.
212
+
213
+
130
214
  ## 2. Automatic Installation
131
215
 
132
216
  ### Supported Operating Systems 💿
@@ -585,19 +669,44 @@ The API-based domain updates are currently deprecated. To use it anyway, set `us
585
669
 
586
670
  Note: If `use_api` is set to `false` and no `domains.json` file is found, the script will raise an error.
587
671
 
588
- # COMMAND
672
+ #### 💡 Adding a New Site to the Legacy API
673
+ If you want to add a new site to the legacy API, just message me on the Discord server, and I'll add it!
674
+
675
+ # Global Search
589
676
 
590
- - Download a specific season by entering its number.
591
- * **Example:** `1` will download *Season 1* only.
677
+ You can now search across multiple streaming sites at once using the Global Search feature. This allows you to find content more efficiently without having to search each site individually.
592
678
 
593
- - Use the wildcard `*` to download every available season.
594
- * **Example:** `*` will download all seasons in the series.
679
+ ## Using Global Search
595
680
 
596
- - Specify a range of seasons using a hyphen `-`.
597
- * **Example:** `1-2` will download *Seasons 1 and 2*.
681
+ The Global Search feature provides a unified interface to search across all supported sites:
598
682
 
599
- - Enter a season number followed by `-*` to download from that season to the end.
600
- * **Example:** `3-*` will download from *Season 3* to the final season.
683
+ ## Search Options
684
+
685
+ When using Global Search, you have three ways to select which sites to search:
686
+
687
+ 1. **Search all sites** - Searches across all available streaming sites
688
+ 2. **Search by category** - Group sites by their categories (movies, series, anime, etc.)
689
+ 3. **Select specific sites** - Choose individual sites to include in your search
690
+
691
+ ## Navigation and Selection
692
+
693
+ After performing a search:
694
+
695
+ 1. Results are displayed in a consolidated table showing:
696
+ - Title
697
+ - Media type (movie, TV series, etc.)
698
+ - Source site
699
+
700
+ 2. Select an item by number to view details or download
701
+
702
+ 3. The system will automatically use the appropriate site's API to handle the download
703
+
704
+ ## Command Line Arguments
705
+
706
+ The Global Search can be configured from the command line:
707
+
708
+ - `--global` - Perform a global search across multiple sites.
709
+ - `-s`, `--search` - Specify the search terms.
601
710
 
602
711
  # Examples of terminal usage
603
712
 
@@ -610,6 +719,9 @@ python test_run.py --specific_list_audio ita,eng --specific_list_subtitles eng,s
610
719
 
611
720
  # Keep console open after download
612
721
  python test_run.py --not_close true
722
+
723
+ # Use global search
724
+ python test_run.py --global -s "cars"
613
725
  ```
614
726
 
615
727
  # Docker
@@ -0,0 +1,80 @@
1
+ StreamingCommunity/__init__.py,sha256=Cw-N0VCg7sef1WqdtvVwrhs1zc4LoUhs5C8k7vpM1lQ,207
2
+ StreamingCommunity/global_search.py,sha256=1U74JtXLWDGC_r5KCsQt4kC-XRO76QIWk3QnUz-1AqY,12126
3
+ StreamingCommunity/run.py,sha256=tR4DxDgbaiBRPfJ0766TpEZ-u1FqzJRdWJ7GfbLNYTU,12929
4
+ StreamingCommunity/Api/Player/ddl.py,sha256=M_ePETCMBpIHr5K5Yb7EML5VXwqkR7vJHQcGIv4AEQw,2261
5
+ StreamingCommunity/Api/Player/maxstream.py,sha256=WXg8xncFXFiaUmTVXxB3NyknQtbvd0sF1eRaoDO24bU,4822
6
+ StreamingCommunity/Api/Player/supervideo.py,sha256=hr9QViI-XD0Dqhcx90oaH8_j0d6cxpVaf-EuCjMs6hI,5199
7
+ StreamingCommunity/Api/Player/vixcloud.py,sha256=NOZhW59hyBnG5FfmppcnIudAztr7seWzQBzAN3KC_3M,6317
8
+ StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py,sha256=U-8QlD5kGzIk3-4t4D6QyYmiDe8UBrSuVi1YHRQb7AU,4295
9
+ StreamingCommunity/Api/Player/Helper/Vixcloud/util.py,sha256=QLUgbwQrpuPIVNzdBlAiEJXnd-eCj_JQFckZZEEL55w,5214
10
+ StreamingCommunity/Api/Site/1337xx/__init__.py,sha256=En0bGDLm9fTKuR9ApQw2V8HuFcQNRjsy8sAcgjadIfM,2041
11
+ StreamingCommunity/Api/Site/1337xx/site.py,sha256=WZMcCm8uoJAb16QVNeGvyQBvRqf9pi2ioMcrdECZxfg,2247
12
+ StreamingCommunity/Api/Site/1337xx/title.py,sha256=lGb-IbWEIfg9Eu3XIu6IfxTOjvXkFL_NO9UEZcxOAfE,1831
13
+ StreamingCommunity/Api/Site/altadefinizione/__init__.py,sha256=dBRK4a3URd3i8IhYSXbKg6hb_lXaY8u1qJ9pDLkKKdk,3266
14
+ StreamingCommunity/Api/Site/altadefinizione/film.py,sha256=BOCQPA736xQPB8yn0VGke0LVLVjmNqm9AyC4FbdJFYA,4328
15
+ StreamingCommunity/Api/Site/altadefinizione/series.py,sha256=slS79oaGeJFam2QkIRCSeaBkJBXAUhD2wp4OleZ2FJo,7507
16
+ StreamingCommunity/Api/Site/altadefinizione/site.py,sha256=955zCDOOlS92xy9SC7RfHQo-6qmhXUstfnpn7WRwC0o,2709
17
+ StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py,sha256=tdO3ebcmU-cPnJQX4L1PVPN7IHNzu4hS-hjPWo_evCk,2526
18
+ StreamingCommunity/Api/Site/animeunity/__init__.py,sha256=DH6ltjOAh2W5utxRYDQhhx05GcHp5-5xDhICL9DH2jk,3097
19
+ StreamingCommunity/Api/Site/animeunity/film_serie.py,sha256=Bi214vFB7g6jHCjCLdBT8TIpoLZRf5odFApqr5li2Io,6053
20
+ StreamingCommunity/Api/Site/animeunity/site.py,sha256=HagIr6UcJSsSo-AJSxzMn_W9ie8Bd8I8pktHmcSWdF0,4954
21
+ StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py,sha256=6Vbw5KVwUbgooGjUIRAuXr9cWSkHDkAFP7EiXF2T4OM,2709
22
+ StreamingCommunity/Api/Site/cb01new/__init__.py,sha256=C-6-HDxG73xXV6FK6LnQhs5yjkJawke4nq5kBQCVjSM,2081
23
+ StreamingCommunity/Api/Site/cb01new/film.py,sha256=trrEGcklB6FhqpJvGaEwHI0EThK__e9O6DuknKAFNHw,1628
24
+ StreamingCommunity/Api/Site/cb01new/site.py,sha256=b_FJdSDBJma9s09IoVJo9wCNEjQckTKj2WI1lwzqcEU,2093
25
+ StreamingCommunity/Api/Site/ddlstreamitaly/__init__.py,sha256=H_Z46fvmoWHfrafhlgTHouhkhDbokxCAaDRmk8d07P8,2183
26
+ StreamingCommunity/Api/Site/ddlstreamitaly/series.py,sha256=z3te51do5C_O77rDTR1N01aQ76BIGe5pm5i_PWJepQ4,3369
27
+ StreamingCommunity/Api/Site/ddlstreamitaly/site.py,sha256=ZbzGqu24jqKPARKPfyXt5wB6QPRiygXitbgVRb9B2zk,2476
28
+ StreamingCommunity/Api/Site/ddlstreamitaly/util/ScrapeSerie.py,sha256=HY8YEvzWp3sy1q07rFLXLZhGYvapA1amMZByYvs0iJM,2553
29
+ StreamingCommunity/Api/Site/guardaserie/__init__.py,sha256=_VtuSxR-6mWET-TRPg1nHhe5QWHImdnZRB8chQtGrm0,2040
30
+ StreamingCommunity/Api/Site/guardaserie/series.py,sha256=xXuMR9NiAtXkHrErsmXRY9IkE2FVGuhqjATYEfapb0Y,5670
31
+ StreamingCommunity/Api/Site/guardaserie/site.py,sha256=5aFytbQxal7elrRFiYkM-PhVA_kMP-A60jNgycXbxNE,2131
32
+ StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py,sha256=4sZRWm8r5X80q285hemRf7MAWeaN5yfOU6i1SjKU4Tg,3268
33
+ StreamingCommunity/Api/Site/mostraguarda/__init__.py,sha256=RHUGgn_2uSLMHgPrCXAUqDDK6qv7PqimFr5z1mAYtrM,1933
34
+ StreamingCommunity/Api/Site/mostraguarda/film.py,sha256=dA7Vo9bU7g8eY8Vaj06_n2MHlKBMHh4B_MIw2sO872A,2719
35
+ StreamingCommunity/Api/Site/streamingcommunity/__init__.py,sha256=akhH6AVIFvDskJ_uDlcNpistwnctbDxA-YiuVgIXm0A,3267
36
+ StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=LaZzEQms9t7r30_PjHPgIOUkVDyotX0qFDBMKMVNSWo,2530
37
+ StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=KNvEw7w9HJV2ocqDQ7VmsiEkPc89HeRKC7_igFx_dn0,8415
38
+ StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=SoUtZDFAe-jckSpB38GJN9OY9FAJhYZPtOUAgQgEPAE,2985
39
+ StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=4WU0YFPXcsBpEANMGpAsbtffu3HxCqLsiC0K6_4OlHM,4525
40
+ StreamingCommunity/Api/Template/__init__.py,sha256=oyfd_4_g5p5q6mxb_rKwSsudZnTM3W3kg1tLwxg-v-Q,46
41
+ StreamingCommunity/Api/Template/config_loader.py,sha256=2RT_0mqQmWzXM4rYaqss-yhXztYAcfNkTalFPjzv270,2056
42
+ StreamingCommunity/Api/Template/site.py,sha256=lD7FCp-xHCTwTam51MYtI-JKRuw1VLsY9KQDtsk3MYE,2842
43
+ StreamingCommunity/Api/Template/Class/SearchType.py,sha256=LOlE8UgraEM0UAVeNCThDGi8bleei31p7KpryuZm3VE,2530
44
+ StreamingCommunity/Api/Template/Util/__init__.py,sha256=ZWQQd6iymNFDol9HaKPhVBoRX1W-xHJZgU_mZvLVdsM,196
45
+ StreamingCommunity/Api/Template/Util/manage_ep.py,sha256=FYe2DC9SXIXzlRYI7fW4ieBpfrxYzsUgt2C47tYRk7U,9252
46
+ StreamingCommunity/Lib/Downloader/__init__.py,sha256=JhbBh5hOnSM7VmtkxJ7zZ_FtWEC1JdnKThsSBjLV5FY,140
47
+ StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=s3ZXyKsuBN3wE4Y0Y9xXuDauBPbaI9Qhgoy83IeMnbs,21590
48
+ StreamingCommunity/Lib/Downloader/HLS/segments.py,sha256=4KXC4wE7EF4gWKTgUHLB_D1gnSRXvPBVlQpr486NpRo,18469
49
+ StreamingCommunity/Lib/Downloader/MP4/downloader.py,sha256=o-LdIdPvnHfKhmtexRlu4D7T81qj6igg-g8IiNSXSFs,7456
50
+ StreamingCommunity/Lib/Downloader/TOR/downloader.py,sha256=KVZxCl1VB1-OuTjUhVS5Ycog_P0vCGTfRzhZPv8O7Ps,11267
51
+ StreamingCommunity/Lib/FFmpeg/__init__.py,sha256=6PBsZdE1jrD2EKOVyx3JEHnyDZzVeKlPkH5T0zyfOgU,130
52
+ StreamingCommunity/Lib/FFmpeg/capture.py,sha256=73BEpTijksErZOu46iRxwl3idKzZ-sVXXRr4nocIGY0,5168
53
+ StreamingCommunity/Lib/FFmpeg/command.py,sha256=ubpffE02nsZM7xch5gbwGlEiUzecpxcFOd63n2cqM1k,10708
54
+ StreamingCommunity/Lib/FFmpeg/util.py,sha256=6QzTbk5BNxKYsTl-cJgOO2XGQTWUdMloWMyrGGBs6eU,7168
55
+ StreamingCommunity/Lib/M3U8/__init__.py,sha256=H_KS2eDd3kVXMziFJnD0FCPvPHEizaqfoA36ElTv_r8,170
56
+ StreamingCommunity/Lib/M3U8/decryptor.py,sha256=kuxxsd3eN0VGRrMJWXzHo8gCpT0u3fSZs_lwxlE5Fqs,2948
57
+ StreamingCommunity/Lib/M3U8/estimator.py,sha256=ueb2at6Ueow3TUsAyd43aIy0UzKG2-PEgnYysHRMkZ0,5680
58
+ StreamingCommunity/Lib/M3U8/parser.py,sha256=xN16pQZSCN9mQl_s7OcuH07-mNgVMpAS_hERq6zp7XM,21558
59
+ StreamingCommunity/Lib/M3U8/url_fixer.py,sha256=zldE4yOuNBV6AAvL1KI6p7XdRI_R5YZRscbDgT1564M,1735
60
+ StreamingCommunity/Lib/TMBD/__init__.py,sha256=XzE42tw3Ws59DD1PF8WmGtZ0D4D7Hk3Af8QthNE-22U,66
61
+ StreamingCommunity/Lib/TMBD/obj_tmbd.py,sha256=dRSvJFS5yqmsBZcw2wqbStcBtXNjU_3n5czMyremAtU,1187
62
+ StreamingCommunity/Lib/TMBD/tmdb.py,sha256=byg0EFnlmd9JeLvn1N9K3QkB1KEfeMuFa7OVfGqks1Y,10685
63
+ StreamingCommunity/TelegramHelp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
+ StreamingCommunity/TelegramHelp/telegram_bot.py,sha256=Qe1__aoK4PpDuing8JtWgdHzLee8LuYYyfeLNA7yADU,26307
65
+ StreamingCommunity/Upload/update.py,sha256=TXWAOfvZr1So_oME11YvX_L5zRy2tM-ijF-_g1jf87o,2548
66
+ StreamingCommunity/Upload/version.py,sha256=tFcpeSHbzC-UvP64UbgBklbKokJ7cvOYQuZGO_DghLA,171
67
+ StreamingCommunity/Util/color.py,sha256=NvD0Eni-25oOOkY-szCEoc0lGvzQxyL7xhM0RE4EvUM,458
68
+ StreamingCommunity/Util/config_json.py,sha256=ocf1wsC1o0Nq8UStHUwj_QryMi_2O0yPpLEAkaMZPGg,18978
69
+ StreamingCommunity/Util/ffmpeg_installer.py,sha256=q5yb_ZXKe9PhcG7JbKLfo1AZa8DNukgHqymPbudDuAY,13585
70
+ StreamingCommunity/Util/headers.py,sha256=TItkaFMx1GqsVNEIS3Tr0BGU5EHyF-HkZVliHORT3P8,308
71
+ StreamingCommunity/Util/logger.py,sha256=9kGD6GmWj2pM8ADpJc85o7jm8DD0c5Aguqnq-9kmxos,3314
72
+ StreamingCommunity/Util/message.py,sha256=SJaIPLvWeQqsIODVUKw3TgYRmBChovmlbcF6OUxqMI8,1425
73
+ StreamingCommunity/Util/os.py,sha256=MUGJKQbNMWeoUrnJ2Ug3hoyYlrPDqU9BY94UmiUbxfA,14858
74
+ StreamingCommunity/Util/table.py,sha256=QDVCVewMQ2JIQV3yDxQEL7Ac_m7NyRmynFg11BDeSBQ,9621
75
+ streamingcommunity-2.9.5.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
76
+ streamingcommunity-2.9.5.dist-info/METADATA,sha256=I5Huc0USVCd3Z1y43tqMD_qn1wc4IQpIPiTQqbVWqMQ,24365
77
+ streamingcommunity-2.9.5.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
78
+ streamingcommunity-2.9.5.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
79
+ streamingcommunity-2.9.5.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
80
+ streamingcommunity-2.9.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.45.1)
2
+ Generator: setuptools (76.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,100 +0,0 @@
1
- # 18.06.24
2
-
3
- import certifi
4
- from urllib.parse import urlparse, unquote
5
-
6
-
7
- # External libraries
8
- import httpx
9
- from rich.console import Console
10
-
11
-
12
- # Internal utilities
13
- from StreamingCommunity.Util.headers import get_headers
14
- from StreamingCommunity.Util.config_json import config_manager
15
-
16
-
17
- # Variable
18
- console = Console()
19
- VERIFY = config_manager.get("REQUESTS", "verify")
20
- MAX_TIMEOUT = config_manager.get_int("REQUESTS", "timeout")
21
-
22
-
23
- def get_tld(url_str):
24
- """Extract the TLD (Top-Level Domain) from the URL."""
25
- try:
26
- url_str = unquote(url_str)
27
- parsed = urlparse(url_str)
28
- domain = parsed.netloc.lower()
29
-
30
- if domain.startswith('www.'):
31
- domain = domain[4:]
32
- parts = domain.split('.')
33
-
34
- return parts[-1] if len(parts) >= 2 else None
35
-
36
- except Exception:
37
- return None
38
-
39
- def get_base_domain(url_str):
40
- """Extract base domain without protocol, www and path."""
41
- try:
42
- parsed = urlparse(url_str)
43
- domain = parsed.netloc.lower()
44
- if domain.startswith('www.'):
45
- domain = domain[4:]
46
-
47
- # Check if domain has multiple parts separated by dots
48
- parts = domain.split('.')
49
- if len(parts) > 2:
50
- return '.'.join(parts[:-1])
51
-
52
- return parts[0]
53
-
54
- except Exception:
55
- return None
56
-
57
- def validate_url(url, base_url):
58
- """Validate if URL is accessible and matches expected base domain."""
59
- console.print(f"\n[cyan]Starting validation for URL[white]: [yellow]{url}")
60
-
61
- # Verify URL structure matches base_url structure
62
- base_domain = get_base_domain(base_url)
63
- url_domain = get_base_domain(url)
64
-
65
- if base_domain != url_domain:
66
- console.print(f"[red]Domain structure mismatch: {url_domain} != {base_domain}")
67
- return False, None
68
-
69
- client = httpx.Client(
70
- http1=True,
71
- verify=certifi.where(),
72
- headers=get_headers(),
73
- timeout=MAX_TIMEOUT
74
- )
75
-
76
- # Make request to web site
77
- response = client.get(url, follow_redirects=False)
78
-
79
- if response.status_code >= 400:
80
- console.print(f"[red]Check failed: HTTP {response.status_code}")
81
- console.print(f"[red]Response content: {response.text}")
82
- return False, None
83
-
84
- return True, base_domain
85
-
86
- def search_domain(base_url: str):
87
- """Search for valid domain matching site name and base URL."""
88
- try:
89
- is_correct, redirect_tld = validate_url(base_url, base_url)
90
-
91
- if is_correct:
92
- tld = redirect_tld or get_tld(base_url)
93
- return tld, base_url
94
-
95
- else:
96
- return None, None
97
-
98
- except Exception as e:
99
- console.print(f"[red]Error testing initial URL: {str(e)}")
100
- return None, None
@@ -1,75 +0,0 @@
1
- StreamingCommunity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- StreamingCommunity/run.py,sha256=AbEL0cyAaRgaG5qE1c7Z6SVZ4Wu7WIH9pZmwC4FDWW8,12076
3
- StreamingCommunity/Api/Player/ddl.py,sha256=M_ePETCMBpIHr5K5Yb7EML5VXwqkR7vJHQcGIv4AEQw,2261
4
- StreamingCommunity/Api/Player/maxstream.py,sha256=abUQeE4EOUV0uuVOd22_C8IdeKrAAoO5USdgdm6EzfM,5092
5
- StreamingCommunity/Api/Player/supervideo.py,sha256=hr9QViI-XD0Dqhcx90oaH8_j0d6cxpVaf-EuCjMs6hI,5199
6
- StreamingCommunity/Api/Player/vixcloud.py,sha256=NOZhW59hyBnG5FfmppcnIudAztr7seWzQBzAN3KC_3M,6317
7
- StreamingCommunity/Api/Player/Helper/Vixcloud/js_parser.py,sha256=U-8QlD5kGzIk3-4t4D6QyYmiDe8UBrSuVi1YHRQb7AU,4295
8
- StreamingCommunity/Api/Player/Helper/Vixcloud/util.py,sha256=dnyVxZTjjV3C6PUCu2OMeHI4NbiioBWhixlY2Ol9I74,5206
9
- StreamingCommunity/Api/Site/1337xx/__init__.py,sha256=pyaQ3QlLdiqLcyNyfE6jKhOR5BXUiKLfPcIBHbk8U8U,1378
10
- StreamingCommunity/Api/Site/1337xx/site.py,sha256=u6a453wVy3vJrGcLlSUhErKzr63lv-o9cx36RjFpPRs,2647
11
- StreamingCommunity/Api/Site/1337xx/title.py,sha256=lGb-IbWEIfg9Eu3XIu6IfxTOjvXkFL_NO9UEZcxOAfE,1831
12
- StreamingCommunity/Api/Site/animeunity/__init__.py,sha256=Lz9trBzQZL11wGyIT2Y4CWe3JxOkDUPzTQXXO76s0oQ,2278
13
- StreamingCommunity/Api/Site/animeunity/film_serie.py,sha256=I44DJ26evVpJPveoWYZvlswB6f9gEG0Br_IrogleAk0,5771
14
- StreamingCommunity/Api/Site/animeunity/site.py,sha256=SRtei5Ftx9Vb9z5F4C-nbdrVV8s--VwtfE6l8Y7_8Ko,5401
15
- StreamingCommunity/Api/Site/animeunity/util/ScrapeSerie.py,sha256=6Vbw5KVwUbgooGjUIRAuXr9cWSkHDkAFP7EiXF2T4OM,2709
16
- StreamingCommunity/Api/Site/cb01new/__init__.py,sha256=jw-eyJunemd3uNwpow75_8s7TX8bYyiRA-zkF5NZ75w,1393
17
- StreamingCommunity/Api/Site/cb01new/film.py,sha256=trrEGcklB6FhqpJvGaEwHI0EThK__e9O6DuknKAFNHw,1628
18
- StreamingCommunity/Api/Site/cb01new/site.py,sha256=q9bHKgHkXWE0vOcfQ9bKU0QDzbLassfSN2im2O4EYiI,2523
19
- StreamingCommunity/Api/Site/ddlstreamitaly/__init__.py,sha256=XkpTFeb-yFI_bJCIph72cVE8GVoJP7Tby-NqkZNNDM4,1533
20
- StreamingCommunity/Api/Site/ddlstreamitaly/series.py,sha256=z3te51do5C_O77rDTR1N01aQ76BIGe5pm5i_PWJepQ4,3369
21
- StreamingCommunity/Api/Site/ddlstreamitaly/site.py,sha256=_I4fZuzE5DnwAGOBOJK_IYW04RETwl3N2J0FUJAjQqg,2913
22
- StreamingCommunity/Api/Site/ddlstreamitaly/util/ScrapeSerie.py,sha256=HY8YEvzWp3sy1q07rFLXLZhGYvapA1amMZByYvs0iJM,2553
23
- StreamingCommunity/Api/Site/guardaserie/__init__.py,sha256=NjMn1EFWdFi9P89qpKNg3Dc84DDOSyuSBX0V5K24OjQ,1385
24
- StreamingCommunity/Api/Site/guardaserie/series.py,sha256=xXuMR9NiAtXkHrErsmXRY9IkE2FVGuhqjATYEfapb0Y,5670
25
- StreamingCommunity/Api/Site/guardaserie/site.py,sha256=5Y5svAT4QYZrNDPM9couf6M94g0g320NfoAuJt4dp94,2538
26
- StreamingCommunity/Api/Site/guardaserie/util/ScrapeSerie.py,sha256=4sZRWm8r5X80q285hemRf7MAWeaN5yfOU6i1SjKU4Tg,3268
27
- StreamingCommunity/Api/Site/mostraguarda/__init__.py,sha256=6oGv_Q6pXFERkbpKjYjFJFblvDYSfe1zZph6_Ch8gNY,1234
28
- StreamingCommunity/Api/Site/mostraguarda/film.py,sha256=dA7Vo9bU7g8eY8Vaj06_n2MHlKBMHh4B_MIw2sO872A,2719
29
- StreamingCommunity/Api/Site/streamingcommunity/__init__.py,sha256=FV3ch-farw3tN_-Ay3JV_-TIoHzgQzxEJWPlFibE62Y,2351
30
- StreamingCommunity/Api/Site/streamingcommunity/film.py,sha256=LaZzEQms9t7r30_PjHPgIOUkVDyotX0qFDBMKMVNSWo,2530
31
- StreamingCommunity/Api/Site/streamingcommunity/series.py,sha256=LmvcGTr7GR4_n2G0QYnLUKFiA30OxQD_H9Y3pF4tamo,7926
32
- StreamingCommunity/Api/Site/streamingcommunity/site.py,sha256=OID6QB_WMydwVCYD0SupHpEP0VwHIBmwifwuIHW9HaE,2973
33
- StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py,sha256=YYetljW4yr6eoiLe6nDUuFZ9NI8K85tF6859ikITmsY,3571
34
- StreamingCommunity/Api/Template/__init__.py,sha256=oyfd_4_g5p5q6mxb_rKwSsudZnTM3W3kg1tLwxg-v-Q,46
35
- StreamingCommunity/Api/Template/config_loader.py,sha256=seJjLi05_8xrs4tdt4zXNCPa9TLp7n5FufFM2XErokI,2166
36
- StreamingCommunity/Api/Template/site.py,sha256=lD7FCp-xHCTwTam51MYtI-JKRuw1VLsY9KQDtsk3MYE,2842
37
- StreamingCommunity/Api/Template/Class/SearchType.py,sha256=FtO8xDUGEeJgMWsK2Ab7ZzAFsncalTYL2oEYi8uCnuk,2531
38
- StreamingCommunity/Api/Template/Util/__init__.py,sha256=GZZgT816VwTYekPOwLExHenpak0gO-V3LLGTYIElt3A,234
39
- StreamingCommunity/Api/Template/Util/get_domain.py,sha256=tWQKWs5LJZna4a2P0IfxlSZDbZTDjiqq9SmHTbK-PyU,2763
40
- StreamingCommunity/Api/Template/Util/manage_ep.py,sha256=aPRgSB6OiUNfYQKMTEDrjxeTFfOUfx3JypvA6nehwP4,9251
41
- StreamingCommunity/Lib/Downloader/__init__.py,sha256=JhbBh5hOnSM7VmtkxJ7zZ_FtWEC1JdnKThsSBjLV5FY,140
42
- StreamingCommunity/Lib/Downloader/HLS/downloader.py,sha256=2MzuMtXgRb6TcurQi0z6fJcXi0mzrbecWOk-L46bPgw,21585
43
- StreamingCommunity/Lib/Downloader/HLS/segments.py,sha256=eVQzB06EochPM1E0VNWgfvEyc5wGDq_yG6Fqo7WPNic,18468
44
- StreamingCommunity/Lib/Downloader/MP4/downloader.py,sha256=4rgaVTlBvNCfS2dWbTC_eCiXL8MbC1mwRGlUtvJv4nw,7466
45
- StreamingCommunity/Lib/Downloader/TOR/downloader.py,sha256=KVZxCl1VB1-OuTjUhVS5Ycog_P0vCGTfRzhZPv8O7Ps,11267
46
- StreamingCommunity/Lib/FFmpeg/__init__.py,sha256=6PBsZdE1jrD2EKOVyx3JEHnyDZzVeKlPkH5T0zyfOgU,130
47
- StreamingCommunity/Lib/FFmpeg/capture.py,sha256=73BEpTijksErZOu46iRxwl3idKzZ-sVXXRr4nocIGY0,5168
48
- StreamingCommunity/Lib/FFmpeg/command.py,sha256=ubpffE02nsZM7xch5gbwGlEiUzecpxcFOd63n2cqM1k,10708
49
- StreamingCommunity/Lib/FFmpeg/util.py,sha256=6QzTbk5BNxKYsTl-cJgOO2XGQTWUdMloWMyrGGBs6eU,7168
50
- StreamingCommunity/Lib/M3U8/__init__.py,sha256=H_KS2eDd3kVXMziFJnD0FCPvPHEizaqfoA36ElTv_r8,170
51
- StreamingCommunity/Lib/M3U8/decryptor.py,sha256=kuxxsd3eN0VGRrMJWXzHo8gCpT0u3fSZs_lwxlE5Fqs,2948
52
- StreamingCommunity/Lib/M3U8/estimator.py,sha256=U2xnUvoAeLZT8KA1ZDZO9TRz7sXgzIyCtHClT2wcI28,5711
53
- StreamingCommunity/Lib/M3U8/parser.py,sha256=xN16pQZSCN9mQl_s7OcuH07-mNgVMpAS_hERq6zp7XM,21558
54
- StreamingCommunity/Lib/M3U8/url_fixer.py,sha256=zldE4yOuNBV6AAvL1KI6p7XdRI_R5YZRscbDgT1564M,1735
55
- StreamingCommunity/Lib/TMBD/__init__.py,sha256=XzE42tw3Ws59DD1PF8WmGtZ0D4D7Hk3Af8QthNE-22U,66
56
- StreamingCommunity/Lib/TMBD/obj_tmbd.py,sha256=dRSvJFS5yqmsBZcw2wqbStcBtXNjU_3n5czMyremAtU,1187
57
- StreamingCommunity/Lib/TMBD/tmdb.py,sha256=byg0EFnlmd9JeLvn1N9K3QkB1KEfeMuFa7OVfGqks1Y,10685
58
- StreamingCommunity/TelegramHelp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- StreamingCommunity/TelegramHelp/telegram_bot.py,sha256=Qe1__aoK4PpDuing8JtWgdHzLee8LuYYyfeLNA7yADU,26307
60
- StreamingCommunity/Upload/update.py,sha256=TXWAOfvZr1So_oME11YvX_L5zRy2tM-ijF-_g1jf87o,2548
61
- StreamingCommunity/Upload/version.py,sha256=bREs7N-kz1d-zZ5B1i3S2s-N5hBkN0o0LPTL9AuAqbY,171
62
- StreamingCommunity/Util/color.py,sha256=NvD0Eni-25oOOkY-szCEoc0lGvzQxyL7xhM0RE4EvUM,458
63
- StreamingCommunity/Util/config_json.py,sha256=dmo7FTboEuEs1nYf17RYaTyT03qRvOLJzGgBitYHXs4,19379
64
- StreamingCommunity/Util/ffmpeg_installer.py,sha256=q5yb_ZXKe9PhcG7JbKLfo1AZa8DNukgHqymPbudDuAY,13585
65
- StreamingCommunity/Util/headers.py,sha256=TItkaFMx1GqsVNEIS3Tr0BGU5EHyF-HkZVliHORT3P8,308
66
- StreamingCommunity/Util/logger.py,sha256=9kGD6GmWj2pM8ADpJc85o7jm8DD0c5Aguqnq-9kmxos,3314
67
- StreamingCommunity/Util/message.py,sha256=SJaIPLvWeQqsIODVUKw3TgYRmBChovmlbcF6OUxqMI8,1425
68
- StreamingCommunity/Util/os.py,sha256=MUGJKQbNMWeoUrnJ2Ug3hoyYlrPDqU9BY94UmiUbxfA,14858
69
- StreamingCommunity/Util/table.py,sha256=X1t9VPYl9GemLMk_-x_WfpysQ-3Iv8vh0aTIJKm0fK0,8565
70
- StreamingCommunity-2.9.3.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
71
- StreamingCommunity-2.9.3.dist-info/METADATA,sha256=UPtxd9uEBSd8bvBBTexZ5kaeROrDyX_WGxBT6dcRYhc,21552
72
- StreamingCommunity-2.9.3.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
73
- StreamingCommunity-2.9.3.dist-info/entry_points.txt,sha256=Qph9XYfDC8n4LfDLOSl6gJGlkb9eFb5f-JOr_Wb_5rk,67
74
- StreamingCommunity-2.9.3.dist-info/top_level.txt,sha256=YsOcxKP-WOhWpIWgBlh0coll9XUx7aqmRPT7kmt3fH0,19
75
- StreamingCommunity-2.9.3.dist-info/RECORD,,