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.
- StreamingCommunity/Api/Player/Helper/Vixcloud/util.py +40 -38
- StreamingCommunity/Api/Player/maxstream.py +3 -11
- StreamingCommunity/Api/Site/1337xx/__init__.py +26 -12
- StreamingCommunity/Api/Site/1337xx/site.py +3 -10
- StreamingCommunity/Api/Site/altadefinizione/__init__.py +108 -0
- StreamingCommunity/Api/Site/altadefinizione/film.py +128 -0
- StreamingCommunity/Api/Site/altadefinizione/series.py +209 -0
- StreamingCommunity/Api/Site/altadefinizione/site.py +93 -0
- StreamingCommunity/Api/Site/altadefinizione/util/ScrapeSerie.py +72 -0
- StreamingCommunity/Api/Site/animeunity/__init__.py +53 -32
- StreamingCommunity/Api/Site/animeunity/film_serie.py +6 -2
- StreamingCommunity/Api/Site/animeunity/site.py +1 -11
- StreamingCommunity/Api/Site/cb01new/__init__.py +26 -14
- StreamingCommunity/Api/Site/cb01new/site.py +7 -16
- StreamingCommunity/Api/Site/ddlstreamitaly/__init__.py +26 -15
- StreamingCommunity/Api/Site/ddlstreamitaly/site.py +1 -9
- StreamingCommunity/Api/Site/guardaserie/__init__.py +23 -11
- StreamingCommunity/Api/Site/guardaserie/site.py +3 -10
- StreamingCommunity/Api/Site/mostraguarda/__init__.py +27 -7
- StreamingCommunity/Api/Site/streamingcommunity/__init__.py +50 -27
- StreamingCommunity/Api/Site/streamingcommunity/series.py +34 -12
- StreamingCommunity/Api/Site/streamingcommunity/site.py +14 -10
- StreamingCommunity/Api/Site/streamingcommunity/util/ScrapeSerie.py +38 -17
- StreamingCommunity/Api/Template/Class/SearchType.py +1 -1
- StreamingCommunity/Api/Template/Util/__init__.py +0 -1
- StreamingCommunity/Api/Template/Util/manage_ep.py +1 -0
- StreamingCommunity/Api/Template/config_loader.py +0 -4
- StreamingCommunity/Lib/Downloader/HLS/downloader.py +2 -2
- StreamingCommunity/Lib/Downloader/HLS/segments.py +1 -1
- StreamingCommunity/Lib/Downloader/MP4/downloader.py +8 -6
- StreamingCommunity/Lib/M3U8/estimator.py +3 -3
- StreamingCommunity/Upload/version.py +1 -1
- StreamingCommunity/Util/config_json.py +2 -11
- StreamingCommunity/Util/table.py +12 -2
- StreamingCommunity/__init__.py +6 -0
- StreamingCommunity/global_search.py +315 -0
- StreamingCommunity/run.py +27 -3
- {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.5.dist-info}/METADATA +128 -16
- streamingcommunity-2.9.5.dist-info/RECORD +80 -0
- {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.5.dist-info}/WHEEL +1 -1
- StreamingCommunity/Api/Template/Util/get_domain.py +0 -100
- StreamingCommunity-2.9.3.dist-info/RECORD +0 -75
- {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.5.dist-info}/LICENSE +0 -0
- {StreamingCommunity-2.9.3.dist-info → streamingcommunity-2.9.5.dist-info}/entry_points.txt +0 -0
- {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
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: StreamingCommunity
|
|
3
|
-
Version: 2.9.
|
|
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
|
-
|
|
117
|
+
Update to the latest version:
|
|
109
118
|
|
|
110
|
-
|
|
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
|
-
|
|
140
|
+
## Modules
|
|
125
141
|
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
594
|
-
* **Example:** `*` will download all seasons in the series.
|
|
679
|
+
## Using Global Search
|
|
595
680
|
|
|
596
|
-
|
|
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
|
-
|
|
600
|
-
|
|
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,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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|