StreamingCommunity 1.7.6__py3-none-any.whl → 1.9.1__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 (101) hide show
  1. StreamingCommunity/{Src/Api → Api}/Player/Helper/Vixcloud/js_parser.py +4 -1
  2. StreamingCommunity/{Src/Api → Api}/Player/Helper/Vixcloud/util.py +166 -166
  3. StreamingCommunity/{Src/Api → Api}/Player/ddl.py +89 -89
  4. StreamingCommunity/{Src/Api → Api}/Player/maxstream.py +151 -151
  5. StreamingCommunity/{Src/Api → Api}/Player/supervideo.py +193 -193
  6. StreamingCommunity/{Src/Api → Api}/Player/vixcloud.py +224 -212
  7. StreamingCommunity/{Src/Api → Api}/Site/1337xx/__init__.py +50 -50
  8. StreamingCommunity/{Src/Api → Api}/Site/1337xx/costant.py +15 -15
  9. StreamingCommunity/{Src/Api → Api}/Site/1337xx/site.py +83 -83
  10. StreamingCommunity/{Src/Api → Api}/Site/1337xx/title.py +66 -66
  11. StreamingCommunity/{Src/Api → Api}/Site/altadefinizione/__init__.py +50 -50
  12. StreamingCommunity/{Src/Api/Site/mostraguarda → Api/Site/altadefinizione}/costant.py +15 -15
  13. StreamingCommunity/{Src/Api → Api}/Site/altadefinizione/film.py +69 -69
  14. StreamingCommunity/{Src/Api → Api}/Site/altadefinizione/site.py +86 -86
  15. StreamingCommunity/{Src/Api → Api}/Site/animeunity/__init__.py +50 -50
  16. StreamingCommunity/{Src/Api/Site/altadefinizione → Api/Site/animeunity}/costant.py +15 -15
  17. StreamingCommunity/{Src/Api → Api}/Site/animeunity/film_serie.py +130 -131
  18. StreamingCommunity/{Src/Api → Api}/Site/animeunity/site.py +164 -164
  19. StreamingCommunity/{Src/Api → Api}/Site/animeunity/util/ScrapeSerie.py +3 -3
  20. StreamingCommunity/{Src/Api → Api}/Site/bitsearch/__init__.py +51 -51
  21. StreamingCommunity/{Src/Api → Api}/Site/bitsearch/costant.py +15 -15
  22. StreamingCommunity/{Src/Api → Api}/Site/bitsearch/site.py +84 -84
  23. StreamingCommunity/{Src/Api → Api}/Site/bitsearch/title.py +47 -47
  24. StreamingCommunity/{Src/Api → Api}/Site/cb01new/__init__.py +51 -51
  25. StreamingCommunity/{Src/Api → Api}/Site/cb01new/costant.py +15 -15
  26. StreamingCommunity/{Src/Api → Api}/Site/cb01new/film.py +69 -69
  27. StreamingCommunity/{Src/Api → Api}/Site/cb01new/site.py +74 -74
  28. StreamingCommunity/{Src/Api → Api}/Site/ddlstreamitaly/__init__.py +57 -57
  29. StreamingCommunity/{Src/Api → Api}/Site/ddlstreamitaly/costant.py +16 -16
  30. StreamingCommunity/{Src/Api → Api}/Site/ddlstreamitaly/series.py +141 -142
  31. StreamingCommunity/{Src/Api → Api}/Site/ddlstreamitaly/site.py +92 -92
  32. StreamingCommunity/{Src/Api → Api}/Site/ddlstreamitaly/util/ScrapeSerie.py +84 -82
  33. StreamingCommunity/{Src/Api → Api}/Site/guardaserie/__init__.py +52 -52
  34. StreamingCommunity/{Src/Api/Site/piratebays → Api/Site/guardaserie}/costant.py +15 -15
  35. StreamingCommunity/{Src/Api → Api}/Site/guardaserie/series.py +195 -195
  36. StreamingCommunity/{Src/Api → Api}/Site/guardaserie/site.py +84 -84
  37. StreamingCommunity/{Src/Api → Api}/Site/guardaserie/util/ScrapeSerie.py +110 -110
  38. StreamingCommunity/{Src/Api → Api}/Site/mostraguarda/__init__.py +48 -48
  39. StreamingCommunity/{Src/Api/Site/animeunity → Api/Site/mostraguarda}/costant.py +15 -15
  40. StreamingCommunity/{Src/Api → Api}/Site/mostraguarda/film.py +94 -94
  41. StreamingCommunity/{Src/Api → Api}/Site/piratebays/__init__.py +50 -50
  42. StreamingCommunity/{Src/Api/Site/guardaserie → Api/Site/piratebays}/costant.py +15 -15
  43. StreamingCommunity/{Src/Api → Api}/Site/piratebays/site.py +88 -88
  44. StreamingCommunity/{Src/Api → Api}/Site/piratebays/title.py +45 -45
  45. StreamingCommunity/{Src/Api → Api}/Site/streamingcommunity/__init__.py +55 -55
  46. StreamingCommunity/{Src/Api → Api}/Site/streamingcommunity/costant.py +15 -15
  47. StreamingCommunity/{Src/Api → Api}/Site/streamingcommunity/film.py +70 -70
  48. StreamingCommunity/{Src/Api → Api}/Site/streamingcommunity/series.py +205 -203
  49. StreamingCommunity/{Src/Api → Api}/Site/streamingcommunity/site.py +125 -125
  50. StreamingCommunity/{Src/Api → Api}/Site/streamingcommunity/util/ScrapeSerie.py +3 -3
  51. StreamingCommunity/{Src/Api → Api}/Template/Class/SearchType.py +101 -101
  52. StreamingCommunity/{Src/Api → Api}/Template/Util/__init__.py +4 -4
  53. StreamingCommunity/{Src/Api → Api}/Template/Util/get_domain.py +137 -137
  54. StreamingCommunity/{Src/Api → Api}/Template/Util/manage_ep.py +153 -153
  55. StreamingCommunity/{Src/Api → Api}/Template/Util/recall_search.py +37 -37
  56. StreamingCommunity/Api/Template/__init__.py +3 -0
  57. StreamingCommunity/{Src/Api → Api}/Template/site.py +87 -87
  58. StreamingCommunity/{Src/Lib → Lib}/Downloader/HLS/downloader.py +968 -968
  59. StreamingCommunity/{Src/Lib → Lib}/Downloader/HLS/proxyes.py +110 -110
  60. StreamingCommunity/{Src/Lib → Lib}/Downloader/HLS/segments.py +538 -540
  61. StreamingCommunity/{Src/Lib → Lib}/Downloader/MP4/downloader.py +156 -156
  62. StreamingCommunity/{Src/Lib → Lib}/Downloader/TOR/downloader.py +222 -222
  63. StreamingCommunity/{Src/Lib → Lib}/Downloader/__init__.py +4 -4
  64. StreamingCommunity/{Src/Lib → Lib}/Driver/driver_1.py +76 -76
  65. StreamingCommunity/{Src/Lib → Lib}/FFmpeg/__init__.py +4 -4
  66. StreamingCommunity/{Src/Lib → Lib}/FFmpeg/capture.py +170 -170
  67. StreamingCommunity/{Src/Lib → Lib}/FFmpeg/command.py +292 -292
  68. StreamingCommunity/{Src/Lib → Lib}/FFmpeg/util.py +241 -241
  69. StreamingCommunity/{Src/Lib → Lib}/M3U8/__init__.py +5 -5
  70. StreamingCommunity/{Src/Lib → Lib}/M3U8/decryptor.py +164 -129
  71. StreamingCommunity/{Src/Lib → Lib}/M3U8/estimator.py +175 -172
  72. StreamingCommunity/{Src/Lib → Lib}/M3U8/parser.py +666 -666
  73. StreamingCommunity/{Src/Lib → Lib}/M3U8/url_fixer.py +51 -51
  74. StreamingCommunity/Lib/TMBD/__init__.py +2 -0
  75. StreamingCommunity/{Src/Lib → Lib}/TMBD/obj_tmbd.py +39 -39
  76. StreamingCommunity/{Src/Lib → Lib}/TMBD/tmdb.py +345 -345
  77. StreamingCommunity/{Src/Upload → Upload}/update.py +68 -64
  78. StreamingCommunity/{Src/Upload → Upload}/version.py +5 -5
  79. StreamingCommunity/{Src/Util → Util}/_jsonConfig.py +204 -204
  80. StreamingCommunity/{Src/Util → Util}/call_stack.py +42 -42
  81. StreamingCommunity/{Src/Util → Util}/color.py +20 -20
  82. StreamingCommunity/{Src/Util → Util}/console.py +12 -12
  83. StreamingCommunity/Util/ffmpeg_installer.py +275 -0
  84. StreamingCommunity/{Src/Util → Util}/headers.py +147 -147
  85. StreamingCommunity/{Src/Util → Util}/logger.py +53 -53
  86. StreamingCommunity/{Src/Util → Util}/message.py +46 -46
  87. StreamingCommunity/{Src/Util → Util}/os.py +514 -417
  88. StreamingCommunity/{Src/Util → Util}/table.py +163 -163
  89. StreamingCommunity/run.py +202 -196
  90. {StreamingCommunity-1.7.6.dist-info → StreamingCommunity-1.9.1.dist-info}/METADATA +126 -60
  91. StreamingCommunity-1.9.1.dist-info/RECORD +95 -0
  92. {StreamingCommunity-1.7.6.dist-info → StreamingCommunity-1.9.1.dist-info}/WHEEL +1 -1
  93. StreamingCommunity/Src/Api/Site/animeunity/anime.py +0 -126
  94. StreamingCommunity/Src/Api/Site/ddlstreamitaly/Player/ScrapeSerie.py +0 -83
  95. StreamingCommunity/Src/Api/Site/guardaserie/Player/ScrapeSerie.py +0 -110
  96. StreamingCommunity/Src/Api/Template/__init__.py +0 -3
  97. StreamingCommunity/Src/Lib/TMBD/__init__.py +0 -2
  98. StreamingCommunity-1.7.6.dist-info/RECORD +0 -97
  99. {StreamingCommunity-1.7.6.dist-info → StreamingCommunity-1.9.1.dist-info}/LICENSE +0 -0
  100. {StreamingCommunity-1.7.6.dist-info → StreamingCommunity-1.9.1.dist-info}/entry_points.txt +0 -0
  101. {StreamingCommunity-1.7.6.dist-info → StreamingCommunity-1.9.1.dist-info}/top_level.txt +0 -0
@@ -1,163 +1,163 @@
1
- # 03.03.24
2
-
3
- from rich.console import Console
4
- from rich.table import Table
5
- from rich.prompt import Prompt
6
- from rich.style import Style
7
- from typing import Dict, List, Any
8
-
9
-
10
- # Internal utilities
11
- from .message import start_message
12
-
13
-
14
- class TVShowManager:
15
- def __init__(self):
16
- """
17
- Initialize TVShowManager with provided column information.
18
-
19
- Parameters:
20
- - column_info (Dict[str, Dict[str, str]]): Dictionary containing column names, their colors, and justification.
21
- """
22
- self.console = Console()
23
- self.tv_shows: List[Dict[str, Any]] = [] # List to store TV show data as dictionaries
24
- self.slice_start: int = 0
25
- self.slice_end: int = 5
26
- self.step: int = self.slice_end
27
- self.column_info = []
28
-
29
- def set_slice_end(self, new_slice: int) -> None:
30
- """
31
- Set the end of the slice for displaying TV shows.
32
-
33
- Parameters:
34
- - new_slice (int): The new value for the slice end.
35
- """
36
- self.slice_end = new_slice
37
- self.step = new_slice
38
-
39
- def add_column(self, column_info: Dict[str, Dict[str, str]]) -> None:
40
- """
41
- Add column information.
42
-
43
- Parameters:
44
- - column_info (Dict[str, Dict[str, str]]): Dictionary containing column names, their colors, and justification.
45
- """
46
- self.column_info = column_info
47
-
48
- def add_tv_show(self, tv_show: Dict[str, Any]):
49
- """
50
- Add a TV show to the list of TV shows.
51
-
52
- Parameters:
53
- - tv_show (Dict[str, Any]): Dictionary containing TV show details.
54
- """
55
- self.tv_shows.append(tv_show)
56
-
57
- def display_data(self, data_slice: List[Dict[str, Any]]):
58
- """
59
- Display TV show data in a tabular format.
60
-
61
- Parameters:
62
- - data_slice (List[Dict[str, Any]]): List of dictionaries containing TV show details to display.
63
- """
64
- table = Table(border_style="white")
65
-
66
- # Add columns dynamically based on provided column information
67
- for col_name, col_style in self.column_info.items():
68
- color = col_style.get("color", None)
69
- if color:
70
- style = Style(color=color)
71
- else:
72
- style = None
73
- table.add_column(col_name, style=style, justify='center')
74
-
75
- # Add rows dynamically based on available TV show data
76
- for entry in data_slice:
77
- # Create row data while handling missing keys
78
- row_data = [entry.get(col_name, '') for col_name in self.column_info.keys()]
79
- table.add_row(*row_data)
80
-
81
- self.console.print(table) # Use self.console.print instead of print
82
-
83
-
84
- def run(self, force_int_input: bool = False, max_int_input: int = 0) -> str:
85
- """
86
- Run the TV show manager application.
87
-
88
- Parameters:
89
- - force_int_input(bool): If True, only accept integer inputs from 0 to max_int_input
90
- - max_int_input (int): range of row to show
91
-
92
- Returns:
93
- str: Last command executed before breaking out of the loop.
94
- """
95
- total_items = len(self.tv_shows)
96
- last_command = "" # Variable to store the last command executed
97
-
98
- while True:
99
- start_message()
100
-
101
- # Display table
102
- self.display_data(self.tv_shows[self.slice_start:self.slice_end])
103
-
104
- # Handling user input for loading more items or quitting
105
- if self.slice_end < total_items:
106
- self.console.print(f"\n\n[yellow][INFO] [green]Press [red]Enter [green]for next page, or [red]'q' [green]to quit.")
107
-
108
- if not force_int_input:
109
- key = Prompt.ask(
110
- "\n[cyan]Insert media index [yellow](e.g., 1), [red]* [cyan]to download all media, "
111
- "[yellow](e.g., 1-2) [cyan]for a range of media, or [yellow](e.g., 3-*) [cyan]to download from a specific index to the end"
112
- )
113
-
114
- else:
115
- choices = [str(i) for i in range(0, max_int_input)]
116
- choices.extend(["q", ""])
117
-
118
- key = Prompt.ask("[cyan]Insert media [red]index", choices=choices, show_choices=False)
119
- last_command = key
120
-
121
- if key.lower() == "q":
122
- break
123
-
124
- elif key == "":
125
- self.slice_start += self.step
126
- self.slice_end += self.step
127
- if self.slice_end > total_items:
128
- self.slice_end = total_items
129
-
130
- else:
131
- break
132
-
133
- else:
134
- # Last slice, ensure all remaining items are shown
135
- self.console.print(f"\n\n[yellow][INFO] [red]You've reached the end. [green]Press [red]Enter [green]for next page, or [red]'q' [green]to quit.")
136
- if not force_int_input:
137
- key = Prompt.ask(
138
- "\n[cyan]Insert media index [yellow](e.g., 1), [red]* [cyan]to download all media, "
139
- "[yellow](e.g., 1-2) [cyan]for a range of media, or [yellow](e.g., 3-*) [cyan]to download from a specific index to the end"
140
- )
141
-
142
-
143
- else:
144
- choices = [str(i) for i in range(0, max_int_input)]
145
- choices.extend(["q", ""])
146
-
147
- key = Prompt.ask("[cyan]Insert media [red]index", choices=choices, show_choices=False)
148
- last_command = key
149
-
150
- if key.lower() == "q":
151
- break
152
-
153
- elif key == "":
154
- self.slice_start = 0
155
- self.slice_end = self.step
156
-
157
- else:
158
- break
159
-
160
- return last_command
161
-
162
- def clear(self):
163
- self.tv_shows = []
1
+ # 03.03.24
2
+
3
+ from rich.console import Console
4
+ from rich.table import Table
5
+ from rich.prompt import Prompt
6
+ from rich.style import Style
7
+ from typing import Dict, List, Any
8
+
9
+
10
+ # Internal utilities
11
+ from .message import start_message
12
+
13
+
14
+ class TVShowManager:
15
+ def __init__(self):
16
+ """
17
+ Initialize TVShowManager with provided column information.
18
+
19
+ Parameters:
20
+ - column_info (Dict[str, Dict[str, str]]): Dictionary containing column names, their colors, and justification.
21
+ """
22
+ self.console = Console()
23
+ self.tv_shows: List[Dict[str, Any]] = [] # List to store TV show data as dictionaries
24
+ self.slice_start: int = 0
25
+ self.slice_end: int = 5
26
+ self.step: int = self.slice_end
27
+ self.column_info = []
28
+
29
+ def set_slice_end(self, new_slice: int) -> None:
30
+ """
31
+ Set the end of the slice for displaying TV shows.
32
+
33
+ Parameters:
34
+ - new_slice (int): The new value for the slice end.
35
+ """
36
+ self.slice_end = new_slice
37
+ self.step = new_slice
38
+
39
+ def add_column(self, column_info: Dict[str, Dict[str, str]]) -> None:
40
+ """
41
+ Add column information.
42
+
43
+ Parameters:
44
+ - column_info (Dict[str, Dict[str, str]]): Dictionary containing column names, their colors, and justification.
45
+ """
46
+ self.column_info = column_info
47
+
48
+ def add_tv_show(self, tv_show: Dict[str, Any]):
49
+ """
50
+ Add a TV show to the list of TV shows.
51
+
52
+ Parameters:
53
+ - tv_show (Dict[str, Any]): Dictionary containing TV show details.
54
+ """
55
+ self.tv_shows.append(tv_show)
56
+
57
+ def display_data(self, data_slice: List[Dict[str, Any]]):
58
+ """
59
+ Display TV show data in a tabular format.
60
+
61
+ Parameters:
62
+ - data_slice (List[Dict[str, Any]]): List of dictionaries containing TV show details to display.
63
+ """
64
+ table = Table(border_style="white")
65
+
66
+ # Add columns dynamically based on provided column information
67
+ for col_name, col_style in self.column_info.items():
68
+ color = col_style.get("color", None)
69
+ if color:
70
+ style = Style(color=color)
71
+ else:
72
+ style = None
73
+ table.add_column(col_name, style=style, justify='center')
74
+
75
+ # Add rows dynamically based on available TV show data
76
+ for entry in data_slice:
77
+ # Create row data while handling missing keys
78
+ row_data = [entry.get(col_name, '') for col_name in self.column_info.keys()]
79
+ table.add_row(*row_data)
80
+
81
+ self.console.print(table) # Use self.console.print instead of print
82
+
83
+
84
+ def run(self, force_int_input: bool = False, max_int_input: int = 0) -> str:
85
+ """
86
+ Run the TV show manager application.
87
+
88
+ Parameters:
89
+ - force_int_input(bool): If True, only accept integer inputs from 0 to max_int_input
90
+ - max_int_input (int): range of row to show
91
+
92
+ Returns:
93
+ str: Last command executed before breaking out of the loop.
94
+ """
95
+ total_items = len(self.tv_shows)
96
+ last_command = "" # Variable to store the last command executed
97
+
98
+ while True:
99
+ start_message()
100
+
101
+ # Display table
102
+ self.display_data(self.tv_shows[self.slice_start:self.slice_end])
103
+
104
+ # Handling user input for loading more items or quitting
105
+ if self.slice_end < total_items:
106
+ self.console.print(f"\n\n[yellow][INFO] [green]Press [red]Enter [green]for next page, or [red]'q' [green]to quit.")
107
+
108
+ if not force_int_input:
109
+ key = Prompt.ask(
110
+ "\n[cyan]Insert media index [yellow](e.g., 1), [red]* [cyan]to download all media, "
111
+ "[yellow](e.g., 1-2) [cyan]for a range of media, or [yellow](e.g., 3-*) [cyan]to download from a specific index to the end"
112
+ )
113
+
114
+ else:
115
+ choices = [str(i) for i in range(0, max_int_input)]
116
+ choices.extend(["q", ""])
117
+
118
+ key = Prompt.ask("[cyan]Insert media [red]index", choices=choices, show_choices=False)
119
+ last_command = key
120
+
121
+ if key.lower() == "q":
122
+ break
123
+
124
+ elif key == "":
125
+ self.slice_start += self.step
126
+ self.slice_end += self.step
127
+ if self.slice_end > total_items:
128
+ self.slice_end = total_items
129
+
130
+ else:
131
+ break
132
+
133
+ else:
134
+ # Last slice, ensure all remaining items are shown
135
+ self.console.print(f"\n\n[yellow][INFO] [red]You've reached the end. [green]Press [red]Enter [green]for next page, or [red]'q' [green]to quit.")
136
+ if not force_int_input:
137
+ key = Prompt.ask(
138
+ "\n[cyan]Insert media index [yellow](e.g., 1), [red]* [cyan]to download all media, "
139
+ "[yellow](e.g., 1-2) [cyan]for a range of media, or [yellow](e.g., 3-*) [cyan]to download from a specific index to the end"
140
+ )
141
+
142
+
143
+ else:
144
+ choices = [str(i) for i in range(0, max_int_input)]
145
+ choices.extend(["q", ""])
146
+
147
+ key = Prompt.ask("[cyan]Insert media [red]index", choices=choices, show_choices=False)
148
+ last_command = key
149
+
150
+ if key.lower() == "q":
151
+ break
152
+
153
+ elif key == "":
154
+ self.slice_start = 0
155
+ self.slice_end = self.step
156
+
157
+ else:
158
+ break
159
+
160
+ return last_command
161
+
162
+ def clear(self):
163
+ self.tv_shows = []