KekikStream 2.1.1__py3-none-any.whl → 2.1.3__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.
- KekikStream/Extractors/MixTiger.py +5 -5
- KekikStream/Plugins/FilmMakinesi.py +15 -7
- KekikStream/Plugins/HDFilmCehennemi.py +4 -14
- {kekikstream-2.1.1.dist-info → kekikstream-2.1.3.dist-info}/METADATA +1 -1
- {kekikstream-2.1.1.dist-info → kekikstream-2.1.3.dist-info}/RECORD +9 -9
- {kekikstream-2.1.1.dist-info → kekikstream-2.1.3.dist-info}/WHEEL +0 -0
- {kekikstream-2.1.1.dist-info → kekikstream-2.1.3.dist-info}/entry_points.txt +0 -0
- {kekikstream-2.1.1.dist-info → kekikstream-2.1.3.dist-info}/licenses/LICENSE +0 -0
- {kekikstream-2.1.1.dist-info → kekikstream-2.1.3.dist-info}/top_level.txt +0 -0
|
@@ -37,16 +37,15 @@ class MixTiger(ExtractorBase):
|
|
|
37
37
|
if not m3u_link:
|
|
38
38
|
raise ValueError("Video URL not found in response")
|
|
39
39
|
|
|
40
|
-
# Recursive extraction check
|
|
40
|
+
# Recursive extraction check - başka extractor kullanılabilir mi?
|
|
41
41
|
try:
|
|
42
42
|
from KekikStream.Core.Extractor.ExtractorManager import ExtractorManager
|
|
43
|
-
# Import inside method to avoid circular dependency
|
|
44
43
|
manager = ExtractorManager()
|
|
45
44
|
if nested_extractor := manager.find_extractor(m3u_link):
|
|
46
|
-
#
|
|
47
|
-
return await nested_extractor.extract(m3u_link, referer=
|
|
45
|
+
# Nested extractor ile çıkar
|
|
46
|
+
return await nested_extractor.extract(m3u_link, referer=ext_ref)
|
|
48
47
|
except Exception:
|
|
49
|
-
#
|
|
48
|
+
# Recursive extraction başarısız olursa standart sonucu döndür
|
|
50
49
|
pass
|
|
51
50
|
|
|
52
51
|
return ExtractResult(
|
|
@@ -55,3 +54,4 @@ class MixTiger(ExtractorBase):
|
|
|
55
54
|
referer = None if "disk.yandex" in m3u_link else ext_ref,
|
|
56
55
|
subtitles = []
|
|
57
56
|
)
|
|
57
|
+
|
|
@@ -104,16 +104,24 @@ class FilmMakinesi(PluginBase):
|
|
|
104
104
|
istek = await self.httpx.get(url)
|
|
105
105
|
secici = Selector(istek.text)
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
response = []
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
# Video parts linklerini ve etiketlerini al
|
|
110
110
|
for link in secici.css("div.video-parts a[data-video_url]"):
|
|
111
|
-
|
|
111
|
+
video_url = link.attrib.get("data-video_url")
|
|
112
|
+
label = link.css("::text").get() or ""
|
|
113
|
+
label = label.strip()
|
|
112
114
|
|
|
113
|
-
|
|
114
|
-
for link in all_links:
|
|
115
|
-
data = await self.extract(link)
|
|
115
|
+
data = await self.extract(video_url, prefix=label.split()[0] if label else None)
|
|
116
116
|
if data:
|
|
117
117
|
response.append(data)
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
# Eğer video-parts yoksa iframe kullan
|
|
120
|
+
if not response:
|
|
121
|
+
iframe_src = secici.css("iframe::attr(data-src)").get()
|
|
122
|
+
if iframe_src:
|
|
123
|
+
data = await self.extract(iframe_src)
|
|
124
|
+
if data:
|
|
125
|
+
response.append(data)
|
|
126
|
+
|
|
127
|
+
return response
|
|
@@ -144,16 +144,6 @@ class HDFilmCehennemi(PluginBase):
|
|
|
144
144
|
|
|
145
145
|
return results
|
|
146
146
|
|
|
147
|
-
def hdch_decode(self, value_parts: list[str]) -> str:
|
|
148
|
-
"""
|
|
149
|
-
HDFilmCehennemi için özel decoder.
|
|
150
|
-
StreamDecoder._brute_force ile 24 farklı permütasyonu dener.
|
|
151
|
-
"""
|
|
152
|
-
try:
|
|
153
|
-
return StreamDecoder._brute_force(value_parts) or ""
|
|
154
|
-
except Exception:
|
|
155
|
-
return ""
|
|
156
|
-
|
|
157
147
|
def extract_hdch_url(self, unpacked: str) -> str:
|
|
158
148
|
"""HDFilmCehennemi unpacked script'ten video URL'sini çıkar"""
|
|
159
149
|
# 1) Decode fonksiyonunun adını bul: function <NAME>(value_parts)
|
|
@@ -168,16 +158,16 @@ class HDFilmCehennemi(PluginBase):
|
|
|
168
158
|
match_call = array_call_regex.search(unpacked)
|
|
169
159
|
if not match_call:
|
|
170
160
|
return ""
|
|
171
|
-
|
|
161
|
+
|
|
172
162
|
array_body = match_call.group(1)
|
|
173
|
-
|
|
163
|
+
|
|
174
164
|
# 3) Array içindeki string parçalarını topla
|
|
175
165
|
parts = re.findall(r'["\']([^"\']+)["\']', array_body)
|
|
176
166
|
if not parts:
|
|
177
167
|
return ""
|
|
178
|
-
|
|
168
|
+
|
|
179
169
|
# 4) Özel decoder ile çöz
|
|
180
|
-
return
|
|
170
|
+
return StreamDecoder._brute_force(parts)
|
|
181
171
|
|
|
182
172
|
async def invoke_local_source(self, iframe: str, source: str, url: str):
|
|
183
173
|
self.httpx.headers.update({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: KekikStream
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.3
|
|
4
4
|
Summary: terminal üzerinden medya içeriği aramanızı ve VLC/MPV gibi popüler medya oynatıcılar aracılığıyla doğrudan izlemenizi sağlayan modüler ve genişletilebilir bir bıdı bıdı
|
|
5
5
|
Home-page: https://github.com/keyiflerolsun/KekikStream
|
|
6
6
|
Author: keyiflerolsun
|
|
@@ -25,7 +25,7 @@ KekikStream/Extractors/HDPlayerSystem.py,sha256=EgnFzx5Q4PkuwAtuff5SYU9k59B-CyOd
|
|
|
25
25
|
KekikStream/Extractors/JetTv.py,sha256=aA3WeOvR-tszac-WSwunZZb1NRy25TQH8vxY3TDscRI,1596
|
|
26
26
|
KekikStream/Extractors/MailRu.py,sha256=xQVCWwYqNoG5T43VAW1_m0v4e80FbO-1pNPKkwhTccU,1218
|
|
27
27
|
KekikStream/Extractors/MixPlayHD.py,sha256=POV_yq3KoZ6S6EqFsKYULEBz92NdUa2BpYKNo0eNQH8,1552
|
|
28
|
-
KekikStream/Extractors/MixTiger.py,sha256=
|
|
28
|
+
KekikStream/Extractors/MixTiger.py,sha256=4VbOYgE4s5H-BGVvJI0AI57M-WBWqnek_LGfCFHAucw,2116
|
|
29
29
|
KekikStream/Extractors/MolyStream.py,sha256=IeeBw9tJJrL5QQ-t2Yp-a-6lnDc3Y00UNiaN6m-o-7c,1160
|
|
30
30
|
KekikStream/Extractors/Odnoklassniki.py,sha256=YfFRCL3Ag5N4zDzK9ZLOr3HVQcsETFQpff1px02imJ0,4019
|
|
31
31
|
KekikStream/Extractors/PeaceMakerst.py,sha256=pEgJb3KDfEPAUjbuvrYbUlxIciKgED-Vd0arrRO3QCk,2317
|
|
@@ -54,11 +54,11 @@ KekikStream/Plugins/DiziPal.py,sha256=hCjf1as54Bc6aC3UV9P0T4yIbOFOP6jHIAoIgRMPbJ
|
|
|
54
54
|
KekikStream/Plugins/DiziYou.py,sha256=XTTShRhlDjTNeqgc28HF-FN9Y7tGUBzHZU0KuFgwvYA,8669
|
|
55
55
|
KekikStream/Plugins/Dizilla.py,sha256=OzZJuFDJK6q6szIcAFM-s3H1HNdUuTaK8VWVGhnONBs,11741
|
|
56
56
|
KekikStream/Plugins/FilmBip.py,sha256=bgdUJWW6f_DoaKxJPES0tJJRauy2PVpw4jsg2zAjbcI,6012
|
|
57
|
-
KekikStream/Plugins/FilmMakinesi.py,sha256=
|
|
57
|
+
KekikStream/Plugins/FilmMakinesi.py,sha256=ONAUlhf2m9dk1AkeFu8sEMG-gIL4qM64f7oXZAoETmo,5455
|
|
58
58
|
KekikStream/Plugins/FilmModu.py,sha256=ux5FACwmkuNQxx3rXQEeX-bWSXC4L7CfFxBZOhPuPFc,6524
|
|
59
59
|
KekikStream/Plugins/FullHDFilm.py,sha256=lYcGpes7HJYFHoKn_Ntk3gUL6bdm8MzDLAv0ns6S1YM,6837
|
|
60
60
|
KekikStream/Plugins/FullHDFilmizlesene.py,sha256=nimV_mSaPYYxG4_d-gnW2Bh4EKMM6hGh0Ev8RbJVs-8,6054
|
|
61
|
-
KekikStream/Plugins/HDFilmCehennemi.py,sha256=
|
|
61
|
+
KekikStream/Plugins/HDFilmCehennemi.py,sha256=LqTlqXdQkhcAME7XYcFW8HAvPxK2nSilXKkyVElsgcg,11060
|
|
62
62
|
KekikStream/Plugins/JetFilmizle.py,sha256=4gbvLgnjdzWr6f10jKYQAC4W5NEJCEOKxJnVQH36QTY,6386
|
|
63
63
|
KekikStream/Plugins/KultFilmler.py,sha256=H_U2uil9Z-aw10tZuSUB0dmMtQJrnckodGRhaA6t6gg,8944
|
|
64
64
|
KekikStream/Plugins/RecTV.py,sha256=tzIVjBP4YKL4dBvjRNIuECrAfNw6F892Fw0pXvLutoU,7187
|
|
@@ -72,9 +72,9 @@ KekikStream/Plugins/SinemaCX.py,sha256=jrE7gkvJgPKjk8XymztyxYErZtPVF9onW48E22Us9
|
|
|
72
72
|
KekikStream/Plugins/Sinezy.py,sha256=_iituEi6A7b-Y-wGcTkFknwFus-oAvZje2XKayzCZHY,6104
|
|
73
73
|
KekikStream/Plugins/SuperFilmGeldi.py,sha256=O3f8jwnX-ihF49kmZ7g6IKU2HZLmLf_RCucplDSglN4,5347
|
|
74
74
|
KekikStream/Plugins/UgurFilm.py,sha256=9vulu0uP0dWVVhWzDf-C7RQN_dLKB2AOJ2NoxU-YMlA,4672
|
|
75
|
-
kekikstream-2.1.
|
|
76
|
-
kekikstream-2.1.
|
|
77
|
-
kekikstream-2.1.
|
|
78
|
-
kekikstream-2.1.
|
|
79
|
-
kekikstream-2.1.
|
|
80
|
-
kekikstream-2.1.
|
|
75
|
+
kekikstream-2.1.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
76
|
+
kekikstream-2.1.3.dist-info/METADATA,sha256=FB_9bnX30vhGONpyDN30d43iO4sHiMXJkJzZZ4JNMpg,10090
|
|
77
|
+
kekikstream-2.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
78
|
+
kekikstream-2.1.3.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
|
|
79
|
+
kekikstream-2.1.3.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
|
|
80
|
+
kekikstream-2.1.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|