KekikStream 1.7.2__py3-none-any.whl → 1.7.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.
Files changed (31) hide show
  1. KekikStream/Extractors/DzenRu.py +39 -0
  2. KekikStream/Extractors/ExPlay.py +54 -0
  3. KekikStream/Extractors/FirePlayer.py +61 -0
  4. KekikStream/Extractors/HDPlayerSystem.py +42 -0
  5. KekikStream/Extractors/JetTv.py +47 -0
  6. KekikStream/Extractors/MixTiger.py +61 -0
  7. KekikStream/Extractors/PlayerFilmIzle.py +63 -0
  8. KekikStream/Extractors/SetPlay.py +58 -0
  9. KekikStream/Extractors/SetPrime.py +46 -0
  10. KekikStream/Extractors/TurkeyPlayer.py +35 -0
  11. KekikStream/Extractors/VidHide.py +73 -0
  12. KekikStream/Extractors/VidPapi.py +90 -0
  13. KekikStream/Extractors/VidStack.py +75 -0
  14. KekikStream/Extractors/YildizKisaFilm.py +42 -0
  15. KekikStream/Plugins/Dizilla.py +5 -1
  16. KekikStream/Plugins/FilmBip.py +145 -0
  17. KekikStream/Plugins/FullHDFilm.py +164 -0
  18. KekikStream/Plugins/JetFilmizle.py +10 -3
  19. KekikStream/Plugins/KultFilmler.py +219 -0
  20. KekikStream/Plugins/RoketDizi.py +204 -0
  21. KekikStream/Plugins/SelcukFlix.py +216 -0
  22. KekikStream/Plugins/SezonlukDizi.py +3 -0
  23. KekikStream/Plugins/Sinefy.py +214 -0
  24. KekikStream/Plugins/Sinezy.py +99 -0
  25. KekikStream/Plugins/SuperFilmGeldi.py +121 -0
  26. {kekikstream-1.7.2.dist-info → kekikstream-1.7.3.dist-info}/METADATA +1 -1
  27. {kekikstream-1.7.2.dist-info → kekikstream-1.7.3.dist-info}/RECORD +31 -9
  28. {kekikstream-1.7.2.dist-info → kekikstream-1.7.3.dist-info}/WHEEL +0 -0
  29. {kekikstream-1.7.2.dist-info → kekikstream-1.7.3.dist-info}/entry_points.txt +0 -0
  30. {kekikstream-1.7.2.dist-info → kekikstream-1.7.3.dist-info}/licenses/LICENSE +0 -0
  31. {kekikstream-1.7.2.dist-info → kekikstream-1.7.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,214 @@
1
+ # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
+
3
+ from KekikStream.Core import PluginBase, MainPageResult, SearchResult, SeriesInfo, Episode, MovieInfo
4
+ from parsel import Selector
5
+ import re, json, urllib.parse
6
+
7
+ class Sinefy(PluginBase):
8
+ name = "Sinefy"
9
+ main_url = "https://sinefy3.com"
10
+ lang = "tr"
11
+
12
+ main_page = {
13
+ "page/" : "Son Eklenenler",
14
+ "en-yenifilmler" : "Yeni Filmler",
15
+ "netflix-filmleri-izle" : "Netflix Filmleri",
16
+ "dizi-izle/netflix" : "Netflix Dizileri"
17
+ }
18
+
19
+ async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
20
+ if "page/" in url:
21
+ full_url = f"{self.main_url}/{url}{page}"
22
+ elif "en-yenifilmler" in url or "netflix" in url:
23
+ full_url = f"{self.main_url}/{url}/{page}"
24
+ else:
25
+ full_url = f"{self.main_url}/{url}&page={page}"
26
+
27
+ resp = await self.cffi.get(full_url)
28
+ sel = Selector(resp.text)
29
+
30
+ results = []
31
+ # Kotlin: div.poster-with-subject, div.dark-segment div.poster-md.poster
32
+ for item in sel.css("div.poster-with-subject, div.dark-segment div.poster-md.poster"):
33
+ title = item.css("h2::text").get()
34
+ href = item.css("a::attr(href)").get()
35
+ poster= item.css("img::attr(data-srcset)").get()
36
+ if poster:
37
+ poster = poster.split(",")[0].split(" ")[0]
38
+
39
+ if title and href:
40
+ results.append(MainPageResult(
41
+ category=category,
42
+ title=title,
43
+ url=self.fix_url(href),
44
+ poster=self.fix_url(poster)
45
+ ))
46
+ return results
47
+
48
+ async def search(self, query: str) -> list[SearchResult]:
49
+ # Try to get dynamic keys from main page first
50
+ c_key = "ca1d4a53d0f4761a949b85e51e18f096"
51
+ c_value = "MTc0NzI2OTAwMDU3ZTEwYmZjMDViNWFmOWIwZDViODg0MjU4MjA1ZmYxOThmZTYwMDdjMWQzMzliNzY5NzFlZmViMzRhMGVmNjgwODU3MGIyZA=="
52
+
53
+ try:
54
+ resp = await self.cffi.get(self.main_url)
55
+ sel = Selector(resp.text)
56
+ cke = sel.css("input[name='cKey']::attr(value)").get()
57
+ cval = sel.css("input[name='cValue']::attr(value)").get()
58
+ if cke and cval:
59
+ c_key = cke
60
+ c_value = cval
61
+ except Exception:
62
+ pass
63
+
64
+ post_url = f"{self.main_url}/bg/searchcontent"
65
+ data = {
66
+ "cKey": c_key,
67
+ "cValue": c_value,
68
+ "searchTerm": query
69
+ }
70
+
71
+ headers = {
72
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0",
73
+ "Accept": "application/json, text/javascript, */*; q=0.01",
74
+ "X-Requested-With": "XMLHttpRequest",
75
+ "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
76
+ }
77
+
78
+ response = await self.cffi.post(post_url, data=data, headers=headers)
79
+
80
+ try:
81
+ # Extract JSON data from response (might contain garbage chars at start)
82
+ raw = response.text
83
+ json_start = raw.find('{')
84
+ if json_start != -1:
85
+ clean_json = raw[json_start:]
86
+ data = json.loads(clean_json)
87
+
88
+ results = []
89
+ # Result array is in data['data']['result']
90
+ res_array = data.get("data", {}).get("result", [])
91
+
92
+ if not res_array:
93
+ # Fallback manual parsing ?
94
+ pass
95
+
96
+ for item in res_array:
97
+ name = item.get("object_name")
98
+ slug = item.get("used_slug")
99
+ poster = item.get("object_poster_url")
100
+
101
+ if name and slug:
102
+ if "cdn.ampproject.org" in poster:
103
+ poster = "https://images.macellan.online/images/movie/poster/180/275/80/" + poster.split("/")[-1]
104
+
105
+ results.append(SearchResult(
106
+ title=name,
107
+ url=self.fix_url(slug),
108
+ poster=self.fix_url(poster)
109
+ ))
110
+ return results
111
+
112
+ except Exception:
113
+ pass
114
+ return []
115
+
116
+ async def load_item(self, url: str) -> SeriesInfo:
117
+ resp = await self.cffi.get(url)
118
+ sel = Selector(resp.text)
119
+
120
+ title = sel.css("h1::text").get()
121
+ poster_info = sel.css("div.ui.items img::attr(data-srcset)").get()
122
+ poster = None
123
+ if poster_info:
124
+ # take 1x
125
+ parts = str(poster_info).split(",")
126
+ for p in parts:
127
+ if "1x" in p:
128
+ poster = p.strip().split(" ")[0]
129
+ break
130
+
131
+ description = sel.css("p#tv-series-desc::text").get()
132
+ tags = sel.css("div.item.categories a::text").getall()
133
+ rating = sel.css("span.color-imdb::text").get()
134
+ actors = sel.css("div.content h5::text").getall()
135
+
136
+ episodes = []
137
+ season_elements = sel.css("section.episodes-box")
138
+
139
+ if season_elements:
140
+ # Get season links
141
+ season_links = []
142
+ menu = sel.css("div.ui.vertical.fluid.tabular.menu a")
143
+ for link in menu:
144
+ href = link.css("::attr(href)").get()
145
+ if href:
146
+ season_links.append(self.fix_url(href))
147
+
148
+ for s_url in season_links:
149
+ target_url = s_url if "/bolum-" in s_url else f"{s_url}/bolum-1"
150
+
151
+ try:
152
+ s_resp = await self.cffi.get(target_url)
153
+ s_sel = Selector(s_resp.text)
154
+ ep_links = s_sel.css("div.ui.list.celled a.item")
155
+
156
+ current_season_no = 1
157
+ match = re.search(r"sezon-(\d+)", target_url)
158
+ if match:
159
+ current_season_no = int(match.group(1))
160
+
161
+ for ep_link in ep_links:
162
+ href = ep_link.css("::attr(href)").get()
163
+ name = ep_link.css("div.content div.header::text").get()
164
+
165
+ if href:
166
+ ep_no = 0
167
+ match_ep = re.search(r"bolum-(\d+)", href)
168
+ if match_ep:
169
+ ep_no = int(match_ep.group(1))
170
+
171
+ episodes.append(Episode(
172
+ season = current_season_no,
173
+ episode = ep_no,
174
+ title = name.strip() if name else "",
175
+ url = self.fix_url(href)
176
+ ))
177
+ except Exception:
178
+ pass
179
+
180
+ if episodes:
181
+ return SeriesInfo(
182
+ title=title,
183
+ url=url,
184
+ poster=self.fix_url(poster),
185
+ description=description,
186
+ rating=rating,
187
+ tags=tags,
188
+ actors=actors,
189
+ episodes=episodes
190
+ )
191
+ else:
192
+ return MovieInfo(
193
+ title=title,
194
+ url=url,
195
+ poster=self.fix_url(poster),
196
+ description=description,
197
+ rating=rating,
198
+ tags=tags,
199
+ actors=actors
200
+ )
201
+
202
+ async def load_links(self, url: str) -> list[dict]:
203
+ resp = await self.cffi.get(url)
204
+ sel = Selector(resp.text)
205
+
206
+ iframe = sel.css("iframe::attr(src)").get()
207
+ if iframe:
208
+ iframe = self.fix_url(iframe)
209
+ extractor = self.ex_manager.find_extractor(iframe)
210
+ return [{
211
+ "url": iframe,
212
+ "name": extractor.name if extractor else "Iframe"
213
+ }]
214
+ return []
@@ -0,0 +1,99 @@
1
+ # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
+
3
+ from KekikStream.Core import PluginBase, MainPageResult, SearchResult, MovieInfo
4
+ from parsel import Selector
5
+ import re, base64
6
+
7
+ class Sinezy(PluginBase):
8
+ name = "Sinezy"
9
+ main_url = "https://sinezy.site"
10
+ lang = "tr"
11
+
12
+ main_page = {
13
+ "izle/en-yeni-filmler/" : "Yeni Filmler",
14
+ "izle/en-yi-filmler/" : "En İyi Filmler"
15
+ }
16
+
17
+ async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
18
+ full_url = f"{self.main_url}/{url}page/{page}/"
19
+ resp = await self.cffi.get(full_url)
20
+ sel = Selector(resp.text)
21
+
22
+ results = []
23
+ for item in sel.css("div.container div.content div.movie_box.move_k"):
24
+ title = item.css("a::attr(title)").get()
25
+ href = item.css("a::attr(href)").get()
26
+ poster= item.css("img::attr(data-src)").get()
27
+
28
+ if title and href:
29
+ results.append(MainPageResult(
30
+ category=category,
31
+ title=title,
32
+ url=self.fix_url(href),
33
+ poster=self.fix_url(poster)
34
+ ))
35
+ return results
36
+
37
+ async def search(self, query: str) -> list[SearchResult]:
38
+ url = f"{self.main_url}/arama/?s={query}"
39
+ resp = await self.cffi.get(url)
40
+ sel = Selector(resp.text)
41
+
42
+ results = []
43
+ for item in sel.css("div.movie_box.move_k"):
44
+ title = item.css("a::attr(title)").get()
45
+ href = item.css("a::attr(href)").get()
46
+ poster= item.css("img::attr(data-src)").get()
47
+
48
+ if title and href:
49
+ results.append(SearchResult(
50
+ title=title,
51
+ url=self.fix_url(href),
52
+ poster=self.fix_url(poster)
53
+ ))
54
+ return results
55
+
56
+ async def load_item(self, url: str) -> MovieInfo:
57
+ resp = await self.cffi.get(url)
58
+ sel = Selector(resp.text)
59
+
60
+ title = sel.css("div.detail::attr(title)").get()
61
+ poster = sel.css("div.move_k img::attr(data-src)").get()
62
+ description = sel.css("div.desc.yeniscroll p::text").get()
63
+ rating = sel.css("span.info span.imdb::text").get()
64
+
65
+ tags = sel.css("div.detail span a::text").getall()
66
+ actors = sel.css("span.oyn p::text").getall() # Might need splitting logic
67
+
68
+ return MovieInfo(
69
+ title=title,
70
+ url=url,
71
+ poster=self.fix_url(poster),
72
+ description=description,
73
+ tags=tags,
74
+ rating=rating,
75
+ actors=actors
76
+ )
77
+
78
+ async def load_links(self, url: str) -> list[dict]:
79
+ resp = await self.cffi.get(url)
80
+
81
+ match = re.search(r"ilkpartkod\s*=\s*'([^']+)'", resp.text, re.IGNORECASE)
82
+ if match:
83
+ encoded = match.group(1)
84
+ try:
85
+ decoded = base64.b64decode(encoded).decode('utf-8')
86
+ iframe_match = re.search(r'src="([^"]*)"', decoded)
87
+ if iframe_match:
88
+ iframe = iframe_match.group(1)
89
+ iframe = self.fix_url(iframe)
90
+
91
+ extractor = self.ex_manager.find_extractor(iframe)
92
+ return [{
93
+ "url": iframe,
94
+ "name": extractor.name if extractor else "Iframe"
95
+ }]
96
+ except Exception:
97
+ pass
98
+
99
+ return []
@@ -0,0 +1,121 @@
1
+ # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
+
3
+ from KekikStream.Core import PluginBase, MainPageResult, SearchResult, MovieInfo, ExtractResult, Subtitle
4
+ from parsel import Selector
5
+ import re
6
+
7
+ class SuperFilmGeldi(PluginBase):
8
+ name = "SuperFilmGeldi"
9
+ language = "tr"
10
+ main_url = "https://www.superfilmgeldi13.art"
11
+ favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
12
+ description = "Ücretsiz film izleme sitesi."
13
+
14
+ main_page = {
15
+ f"{main_url}/page/SAYFA" : "Son Eklenenler",
16
+ f"{main_url}/hdizle/category/aksiyon/page/SAYFA" : "Aksiyon",
17
+ f"{main_url}/hdizle/category/animasyon/page/SAYFA" : "Animasyon",
18
+ f"{main_url}/hdizle/category/belgesel/page/SAYFA" : "Belgesel",
19
+ f"{main_url}/hdizle/category/bilim-kurgu/page/SAYFA" : "Bilim Kurgu",
20
+ f"{main_url}/hdizle/category/fantastik/page/SAYFA" : "Fantastik",
21
+ f"{main_url}/hdizle/category/komedi-filmleri/page/SAYFA" : "Komedi Filmleri",
22
+ f"{main_url}/hdizle/category/macera/page/SAYFA" : "Macera",
23
+ f"{main_url}/hdizle/category/gerilim/page/SAYFA" : "Gerilim",
24
+ f"{main_url}/hdizle/category/suc/page/SAYFA" : "Suç",
25
+ f"{main_url}/hdizle/category/karete-filmleri/page/SAYFA" : "Karate Filmleri",
26
+ }
27
+
28
+ async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
29
+ istek = await self.cffi.get(url.replace("SAYFA", str(page)))
30
+ secici = Selector(istek.text)
31
+
32
+ return [
33
+ MainPageResult(
34
+ category = category,
35
+ title = self.clean_title(veri.css("span.movie-title a::text").get().split(" izle")[0]),
36
+ url = self.fix_url(veri.css("span.movie-title a::attr(href)").get()),
37
+ poster = self.fix_url(veri.css("img::attr(src)").get()),
38
+ )
39
+ for veri in secici.css("div.movie-preview-content")
40
+ if veri.css("span.movie-title a::text").get()
41
+ ]
42
+
43
+ async def search(self, query: str) -> list[SearchResult]:
44
+ istek = await self.cffi.get(f"{self.main_url}?s={query}")
45
+ secici = Selector(istek.text)
46
+
47
+ return [
48
+ SearchResult(
49
+ title = self.clean_title(veri.css("span.movie-title a::text").get().split(" izle")[0]),
50
+ url = self.fix_url(veri.css("span.movie-title a::attr(href)").get()),
51
+ poster = self.fix_url(veri.css("img::attr(src)").get()),
52
+ )
53
+ for veri in secici.css("div.movie-preview-content")
54
+ if veri.css("span.movie-title a::text").get()
55
+ ]
56
+
57
+ async def load_item(self, url: str) -> MovieInfo:
58
+ istek = await self.cffi.get(url)
59
+ secici = Selector(istek.text)
60
+
61
+ title = secici.css("div.title h1::text").get()
62
+ title = self.clean_title(title.split(" izle")[0]) if title else ""
63
+ poster = self.fix_url(secici.css("div.poster img::attr(src)").get())
64
+ year = secici.css("div.release a::text").re_first(r"(\d{4})")
65
+ description = secici.css("div.excerpt p::text").get()
66
+ tags = secici.css("div.categories a::text").getall()
67
+ actors = secici.css("div.actor a::text").getall()
68
+
69
+ return MovieInfo(
70
+ url = url,
71
+ poster = poster,
72
+ title = title,
73
+ description = description,
74
+ tags = tags,
75
+ year = year,
76
+ actors = actors,
77
+ )
78
+
79
+ async def load_links(self, url: str) -> list[dict]:
80
+ istek = await self.cffi.get(url)
81
+ secici = Selector(istek.text)
82
+
83
+ iframe = self.fix_url(secici.css("div#vast iframe::attr(src)").get())
84
+ if not iframe:
85
+ return []
86
+
87
+ results = []
88
+
89
+ # Mix player özel işleme
90
+ if "mix" in iframe and "index.php?data=" in iframe:
91
+ iframe_istek = await self.cffi.get(iframe, headers={"Referer": f"{self.main_url}/"})
92
+ mix_point = re.search(r'videoUrl":"(.*)","videoServer', iframe_istek.text)
93
+
94
+ if mix_point:
95
+ mix_point = mix_point[1].replace("\\", "")
96
+
97
+ # Endpoint belirleme
98
+ if "mixlion" in iframe:
99
+ end_point = "?s=3&d="
100
+ elif "mixeagle" in iframe:
101
+ end_point = "?s=1&d="
102
+ else:
103
+ end_point = "?s=0&d="
104
+
105
+ m3u_link = iframe.split("/player")[0] + mix_point + end_point
106
+
107
+ results.append({
108
+ "name" : f"{self.name} | Mix Player",
109
+ "url" : m3u_link,
110
+ "referer" : iframe,
111
+ "subtitles" : []
112
+ })
113
+ else:
114
+ extractor = self.ex_manager.find_extractor(iframe)
115
+ results.append({
116
+ "name" : extractor.name if extractor else "Player",
117
+ "url" : iframe,
118
+ "referer" : f"{self.main_url}/"
119
+ })
120
+
121
+ return results
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: KekikStream
3
- Version: 1.7.2
3
+ Version: 1.7.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
@@ -17,13 +17,19 @@ KekikStream/Core/Plugin/PluginModels.py,sha256=Aty3V4B3nPStVVSjYO9EIBmbUhavChQwQ
17
17
  KekikStream/Core/UI/UIManager.py,sha256=T4V_kdTTWa-UDamgLSKa__dWJuzcvRK9NuwBlzU9Bzc,1693
18
18
  KekikStream/Extractors/CloseLoad.py,sha256=yIWPNVYTHcBT8Yqjx9pYt8oIwvSplCMjxUaSGqZROqs,909
19
19
  KekikStream/Extractors/ContentX.py,sha256=gDzMeIS3OYLbMlide8AJLZOSaSZt3WMIQWKQDn_8v6o,3040
20
+ KekikStream/Extractors/DzenRu.py,sha256=20B1H3SKHWMhjVx9AKCiOSQ2_WHlUSFAOwXJO1MEE4Y,1211
21
+ KekikStream/Extractors/ExPlay.py,sha256=DdsyUEuMvdxEQie3GrNwhMQu9S3ab4EWBSyDV4Eyw_Q,1853
22
+ KekikStream/Extractors/FirePlayer.py,sha256=IEbvYlzLF2MYS3EVlXMz4-lmyPUyKs24yJfnmA_IVCc,2162
20
23
  KekikStream/Extractors/FourCX.py,sha256=4FrMj1IZBBpN_g1P6S3A-8eUu7QFwlt4fJXzJ7vfe0Q,221
21
24
  KekikStream/Extractors/FourPichive.py,sha256=iq3BCUbih1UVF4y4BIWO--0hX5jP2nxqesNx3MGP3kQ,234
22
25
  KekikStream/Extractors/FourPlayRu.py,sha256=wq1ylxKpsO_IBoYr_ALzB2dVrQpJ-jY9lf2zPhcAZX8,228
26
+ KekikStream/Extractors/HDPlayerSystem.py,sha256=8BSbBowzcqzGdJ2HQiKJHQ-7tJu002-1nuCWWsN_QOk,1339
23
27
  KekikStream/Extractors/HDStreamAble.py,sha256=66n5EvIdX_or5cdnlJ_Uqmzi50n4rl9c5VCw8kBqhQk,245
24
28
  KekikStream/Extractors/Hotlinger.py,sha256=NFMRgUmb6BCrJfa7Hi0VarDNYvCeVknBWEk24FKBBa0,224
29
+ KekikStream/Extractors/JetTv.py,sha256=rEQDhgWvXyY6UcNWMpHclFhIdiopYFpK8X5JL1Kw9RQ,1668
25
30
  KekikStream/Extractors/MailRu.py,sha256=B38pc4yq2qzwbHYMd0ogbufUSpL0Yokq2XYemrQX8rA,1277
26
31
  KekikStream/Extractors/MixPlayHD.py,sha256=SLNWXo7pTLTuRO-QXveDxOMViIWYbWfdBX68aBqG1ug,1582
32
+ KekikStream/Extractors/MixTiger.py,sha256=FBjoMkiRXsWk2WCtW-kOmA516eljZawNz_9Ylv4iZVE,2237
27
33
  KekikStream/Extractors/MolyStream.py,sha256=y1kB2Fuf0kEchl6mxcyFdaRWOKwt6zSwYy3ojPC135M,1171
28
34
  KekikStream/Extractors/Odnoklassniki.py,sha256=5bzxY5j_jZH16DUhswWVuxnwHQ-zO50eQ4j8zvVaoew,3777
29
35
  KekikStream/Extractors/OkRuHTTP.py,sha256=L-B0i_i_Vnm61GvUfd6cGIW-o_H4M-C7DO_cdw2rQPU,228
@@ -32,33 +38,49 @@ KekikStream/Extractors/PeaceMakerst.py,sha256=EhxNgQibQIRtRAYQZJKiDvojIQM6z8z16I
32
38
  KekikStream/Extractors/Pichive.py,sha256=BSVYFwL3Ax6yGoS1WkpOWtngxNyuZLoKzpPwjibpu2s,221
33
39
  KekikStream/Extractors/PixelDrain.py,sha256=72DtN3Txywat7PpKbpPucBw6DR_22C1sn2wzmdd5nKg,991
34
40
  KekikStream/Extractors/PlayRu.py,sha256=DQMZyCSJwLkrh-gfDD8T1DvUFNBAKUXpByeCAWuK6YY,215
41
+ KekikStream/Extractors/PlayerFilmIzle.py,sha256=5gLuM5e-8kuEfL7CPyu3-mYBTQtq18qPrLiejuETZjI,2443
35
42
  KekikStream/Extractors/RapidVid.py,sha256=yg-kGDQj2CqOR33vQGQ_VL_fLKYL0G3bGGOOYTWiZTw,2943
43
+ KekikStream/Extractors/SetPlay.py,sha256=qwezYtq2A9wpf9-KyZNmKsRUVz76hkeRg9hjwn_uCmM,1932
44
+ KekikStream/Extractors/SetPrime.py,sha256=gSlbpE9bD4RZuvpaotF25WqhBmC3R3Ruv0RSx4QLdVs,1563
36
45
  KekikStream/Extractors/SibNet.py,sha256=yg3Ok9yAHCEW8bWrrgwJehUKg_5su1b3hscHnehbLBM,875
37
46
  KekikStream/Extractors/Sobreatsesuyp.py,sha256=qPqkaSCo3dwCAe68cFmVZEn3D4BHBjJTJB_q9HnhUMo,2032
38
47
  KekikStream/Extractors/TRsTX.py,sha256=G9O5i4df9JWbg9EX84I-skA1BG1YJ9jTa7Tu4mg7qo4,2184
39
48
  KekikStream/Extractors/TauVideo.py,sha256=Qt2rV5QCqIZPX_u-_qoCvEuPiXKDbn8-BQFE7TIDXEA,1146
40
49
  KekikStream/Extractors/TurboImgz.py,sha256=Or_hiZ_WRxjduBJP6xryFh0ShGosDFBOZKXiFD7-UM8,854
50
+ KekikStream/Extractors/TurkeyPlayer.py,sha256=DnjKkwYcMdtsMpWBOuBPiM-IzoLiK_pUG_h7-9Jw278,1265
51
+ KekikStream/Extractors/VidHide.py,sha256=yXrHTa9pe2fqLdJ7WmpF3n8OtEKFhzajQb-LlpK5MjQ,2555
41
52
  KekikStream/Extractors/VidMoly.py,sha256=WfQZSXfLjN7R_V7PHY9mdKky4w9jefZD6yEh_l7EyOI,3678
42
53
  KekikStream/Extractors/VidMolyMe.py,sha256=ogLiFUJVqFbhtzQrZ1gSB9me85DiHvntjWtSvidYVS8,218
43
54
  KekikStream/Extractors/VidMoxy.py,sha256=p1BpAUXtzBlZwmXROPsdvOQBgjMDungGDdvtsdc0NZE,1797
55
+ KekikStream/Extractors/VidPapi.py,sha256=t8bUtkThrFpi3KfwKkVpZ6UHMlMG_Z30AOUgxI6G8NM,3285
56
+ KekikStream/Extractors/VidStack.py,sha256=rnEZZDaVyJ13-jCyZ2_o8gRa855oenovecZjLpdZfqw,2586
44
57
  KekikStream/Extractors/VideoSeyred.py,sha256=LSSm1L_iWIeqoteU9aiVy3-BAoiGImPf0CzfsJCDDZ0,2006
58
+ KekikStream/Extractors/YildizKisaFilm.py,sha256=By-iK-teCZghPCypisHocbjHOraeD9dmPVHnrV00HYY,1343
45
59
  KekikStream/Plugins/DiziBox.py,sha256=LNoZ6f2K8jM4YM20kNs5sqYhogssmY5sLri1PBMjwGo,10076
46
60
  KekikStream/Plugins/DiziPal.py,sha256=RwiAKtWhYS54Z1V5D4Ao2AqOuzwde5gJwtLQ0HbqvyM,10183
47
61
  KekikStream/Plugins/DiziYou.py,sha256=WNpATGRswsLwxErDHaK1zMDhBLF9CAZVc7_RhX9V3DU,8000
48
- KekikStream/Plugins/Dizilla.py,sha256=Z2ah1Ha_wBaDQSxmrsqnSYC3IGao5_TxmgqAW6UIQ1o,7319
62
+ KekikStream/Plugins/Dizilla.py,sha256=ed0pKjw5I1IvwSlMaJvIUXXvYHZIJ2hf2oQOeQXCi-I,7445
63
+ KekikStream/Plugins/FilmBip.py,sha256=UdQLQouM3miaOM-fLiRnh6s4SVRIv4_nQOvfWGhkSxk,6050
49
64
  KekikStream/Plugins/FilmMakinesi.py,sha256=nmuAzgNaUEcN4qJa-ByDQlRN4eESL2BdKj3jeeAHz74,5311
50
65
  KekikStream/Plugins/FilmModu.py,sha256=cPiiSj8nQOKAVS0uMjZjyX5Kc9GX2-A3lqRj3iZnZkE,6786
66
+ KekikStream/Plugins/FullHDFilm.py,sha256=Svmfga1OODxRUess3Xx309lXTSckgqaB9OGcVnXBxqk,6998
51
67
  KekikStream/Plugins/FullHDFilmizlesene.py,sha256=J7fFb_mfPTw0VqkMHcd8XWh2A1PW76ZCmNzUyyoIjD4,6278
52
68
  KekikStream/Plugins/HDFilmCehennemi.py,sha256=NwAZ9xkXpGyCfHH07MG0AZd9e-Bmfr5dHzkTU1TqFn0,9801
53
- KekikStream/Plugins/JetFilmizle.py,sha256=3yB_EtsWD7O2iqN2j-VinmnJCSNoITxhWnVgGoFh1J0,5882
69
+ KekikStream/Plugins/JetFilmizle.py,sha256=LjsYHdHNxgOszd4g3s12XnCW7HvZe5ATuCZB0qpylsc,6085
70
+ KekikStream/Plugins/KultFilmler.py,sha256=QYVMsGKztkhDBIAMVMKEmhycOy-oeGUh1Rf3XoAeVAE,8981
54
71
  KekikStream/Plugins/RecTV.py,sha256=bRnWldNPRK3NG4hQAWVTCZ3XSuuujqE6orEig_6WkBs,7707
55
- KekikStream/Plugins/SezonlukDizi.py,sha256=pkmZO0urmyMKTBFKn8RSJCx605hprJ4XC_oJBjzIKd4,6332
72
+ KekikStream/Plugins/RoketDizi.py,sha256=8QPre-f3JVE2zw3JSfl7WZMS5DDjRYkoqsXq0TE2h-o,7752
73
+ KekikStream/Plugins/SelcukFlix.py,sha256=iLCK3BzNv7OPLpDXXvcTDDOQSH2kHJLhCl3662j7Lis,9009
74
+ KekikStream/Plugins/SezonlukDizi.py,sha256=TtbCagsqM5y7HFYxPy0bMVSR5n00u-xmqTaFOfDxQSo,6447
56
75
  KekikStream/Plugins/SineWix.py,sha256=YIYmWB8ft2FfuVg-hHnCpNmQTHeCuHBnQPSjdSvf7cE,7575
76
+ KekikStream/Plugins/Sinefy.py,sha256=NeDsG_bmMN6dUMp7lsFNUIFxmF83V--yL0zbloeEtM0,8362
57
77
  KekikStream/Plugins/SinemaCX.py,sha256=YarpMcPSMw9smu4S08lRjvxtAepQrlhHGkQcnR6_0s0,7254
78
+ KekikStream/Plugins/Sinezy.py,sha256=0MonEkc4qZ_epa7rBgPrlKFnNXJFNkwiytcmMrMp0Y8,3643
79
+ KekikStream/Plugins/SuperFilmGeldi.py,sha256=CgNVtZv3iAkB2M_oesYUmG-nWjrjvAmkRphHKYLAOEQ,5284
58
80
  KekikStream/Plugins/UgurFilm.py,sha256=x1RuEe1jLCT8Ie_Kmp2IZCHFK558krewHoOJGrhAau8,4954
59
- kekikstream-1.7.2.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
60
- kekikstream-1.7.2.dist-info/METADATA,sha256=dk3APNy4TdsulucdGrx7ROAfKRukHYTjoNSA62bQ0eg,4962
61
- kekikstream-1.7.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
62
- kekikstream-1.7.2.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
63
- kekikstream-1.7.2.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
64
- kekikstream-1.7.2.dist-info/RECORD,,
81
+ kekikstream-1.7.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
82
+ kekikstream-1.7.3.dist-info/METADATA,sha256=w_1wWJjuLvCgQn5cD2uWIOgV8up8MJg5HLf1c2m6Slg,4962
83
+ kekikstream-1.7.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
84
+ kekikstream-1.7.3.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
85
+ kekikstream-1.7.3.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
86
+ kekikstream-1.7.3.dist-info/RECORD,,