KekikStream 2.3.3__py3-none-any.whl → 2.3.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.
Files changed (61) hide show
  1. KekikStream/Core/HTMLHelper.py +134 -0
  2. KekikStream/Core/Plugin/PluginBase.py +12 -2
  3. KekikStream/Core/__init__.py +2 -0
  4. KekikStream/Extractors/CloseLoad.py +12 -13
  5. KekikStream/Extractors/ContentX.py +33 -31
  6. KekikStream/Extractors/DonilasPlay.py +10 -10
  7. KekikStream/Extractors/DzenRu.py +3 -3
  8. KekikStream/Extractors/ExPlay.py +10 -10
  9. KekikStream/Extractors/Filemoon.py +11 -16
  10. KekikStream/Extractors/JetTv.py +4 -4
  11. KekikStream/Extractors/MixPlayHD.py +10 -11
  12. KekikStream/Extractors/MolyStream.py +15 -9
  13. KekikStream/Extractors/Odnoklassniki.py +4 -4
  14. KekikStream/Extractors/PeaceMakerst.py +3 -3
  15. KekikStream/Extractors/PixelDrain.py +6 -5
  16. KekikStream/Extractors/PlayerFilmIzle.py +6 -10
  17. KekikStream/Extractors/RapidVid.py +8 -7
  18. KekikStream/Extractors/SetPlay.py +10 -10
  19. KekikStream/Extractors/SetPrime.py +3 -6
  20. KekikStream/Extractors/SibNet.py +4 -5
  21. KekikStream/Extractors/Sobreatsesuyp.py +5 -5
  22. KekikStream/Extractors/TRsTX.py +5 -5
  23. KekikStream/Extractors/TurboImgz.py +3 -4
  24. KekikStream/Extractors/TurkeyPlayer.py +5 -5
  25. KekikStream/Extractors/VidHide.py +4 -7
  26. KekikStream/Extractors/VidMoly.py +24 -25
  27. KekikStream/Extractors/VidMoxy.py +8 -9
  28. KekikStream/Extractors/VidPapi.py +5 -7
  29. KekikStream/Extractors/VideoSeyred.py +3 -3
  30. KekikStream/Plugins/BelgeselX.py +40 -51
  31. KekikStream/Plugins/DiziBox.py +53 -81
  32. KekikStream/Plugins/DiziPal.py +41 -74
  33. KekikStream/Plugins/DiziWatch.py +217 -0
  34. KekikStream/Plugins/DiziYou.py +95 -88
  35. KekikStream/Plugins/Dizilla.py +54 -72
  36. KekikStream/Plugins/FilmBip.py +24 -49
  37. KekikStream/Plugins/FilmMakinesi.py +35 -52
  38. KekikStream/Plugins/FilmModu.py +27 -41
  39. KekikStream/Plugins/FullHDFilm.py +50 -72
  40. KekikStream/Plugins/FullHDFilmizlesene.py +35 -51
  41. KekikStream/Plugins/HDFilmCehennemi.py +48 -62
  42. KekikStream/Plugins/JetFilmizle.py +32 -50
  43. KekikStream/Plugins/KultFilmler.py +42 -67
  44. KekikStream/Plugins/RecTV.py +7 -4
  45. KekikStream/Plugins/RoketDizi.py +30 -50
  46. KekikStream/Plugins/SelcukFlix.py +15 -29
  47. KekikStream/Plugins/SetFilmIzle.py +41 -70
  48. KekikStream/Plugins/SezonlukDizi.py +47 -65
  49. KekikStream/Plugins/Sinefy.py +39 -50
  50. KekikStream/Plugins/SinemaCX.py +31 -55
  51. KekikStream/Plugins/Sinezy.py +27 -54
  52. KekikStream/Plugins/SuperFilmGeldi.py +25 -44
  53. KekikStream/Plugins/UgurFilm.py +23 -48
  54. KekikStream/Plugins/YabanciDizi.py +274 -0
  55. {kekikstream-2.3.3.dist-info → kekikstream-2.3.5.dist-info}/METADATA +1 -1
  56. kekikstream-2.3.5.dist-info/RECORD +85 -0
  57. kekikstream-2.3.3.dist-info/RECORD +0 -82
  58. {kekikstream-2.3.3.dist-info → kekikstream-2.3.5.dist-info}/WHEEL +0 -0
  59. {kekikstream-2.3.3.dist-info → kekikstream-2.3.5.dist-info}/entry_points.txt +0 -0
  60. {kekikstream-2.3.3.dist-info → kekikstream-2.3.5.dist-info}/licenses/LICENSE +0 -0
  61. {kekikstream-2.3.3.dist-info → kekikstream-2.3.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,274 @@
1
+ # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
+
3
+ from KekikStream.Core import PluginBase, MainPageResult, SearchResult, SeriesInfo, MovieInfo, Episode, ExtractResult, HTMLHelper
4
+ import json, asyncio, time
5
+
6
+ class YabanciDizi(PluginBase):
7
+ name = "YabanciDizi"
8
+ language = "tr"
9
+ main_url = "https://yabancidizi.so"
10
+ favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
11
+ description = "Yabancidizi.so platformu üzerinden en güncel yabancı dizileri ve filmleri izleyebilir, favori içeriklerinizi takip edebilirsiniz."
12
+
13
+ main_page = {
14
+ f"{main_url}/kesfet/eyJvcmRlciI6ImRhdGVfYm90dG9tIiwia2F0ZWdvcnkiOlsiMTciXX0=" : "Diziler",
15
+ f"{main_url}/kesfet/eyJvcmRlciI6ImRhdGVfYm90dG9tIiwia2F0ZWdvcnkiOlsiMTgiXX0=" : "Filmler",
16
+ f"{main_url}/kesfet/eyJvcmRlciI6ImRhdGVfYm90dG9tIiwiY291bnRyeSI6eyJLUiI6IktSIn19" : "Kdrama",
17
+ f"{main_url}/kesfet/eyJvcmRlciI6ImRhdGVfYm90dG9tIiwiY291bnRyeSI6eyJKUCI6IkpQIn0sImNhdGVnb3J5IjpbXX0=" : "Jdrama",
18
+ f"{main_url}/kesfet/eyJvcmRlciI6ImRhdGVfYm90dG9tIiwiY2F0ZWdvcnkiOnsiMyI6IjMifX0=" : "Animasyon",
19
+ }
20
+
21
+ async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
22
+ full_url = url if page == 1 else f"{url}/{page}"
23
+
24
+ resp = await self.httpx.get(full_url, headers={"Referer": f"{self.main_url}/"})
25
+ sel = HTMLHelper(resp.text)
26
+
27
+ results = []
28
+ for item in sel.select("li.mb-lg, li.segment-poster"):
29
+ title = sel.select_text("h2", item)
30
+ href = sel.select_attr("a", "href", item)
31
+ poster = sel.select_attr("img", "src", item)
32
+ score = sel.select_text("span.rating", item)
33
+
34
+ if title and href:
35
+ results.append(MainPageResult(
36
+ category = category,
37
+ title = title,
38
+ url = self.fix_url(href),
39
+ poster = self.fix_url(poster) if poster else None,
40
+ ))
41
+
42
+ return results
43
+
44
+ async def search(self, query: str) -> list[SearchResult]:
45
+ search_url = f"{self.main_url}/search?qr={query}"
46
+
47
+ headers = {
48
+ "X-Requested-With" : "XMLHttpRequest",
49
+ "Referer" : f"{self.main_url}/"
50
+ }
51
+
52
+ resp = await self.httpx.post(search_url, headers=headers)
53
+
54
+ try:
55
+ raw = resp.json()
56
+ # Kotlin mapping: JsonResponse -> Data -> ResultItem
57
+ res_array = raw.get("data", {}).get("result", [])
58
+
59
+ results = []
60
+ for item in res_array:
61
+ title = item.get("s_name")
62
+ image = item.get("s_image")
63
+ slug = item.get("s_link")
64
+ s_type = item.get("s_type") # 0: dizi, 1: film
65
+
66
+ poster = f"{self.main_url}/uploads/series/{image}" if image else None
67
+
68
+ if s_type == "1":
69
+ href = f"{self.main_url}/film/{slug}"
70
+ else:
71
+ href = f"{self.main_url}/dizi/{slug}"
72
+
73
+ if title and slug:
74
+ results.append(SearchResult(
75
+ title = title,
76
+ url = self.fix_url(href),
77
+ poster = self.fix_url(poster) if poster else None
78
+ ))
79
+ return results
80
+ except Exception:
81
+ return []
82
+
83
+ async def load_item(self, url: str) -> SeriesInfo | MovieInfo:
84
+ resp = await self.httpx.get(url, follow_redirects=True)
85
+ sel = HTMLHelper(resp.text)
86
+
87
+ og_title = sel.select_attr("meta[property='og:title']", "content")
88
+ title = og_title.split("|")[0].strip() if og_title else sel.select_text("h1")
89
+
90
+ poster = sel.select_attr("meta[property='og:image']", "content")
91
+ description = sel.select_text("p#tv-series-desc")
92
+
93
+ year = sel.select_text("td div.truncate")
94
+ if year:
95
+ year = year.strip()
96
+
97
+ tags = []
98
+ rating = None
99
+ duration = None
100
+ year = None
101
+ actors = []
102
+ for item in sel.select("div.item"):
103
+ text = item.text(strip=True)
104
+ if "T\u00fcr\u00fc:" in text:
105
+ tags = [t.strip() for t in text.replace("T\u00fcr\u00fc:", "").split(",")]
106
+ elif "IMDb Puan\u0131" in text:
107
+ rating = text.replace("IMDb Puan\u0131", "").strip()
108
+ elif "Yap\u0131m Y\u0131l\u0131" in text:
109
+ year_match = sel.regex_first(r"(\d{4})", text)
110
+ if year_match:
111
+ year = year_match
112
+ elif "Takip\u00e7iler" in text:
113
+ continue
114
+ elif "S\u00fcre" in text:
115
+ dur_match = sel.regex_first(r"(\d+)", text)
116
+ if dur_match:
117
+ duration = dur_match
118
+ elif "Oyuncular:" in text:
119
+ actors = [a.text(strip=True) for a in sel.select("a", item)]
120
+
121
+ if not actors:
122
+ actors = [a.text(strip=True) for a in sel.select("div#common-cast-list div.item h5")]
123
+
124
+ trailer_match = sel.regex_first(r"embed\/(.*)\?rel", resp.text)
125
+ trailer = f"https://www.youtube.com/embed/{trailer_match}" if trailer_match else None
126
+
127
+ if "/film/" in url:
128
+ return MovieInfo(
129
+ title = title,
130
+ url = url,
131
+ poster = self.fix_url(poster) if poster else None,
132
+ description = description,
133
+ rating = rating,
134
+ tags = tags,
135
+ actors = actors,
136
+ year = year,
137
+ duration = int(duration) if duration and duration.isdigit() else None
138
+ )
139
+ else:
140
+ episodes = []
141
+ for bolum_item in sel.select("div.episodes-list div.ui td:has(h6)"):
142
+ link_el = sel.select_first("a", bolum_item)
143
+ if not link_el: continue
144
+
145
+ bolum_href = link_el.attrs.get("href")
146
+ bolum_name = sel.select_text("h6", bolum_item) or link_el.text(strip=True)
147
+
148
+ season = sel.regex_first(r"sezon-(\d+)", bolum_href)
149
+ episode = sel.regex_first(r"bolum-(\d+)", bolum_href)
150
+
151
+ ep_season = int(season) if season and season.isdigit() else None
152
+ ep_episode = int(episode) if episode and episode.isdigit() else None
153
+
154
+ episodes.append(Episode(
155
+ season = ep_season,
156
+ episode = ep_episode,
157
+ title = bolum_name,
158
+ url = self.fix_url(bolum_href)
159
+ ))
160
+
161
+ if episodes and (episodes[0].episode or 0) > (episodes[-1].episode or 0):
162
+ episodes.reverse()
163
+
164
+ return SeriesInfo(
165
+ title = title,
166
+ url = url,
167
+ poster = self.fix_url(poster) if poster else None,
168
+ description = description,
169
+ rating = rating,
170
+ tags = tags,
171
+ actors = actors,
172
+ year = year,
173
+ episodes = episodes
174
+ )
175
+
176
+ async def load_links(self, url: str) -> list[ExtractResult]:
177
+ resp = await self.httpx.get(url, headers={"Referer": f"{self.main_url}/"})
178
+ sel = HTMLHelper(resp.text)
179
+
180
+ results = []
181
+
182
+ # Method 1: alternatives-for-this
183
+ for alt in sel.select("div.alternatives-for-this div.item:not(.active)"):
184
+ data_hash = alt.attrs.get("data-hash")
185
+ data_link = alt.attrs.get("data-link")
186
+ q_type = alt.attrs.get("data-querytype")
187
+
188
+ if not data_hash or not data_link: continue
189
+
190
+ try:
191
+ post_resp = await self.httpx.post(
192
+ f"{self.main_url}/ajax/service",
193
+ data = {
194
+ "link" : data_link,
195
+ "hash" : data_hash,
196
+ "querytype" : q_type,
197
+ "type" : "videoGet"
198
+ },
199
+ headers = {
200
+ "X-Requested-With" : "XMLHttpRequest",
201
+ "Referer" : f"{self.main_url}/"
202
+ },
203
+ cookies = {"udys": "1760709729873", "level": "1"}
204
+ )
205
+
206
+ service_data = post_resp.json()
207
+ api_iframe = service_data.get("api_iframe")
208
+ if api_iframe:
209
+ extract_res = await self._fetch_and_extract(api_iframe, prefix="Alt")
210
+ if extract_res:
211
+ results.extend(extract_res if isinstance(extract_res, list) else [extract_res])
212
+ except Exception:
213
+ continue
214
+
215
+ # Method 2: pointing[data-eid]
216
+ for id_el in sel.select("a.ui.pointing[data-eid]"):
217
+ dil = id_el.text(strip=True)
218
+ v_lang = "tr" if "Dublaj" in dil else "en"
219
+ data_eid = id_el.attrs.get("data-eid")
220
+
221
+ try:
222
+ post_resp = await self.httpx.post(
223
+ f"{self.main_url}/ajax/service",
224
+ data = {
225
+ "e_id" : data_eid,
226
+ "v_lang" : v_lang,
227
+ "type" : "get_whatwehave"
228
+ },
229
+ headers = {
230
+ "X-Requested-With" : "XMLHttpRequest",
231
+ "Referer" : f"{self.main_url}/"
232
+ },
233
+ cookies = {"udys": "1760709729873", "level": "1"}
234
+ )
235
+
236
+ service_data = post_resp.json()
237
+ api_iframe = service_data.get("api_iframe")
238
+ if api_iframe:
239
+ extract_res = await self._fetch_and_extract(api_iframe, prefix=dil)
240
+ if extract_res:
241
+ results.extend(extract_res if isinstance(extract_res, list) else [extract_res])
242
+ except Exception:
243
+ continue
244
+
245
+ return results
246
+
247
+ async def _fetch_and_extract(self, iframe_url, prefix=""):
248
+ # Initial fetch
249
+ resp = await self.httpx.get(
250
+ iframe_url,
251
+ headers = {"Referer": f"{self.main_url}/"},
252
+ cookies = {"udys": "1760709729873", "level": "1"}
253
+ )
254
+
255
+ # Handle "Lütfen bekleyiniz" check from Kotlin
256
+ if "Lütfen bekleyiniz" in resp.text:
257
+ await asyncio.sleep(1)
258
+ timestamp = int(time.time())
259
+ # Retry with t=timestamp as in Kotlin
260
+ sep = "&" if "?" in iframe_url else "?"
261
+ resp = await self.httpx.get(
262
+ f"{iframe_url}{sep}t={timestamp}",
263
+ headers = {"Referer": f"{self.main_url}/"},
264
+ cookies = resp.cookies # Use cookies from first response
265
+ )
266
+
267
+ sel = HTMLHelper(resp.text)
268
+ final_iframe = sel.select_attr("iframe", "src")
269
+
270
+ if final_iframe:
271
+ final_url = self.fix_url(final_iframe)
272
+ return await self.extract(final_url, referer=f"{self.main_url}/", prefix=prefix)
273
+
274
+ return None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: KekikStream
3
- Version: 2.3.3
3
+ Version: 2.3.5
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
@@ -0,0 +1,85 @@
1
+ KekikStream/__init__.py,sha256=nTgIxO1716DVX-cZnMvwi6OjPbuebFyeYpHvpqCJ0Js,12767
2
+ KekikStream/__main__.py,sha256=B81dQoeGEb-T5Sycs3eNAmW7unvx0Mef0syCjs4nPds,137
3
+ KekikStream/requirements.txt,sha256=V-Rk-4DnK8B-HRR6RtSKmTR3sHfaYgOrnBj8kmVz17w,80
4
+ KekikStream/CLI/__init__.py,sha256=U6oLq_O7u5y2eHhBnmfhZNns_EqHHJXJmzl8jvZFUNY,230
5
+ KekikStream/CLI/pypi_kontrol.py,sha256=q6fNs6EKJDc5VuUFig9DBzLzNPp_kMD1vOVgLElcii8,1487
6
+ KekikStream/Core/HTMLHelper.py,sha256=0T0iEvxDvv26zKTnks319X_eTN2QNUJqysKlW0V4PCo,5401
7
+ KekikStream/Core/__init__.py,sha256=sk2pWup1_jsGB43HJzbbqgQYFDZpf2TquEBYUhqOdN4,807
8
+ KekikStream/Core/Extractor/ExtractorBase.py,sha256=CAdeel6zGlj_RHD0lwjyNW5hAaivo1XyAZbnmiVDaZo,2023
9
+ KekikStream/Core/Extractor/ExtractorLoader.py,sha256=GPGCmgFpDBywR8CsNw43-ddseZhSKTjAUETp1Ohbi6E,4796
10
+ KekikStream/Core/Extractor/ExtractorManager.py,sha256=VYkj4CCE5Puqsr6PCeN8i_OS0hfYKI4NScj98BLO39o,2644
11
+ KekikStream/Core/Extractor/ExtractorModels.py,sha256=Qj_gbIeGRewaZXNfYkTi4FFRRq6XBOc0HS0tXGDwajI,445
12
+ KekikStream/Core/Extractor/YTDLPCache.py,sha256=sRg5kwFxkRXA_8iRwsV29E51g9qQJvg8dWUnzfr7EwA,984
13
+ KekikStream/Core/Media/MediaHandler.py,sha256=MEn3spPAThVloN3WcoCwWhpoyMA7tAZvcwYjmjJsX3U,7678
14
+ KekikStream/Core/Media/MediaManager.py,sha256=AaUq2D7JSJIphjoAj2fjLOJjswm7Qf5hjYCbBdrbnDU,438
15
+ KekikStream/Core/Plugin/PluginBase.py,sha256=rTs5XBK10PLo5agaEHQr16ivpo2ZylFwjIUfrwK5V2c,6240
16
+ KekikStream/Core/Plugin/PluginLoader.py,sha256=GcDqN1u3nJeoGKH_oDFHCpwteJlLCxHNbmPrC5L-hZE,3692
17
+ KekikStream/Core/Plugin/PluginManager.py,sha256=CZVg1eegi8vfMfccx0DRV0Box8kXz-aoULTQLgbPbvM,893
18
+ KekikStream/Core/Plugin/PluginModels.py,sha256=Yvx-6Fkn8QCIcuqAkFbCP5EJcq3XBkK_P8S0tRNhS6E,2476
19
+ KekikStream/Core/UI/UIManager.py,sha256=T4V_kdTTWa-UDamgLSKa__dWJuzcvRK9NuwBlzU9Bzc,1693
20
+ KekikStream/Extractors/CloseLoad.py,sha256=qRsiW5SloxWgm6MNUd4DF4vC7aSeyJqD3_0vZoFp7Jc,3176
21
+ KekikStream/Extractors/ContentX.py,sha256=6-pzHBGrwJeGzeMaPZ5s82RCQZL9MEhHDyI3c4L-xMM,3975
22
+ KekikStream/Extractors/DonilasPlay.py,sha256=-Bhfpp0AN_wNYAnsaWdL--wo8DD2VPblTAlUQIX6HYU,3190
23
+ KekikStream/Extractors/DzenRu.py,sha256=WIUZUIixP4X6TweJHpY86fenRY150ucH2VNImvdxcRc,1213
24
+ KekikStream/Extractors/ExPlay.py,sha256=G2ZmXGcsjpZ5ihtL0ZYkyVO8nPuzSC_8AR0zvED6ScQ,1746
25
+ KekikStream/Extractors/Filemoon.py,sha256=Dls1Y0HhYX4j5zJm9RP-9XFq1pzJ4eadL5Cp0uES_qo,3365
26
+ KekikStream/Extractors/HDPlayerSystem.py,sha256=EgnFzx5Q4PkuwAtuff5SYU9k59B-CyOdySl7lbCZ9hM,1312
27
+ KekikStream/Extractors/JFVid.py,sha256=_6A0zmYrWZxIfkCCKAaNxMRLjU-_0Z0hCxCNSApcknk,1350
28
+ KekikStream/Extractors/JetTv.py,sha256=2X1vYDQ0hxBTcpnE_XTcbw9tMS1aXFURcobnPdN8Zxg,1596
29
+ KekikStream/Extractors/MailRu.py,sha256=xQVCWwYqNoG5T43VAW1_m0v4e80FbO-1pNPKkwhTccU,1218
30
+ KekikStream/Extractors/MixPlayHD.py,sha256=u5fUePHfjOI3n7KlNsWhXIv7HA_NMj5bPw1ug-eiXLU,1557
31
+ KekikStream/Extractors/MixTiger.py,sha256=4VbOYgE4s5H-BGVvJI0AI57M-WBWqnek_LGfCFHAucw,2116
32
+ KekikStream/Extractors/MolyStream.py,sha256=SGKr4HdfxDmRk6nPgQUjSbdqFCKWzl7xWxRJtjjFMng,1420
33
+ KekikStream/Extractors/Odnoklassniki.py,sha256=hajKPhWKiIuu_i441TXrWVORpLo2CdTcoJiyU3WQAuI,4038
34
+ KekikStream/Extractors/PeaceMakerst.py,sha256=BJ5Cv5X2GEaMTwn_XFpAVVmts1h5xGno3l5rL7Ugob4,2335
35
+ KekikStream/Extractors/PixelDrain.py,sha256=xPud8W_hqLUXJSU5O-MiCOblcmzrlDJpnEtuxr4ZdI4,1011
36
+ KekikStream/Extractors/PlayerFilmIzle.py,sha256=yIyAo_6kxFQ4CpSiFoZU1YkMxek9dQWrPoUTKnK0E2s,2466
37
+ KekikStream/Extractors/RapidVid.py,sha256=WVRBShs6nQ6lqNKcgy9ZiQBE-ay77lKBuAaSILB9Pv8,3543
38
+ KekikStream/Extractors/SetPlay.py,sha256=nxFNOkui0s8FYpKoIN_yya7IfKPbuosc7bzyV0_YlZA,2169
39
+ KekikStream/Extractors/SetPrime.py,sha256=5xqB72D8FjH3JNrbynA75y_n_aUFZ2vXSr1MY3nZ4cU,1495
40
+ KekikStream/Extractors/SibNet.py,sha256=rvaRHLDL-L_NCopIYoAfzRQhbzXr3jPOVvpx8f9nTFw,874
41
+ KekikStream/Extractors/Sobreatsesuyp.py,sha256=75GUs1jbl_emL3UBDEg9W0hweZGnRiD16dRRGS0XWEg,2013
42
+ KekikStream/Extractors/TRsTX.py,sha256=7XLFjVjFzybZ-zLWA3aRLRMvTZastNUUzuuIGxK7i6Y,2165
43
+ KekikStream/Extractors/TauVideo.py,sha256=2ai9BwwM6qlCgxK7E0B642LtOF5y4hEb9tQ2aDpbMtc,1112
44
+ KekikStream/Extractors/TurboImgz.py,sha256=zLGMUwoThZ_LoW0bThyV8TSCcIYHsUme1RTqqqocQFQ,824
45
+ KekikStream/Extractors/TurkeyPlayer.py,sha256=zdX0IOO3M-kgAYWex2WwJJu9aGf8WhOY-ZIrRmZRiC0,1246
46
+ KekikStream/Extractors/VCTPlay.py,sha256=1BCl2_vVIrwvG56LCzl2KE5g2CUaMAhzImOZMdZpZCQ,1377
47
+ KekikStream/Extractors/VidHide.py,sha256=38ly2Gi44rxIyjeM-6H_HjmwXbKEpSqK4ba16ToQUYs,2707
48
+ KekikStream/Extractors/VidMoly.py,sha256=XYgqlyCUdDNN7Naxa_rjX0WoB5zt17Dda_TdNEDpKOE,4974
49
+ KekikStream/Extractors/VidMoxy.py,sha256=dM7yBfrXSESvYyqc2uP_gLSgV61gpIAY940NAQ58Mts,1843
50
+ KekikStream/Extractors/VidPapi.py,sha256=9y8TN-o4C3JvRyr2V8Ox908tFE1I2BItQLHZlqs8AuI,3175
51
+ KekikStream/Extractors/VideoSeyred.py,sha256=KJxbJkuupmn4wWBj_ejnoDvmjUXwEXkzStYha3EsSpA,1995
52
+ KekikStream/Extractors/YTDLP.py,sha256=Hy8loCSFSquu2zaL3INord-Jm6T8CM6K2-VcDA2K79g,7390
53
+ KekikStream/Extractors/YildizKisaFilm.py,sha256=R_JlrOVeMiDlXYcuTdItnKvidyx8_u3B14fSrxew2aE,1316
54
+ KekikStream/Plugins/BelgeselX.py,sha256=smoLjEJTdptjb7h4m6LhG7ZUmJQtIhYyi0CUFBsk970,8696
55
+ KekikStream/Plugins/DiziBox.py,sha256=KZGWhs6p2-hUTsd-fjz2fsmGEkanL4At2PI8qHAoDm4,10541
56
+ KekikStream/Plugins/DiziPal.py,sha256=CTCGlknBUQIzubhvjexQoqiT3sHni34lpxiTLTemCGo,10299
57
+ KekikStream/Plugins/DiziWatch.py,sha256=b1p9RnGS7hXp7GtpVtFv0AUJOpFJ9tv3faAh6GCGlqQ,8919
58
+ KekikStream/Plugins/DiziYou.py,sha256=ZV80_XHv1nN0wRGgJEtnoJcgFX7S_iVSKFGiFlAqcGQ,11277
59
+ KekikStream/Plugins/Dizilla.py,sha256=apDLGe3Fd-13nNyhcV_TFQxqX4bOZZZxEEGLonKQzS4,13803
60
+ KekikStream/Plugins/FilmBip.py,sha256=pzvleSRZCDHh2tx8Q0JwTFiH9TexNCRnFpr3MCiMb0E,6087
61
+ KekikStream/Plugins/FilmMakinesi.py,sha256=WaCQD7tsZdPbeU35SEnBVRZt2SzUiAQOBRBZR6drvQ4,7797
62
+ KekikStream/Plugins/FilmModu.py,sha256=ou1BrFNR4RQaJdxVqPB5FI8vnQ0UmD-siVdwLnpp7x0,7147
63
+ KekikStream/Plugins/FullHDFilm.py,sha256=08NF5qEydmxT0rGYDWpTOSIYSad8Uv1H1V8yCKG_568,10525
64
+ KekikStream/Plugins/FullHDFilmizlesene.py,sha256=QD1mQwwPFkNoWgBdLaSPFq22S1N1RSKspyyTqz-1Wjk,7145
65
+ KekikStream/Plugins/HDFilmCehennemi.py,sha256=jntMKgE81k_jl3pFzJI3akqvi3g8U961dVx7bj5Pf2w,13140
66
+ KekikStream/Plugins/JetFilmizle.py,sha256=I76CCdH8AJAfjPr5jejtndidcGTBMrVfTFNjnZwp9yo,7801
67
+ KekikStream/Plugins/KultFilmler.py,sha256=e5kXjGJYiI15PQhSADIGznqX7MlA0lK5HYnfFwx_cpM,9383
68
+ KekikStream/Plugins/RecTV.py,sha256=E5ZyWU_lqibwcRm9amb_fqdXpc8qdMkekbHVxY3UmuU,7268
69
+ KekikStream/Plugins/RoketDizi.py,sha256=92c3_UFIhM1SkB0Ybnp53A06VtGw2GmXtr-xmiKeJi0,8444
70
+ KekikStream/Plugins/SelcukFlix.py,sha256=iHLO52_726gzmKAsqgW5ki2_V16fdGAZVjvaqqnQozY,13601
71
+ KekikStream/Plugins/SetFilmIzle.py,sha256=pM4DgR2La9jUacQPRr4dilbfnljcC9l_o1OUipJh3Eg,10418
72
+ KekikStream/Plugins/SezonlukDizi.py,sha256=h8mIglL2ORUklnAvEwH_5z6tT3WYxiNnbkeIvxtGUTE,9751
73
+ KekikStream/Plugins/SineWix.py,sha256=z0r90lggAugEWE1g9vg8gZsInBObUZPnVFQwq7GYmJs,7052
74
+ KekikStream/Plugins/Sinefy.py,sha256=ShX13Q-_5KFBobxZufI5V_4zwWvEWfNYuP-g5CkBuww,11099
75
+ KekikStream/Plugins/SinemaCX.py,sha256=11kzAZWgjkitIonDHHiFHMgnViBj-GjyvTXg7k28MLE,7717
76
+ KekikStream/Plugins/Sinezy.py,sha256=fUj-3WaJMEsKZRnDpHFPxl5Eq2RPLroY80DcftLqvjM,5743
77
+ KekikStream/Plugins/SuperFilmGeldi.py,sha256=StW0ue4qDj8p7CiWy19Lfr2aWtfYvslPExZJuR-3xiY,6348
78
+ KekikStream/Plugins/UgurFilm.py,sha256=H6AA2iTaM0fn6uN8_Dfvr-OqUtM9gDdkg0BKIcZEj7U,4930
79
+ KekikStream/Plugins/YabanciDizi.py,sha256=r3jusGf1Ufr0O1O04qQLxcxk3raCI3EFs4Z2Jwva2-s,11444
80
+ kekikstream-2.3.5.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
81
+ kekikstream-2.3.5.dist-info/METADATA,sha256=YQHFBYbJDi6E_JjE4BvtW7I9OoWuS4XhsPSu5ezxlVs,10761
82
+ kekikstream-2.3.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
83
+ kekikstream-2.3.5.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
84
+ kekikstream-2.3.5.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
85
+ kekikstream-2.3.5.dist-info/RECORD,,
@@ -1,82 +0,0 @@
1
- KekikStream/__init__.py,sha256=nTgIxO1716DVX-cZnMvwi6OjPbuebFyeYpHvpqCJ0Js,12767
2
- KekikStream/__main__.py,sha256=B81dQoeGEb-T5Sycs3eNAmW7unvx0Mef0syCjs4nPds,137
3
- KekikStream/requirements.txt,sha256=V-Rk-4DnK8B-HRR6RtSKmTR3sHfaYgOrnBj8kmVz17w,80
4
- KekikStream/CLI/__init__.py,sha256=U6oLq_O7u5y2eHhBnmfhZNns_EqHHJXJmzl8jvZFUNY,230
5
- KekikStream/CLI/pypi_kontrol.py,sha256=q6fNs6EKJDc5VuUFig9DBzLzNPp_kMD1vOVgLElcii8,1487
6
- KekikStream/Core/__init__.py,sha256=Ise27_Hqe1YeqTcSNnf3HqynhbySEVC-pNP2uKa2GOo,771
7
- KekikStream/Core/Extractor/ExtractorBase.py,sha256=CAdeel6zGlj_RHD0lwjyNW5hAaivo1XyAZbnmiVDaZo,2023
8
- KekikStream/Core/Extractor/ExtractorLoader.py,sha256=GPGCmgFpDBywR8CsNw43-ddseZhSKTjAUETp1Ohbi6E,4796
9
- KekikStream/Core/Extractor/ExtractorManager.py,sha256=VYkj4CCE5Puqsr6PCeN8i_OS0hfYKI4NScj98BLO39o,2644
10
- KekikStream/Core/Extractor/ExtractorModels.py,sha256=Qj_gbIeGRewaZXNfYkTi4FFRRq6XBOc0HS0tXGDwajI,445
11
- KekikStream/Core/Extractor/YTDLPCache.py,sha256=sRg5kwFxkRXA_8iRwsV29E51g9qQJvg8dWUnzfr7EwA,984
12
- KekikStream/Core/Media/MediaHandler.py,sha256=MEn3spPAThVloN3WcoCwWhpoyMA7tAZvcwYjmjJsX3U,7678
13
- KekikStream/Core/Media/MediaManager.py,sha256=AaUq2D7JSJIphjoAj2fjLOJjswm7Qf5hjYCbBdrbnDU,438
14
- KekikStream/Core/Plugin/PluginBase.py,sha256=iirN7cQHccqUa6f6Gr86x8XYg4Rr6TlkaWOtbhnzU9g,5923
15
- KekikStream/Core/Plugin/PluginLoader.py,sha256=GcDqN1u3nJeoGKH_oDFHCpwteJlLCxHNbmPrC5L-hZE,3692
16
- KekikStream/Core/Plugin/PluginManager.py,sha256=CZVg1eegi8vfMfccx0DRV0Box8kXz-aoULTQLgbPbvM,893
17
- KekikStream/Core/Plugin/PluginModels.py,sha256=Yvx-6Fkn8QCIcuqAkFbCP5EJcq3XBkK_P8S0tRNhS6E,2476
18
- KekikStream/Core/UI/UIManager.py,sha256=T4V_kdTTWa-UDamgLSKa__dWJuzcvRK9NuwBlzU9Bzc,1693
19
- KekikStream/Extractors/CloseLoad.py,sha256=xlNcUnPfCJJAu1O-YxzjbbA-i14KZ7DADAfTK1biF-s,3197
20
- KekikStream/Extractors/ContentX.py,sha256=x0j67e1OAw4L1m7ejUTyiIxqr1EhvpjaA_0U-s4IQ-I,3617
21
- KekikStream/Extractors/DonilasPlay.py,sha256=Lr60pEht96SMlXICYWo9J5dOwV4ty8fetBCCqJ3ARUY,3221
22
- KekikStream/Extractors/DzenRu.py,sha256=X0Rhm1-W4YjQwVrJs8YFqVcCxMaZi8rsKiLhK_ZsYlU,1185
23
- KekikStream/Extractors/ExPlay.py,sha256=EJNVKAbaIxlbOsCx7J9aLfNHKOFoqSLZZUw7W4QYeH0,1827
24
- KekikStream/Extractors/Filemoon.py,sha256=kkiV9TTox-7t4v3OislRtsUkRa-2xsYgs_qzE-gvVsU,3507
25
- KekikStream/Extractors/HDPlayerSystem.py,sha256=EgnFzx5Q4PkuwAtuff5SYU9k59B-CyOdySl7lbCZ9hM,1312
26
- KekikStream/Extractors/JFVid.py,sha256=_6A0zmYrWZxIfkCCKAaNxMRLjU-_0Z0hCxCNSApcknk,1350
27
- KekikStream/Extractors/JetTv.py,sha256=aA3WeOvR-tszac-WSwunZZb1NRy25TQH8vxY3TDscRI,1596
28
- KekikStream/Extractors/MailRu.py,sha256=xQVCWwYqNoG5T43VAW1_m0v4e80FbO-1pNPKkwhTccU,1218
29
- KekikStream/Extractors/MixPlayHD.py,sha256=POV_yq3KoZ6S6EqFsKYULEBz92NdUa2BpYKNo0eNQH8,1552
30
- KekikStream/Extractors/MixTiger.py,sha256=4VbOYgE4s5H-BGVvJI0AI57M-WBWqnek_LGfCFHAucw,2116
31
- KekikStream/Extractors/MolyStream.py,sha256=-ldfoVskd8vFB-GeLhb04DFabhQAvX35o-PtAE08hFs,1249
32
- KekikStream/Extractors/Odnoklassniki.py,sha256=YfFRCL3Ag5N4zDzK9ZLOr3HVQcsETFQpff1px02imJ0,4019
33
- KekikStream/Extractors/PeaceMakerst.py,sha256=pEgJb3KDfEPAUjbuvrYbUlxIciKgED-Vd0arrRO3QCk,2317
34
- KekikStream/Extractors/PixelDrain.py,sha256=Uk2pPvtBzaKtRXu1iNO8FLHd0EAuIOIzI1H_n02tg-U,964
35
- KekikStream/Extractors/PlayerFilmIzle.py,sha256=gcgCz_pfMBJmn_5gIKw9kIM15dnRqAHD6gvxp6l73nw,2708
36
- KekikStream/Extractors/RapidVid.py,sha256=t_8ZUp5DCTIaohc5aW4s9HEQQ1A2lU5bTMX84lctmtY,3529
37
- KekikStream/Extractors/SetPlay.py,sha256=6XuNXoNFM1h3KOCkTxeZmcAl8QTdqzVN_pp_dEIKF8A,2235
38
- KekikStream/Extractors/SetPrime.py,sha256=ob09y-Sm91YR7rIRzikhZiMHX6D4Djm5QzFTg6KbO4k,1536
39
- KekikStream/Extractors/SibNet.py,sha256=zJTkzlr34ufKCWzKKCgJrzhb2o-fpjTjFdi38gv6N6g,849
40
- KekikStream/Extractors/Sobreatsesuyp.py,sha256=qlSQHUHjTjBoY0nsuZQWAjnfswbPORkBg6rUuP7SagA,2000
41
- KekikStream/Extractors/TRsTX.py,sha256=mbSRGnQt26a73SbqwtY9rpiYFwgRgVbvA6bkGb_PvP8,2152
42
- KekikStream/Extractors/TauVideo.py,sha256=2ai9BwwM6qlCgxK7E0B642LtOF5y4hEb9tQ2aDpbMtc,1112
43
- KekikStream/Extractors/TurboImgz.py,sha256=nnWnP1K4JZbMj6S-YuXxej31UZtF4JcboSW4n7A4A5c,824
44
- KekikStream/Extractors/TurkeyPlayer.py,sha256=FX_H3vzXjAD7IjK11bjJVVw_VdPQ4n6YQLfjQ6E3t7o,1247
45
- KekikStream/Extractors/VCTPlay.py,sha256=1BCl2_vVIrwvG56LCzl2KE5g2CUaMAhzImOZMdZpZCQ,1377
46
- KekikStream/Extractors/VidHide.py,sha256=qIfo-q2S8XpO1O3KUI1KeQ8ajGJTUGr4unqIbfCJ2-I,2799
47
- KekikStream/Extractors/VidMoly.py,sha256=UAocsKcZjTZXUjJjF4ejVqzmTGiVbGeaExg5nj53FvI,5167
48
- KekikStream/Extractors/VidMoxy.py,sha256=LT7wTKBtuuagXwfGjWZwQF2NQGuChurZJ-I6gM0Jcek,1771
49
- KekikStream/Extractors/VidPapi.py,sha256=g9ohdL9VJrxy4N7xerbIRz3ZxjsXFHlJWy0NaZ31hFY,3259
50
- KekikStream/Extractors/VideoSeyred.py,sha256=M6QPZ_isX9vM_7LPo-2I_8Cf1vB9awHw8vvzBODtoiQ,1977
51
- KekikStream/Extractors/YTDLP.py,sha256=Hy8loCSFSquu2zaL3INord-Jm6T8CM6K2-VcDA2K79g,7390
52
- KekikStream/Extractors/YildizKisaFilm.py,sha256=R_JlrOVeMiDlXYcuTdItnKvidyx8_u3B14fSrxew2aE,1316
53
- KekikStream/Plugins/BelgeselX.py,sha256=Rr8fxpAOjApBVLH0r6f8xxxWVw8csyYF6HR8UQ_Nh4w,8930
54
- KekikStream/Plugins/DiziBox.py,sha256=2RGkYEpKsoznE0Gr822-Cw7n-aF_cjyi7Z-79RdJFao,11754
55
- KekikStream/Plugins/DiziPal.py,sha256=Cr3jg8BExhoqWXxyQd-XzS4MUwIvyPtWLB92WJMm_tU,11481
56
- KekikStream/Plugins/DiziYou.py,sha256=52JCeNG9l6xUHp_Q_Q812TSe-WI2FkqEc82WtD7uZA0,10447
57
- KekikStream/Plugins/Dizilla.py,sha256=nVKpKxv4FJx0ifhz76ugi73i78gSwLzr-TYMh8lMxXs,14582
58
- KekikStream/Plugins/FilmBip.py,sha256=tTp1gLHC1rVn0vY39jwxpF_fHC5_F0pqcCUCDItgHn0,7103
59
- KekikStream/Plugins/FilmMakinesi.py,sha256=tjNcTreesqJCIby1uloLMl2e_dnaUtJe2Wbp7FhzjlY,8733
60
- KekikStream/Plugins/FilmModu.py,sha256=ZUrBAq1mK2na8YuZEmev64tGhLrql-n-KK1wYDLICn0,7730
61
- KekikStream/Plugins/FullHDFilm.py,sha256=B0wXwu_hcuoMxoBoecfylaOp6EPXOzWcgr90Ei1LiuU,11430
62
- KekikStream/Plugins/FullHDFilmizlesene.py,sha256=Y6wzW4JnALT91FR_RAmbi1KhM6m7NYlCBh8UGXkKeSs,7900
63
- KekikStream/Plugins/HDFilmCehennemi.py,sha256=JDW1FifATpO46fvgzLno9lCLufaORek6nayHTgui0zY,13872
64
- KekikStream/Plugins/JetFilmizle.py,sha256=zqSk1NbOsClViJfETX64jiqREaEDfRskQseIBOzwl-c,8860
65
- KekikStream/Plugins/KultFilmler.py,sha256=eUWXuo3I_qg3Z8k9uM-Xyy4DLfK1jKeFR2I284MjNks,10240
66
- KekikStream/Plugins/RecTV.py,sha256=Nj4AdeetPMzvZ-VKUdUGhBC1SiFSBRYRebODgE2UeI8,7228
67
- KekikStream/Plugins/RoketDizi.py,sha256=Ps6kyBKpSPjMuzFYBm1ryr7gfl_nk8jEj0zQe4SUU0o,9260
68
- KekikStream/Plugins/SelcukFlix.py,sha256=hsoKh5cZ0xDeJ7MtRUQPX-mWFcrTrsaLy2dDaVwuyKg,14099
69
- KekikStream/Plugins/SetFilmIzle.py,sha256=cCl5dO77GyTAv0IAsvybBZyz74ZAwySxoIJMSOtLg5A,11501
70
- KekikStream/Plugins/SezonlukDizi.py,sha256=xIc6Ez8Xt3iyKykJDB52MygpotIjrTTLjgMD1HVL85c,10828
71
- KekikStream/Plugins/SineWix.py,sha256=z0r90lggAugEWE1g9vg8gZsInBObUZPnVFQwq7GYmJs,7052
72
- KekikStream/Plugins/Sinefy.py,sha256=VVsi3iD1a1LcIx44vynH5olS0Kqh9DAsuuHtBiYUpxo,11612
73
- KekikStream/Plugins/SinemaCX.py,sha256=6mYz7Yqja_weEfCiLrzMhji1eiSKaYHj0vX4aomDWvs,8628
74
- KekikStream/Plugins/Sinezy.py,sha256=zBpxUpIIfdnZdolPdkxLMkTsWeGUMW1lht3dNwp_AYU,6756
75
- KekikStream/Plugins/SuperFilmGeldi.py,sha256=zrTMpAP4NTxhQ4lgprBPXkihE7oQu2jNY7IFA7NWWYA,7144
76
- KekikStream/Plugins/UgurFilm.py,sha256=S4Zrml9I3W3iW_2feLJWSkvsVZHpQQQlXRJk4E8li-c,5999
77
- kekikstream-2.3.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
78
- kekikstream-2.3.3.dist-info/METADATA,sha256=j_xVq9W3kwCvENDYhvPB2pF-m1hTdofZZli6Q5vOAoc,10761
79
- kekikstream-2.3.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
80
- kekikstream-2.3.3.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
81
- kekikstream-2.3.3.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
82
- kekikstream-2.3.3.dist-info/RECORD,,