KekikStream 1.4.4__py3-none-any.whl → 2.0.2__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 (81) hide show
  1. KekikStream/CLI/pypi_kontrol.py +6 -6
  2. KekikStream/Core/Extractor/ExtractorBase.py +13 -12
  3. KekikStream/Core/Extractor/ExtractorLoader.py +25 -17
  4. KekikStream/Core/Extractor/ExtractorManager.py +53 -9
  5. KekikStream/Core/Extractor/ExtractorModels.py +5 -7
  6. KekikStream/Core/Extractor/YTDLPCache.py +35 -0
  7. KekikStream/Core/Media/MediaHandler.py +52 -31
  8. KekikStream/Core/Media/MediaManager.py +0 -3
  9. KekikStream/Core/Plugin/PluginBase.py +47 -21
  10. KekikStream/Core/Plugin/PluginLoader.py +11 -7
  11. KekikStream/Core/Plugin/PluginModels.py +25 -25
  12. KekikStream/Core/__init__.py +1 -0
  13. KekikStream/Extractors/CloseLoad.py +6 -26
  14. KekikStream/Extractors/ContentX_.py +40 -0
  15. KekikStream/Extractors/DzenRu.py +38 -0
  16. KekikStream/Extractors/ExPlay.py +53 -0
  17. KekikStream/Extractors/FirePlayer.py +60 -0
  18. KekikStream/Extractors/HDPlayerSystem.py +41 -0
  19. KekikStream/Extractors/JetTv.py +45 -0
  20. KekikStream/Extractors/MailRu.py +2 -4
  21. KekikStream/Extractors/MixTiger.py +57 -0
  22. KekikStream/Extractors/MolyStream.py +25 -7
  23. KekikStream/Extractors/Odnoklassniki.py +16 -11
  24. KekikStream/Extractors/{OkRuHTTP.py → Odnoklassniki_.py} +5 -1
  25. KekikStream/Extractors/{HDStreamAble.py → PeaceMakerst_.py} +1 -1
  26. KekikStream/Extractors/PixelDrain.py +0 -1
  27. KekikStream/Extractors/PlayerFilmIzle.py +62 -0
  28. KekikStream/Extractors/RapidVid.py +30 -13
  29. KekikStream/Extractors/RapidVid_.py +7 -0
  30. KekikStream/Extractors/SetPlay.py +57 -0
  31. KekikStream/Extractors/SetPrime.py +45 -0
  32. KekikStream/Extractors/SibNet.py +0 -1
  33. KekikStream/Extractors/TurkeyPlayer.py +34 -0
  34. KekikStream/Extractors/VidHide.py +72 -0
  35. KekikStream/Extractors/VidMoly.py +20 -19
  36. KekikStream/Extractors/{VidMolyMe.py → VidMoly_.py} +1 -1
  37. KekikStream/Extractors/VidMoxy.py +0 -1
  38. KekikStream/Extractors/VidPapi.py +89 -0
  39. KekikStream/Extractors/YTDLP.py +177 -0
  40. KekikStream/Extractors/YildizKisaFilm.py +41 -0
  41. KekikStream/Plugins/DiziBox.py +28 -16
  42. KekikStream/Plugins/DiziPal.py +246 -0
  43. KekikStream/Plugins/DiziYou.py +58 -31
  44. KekikStream/Plugins/Dizilla.py +97 -68
  45. KekikStream/Plugins/FilmBip.py +145 -0
  46. KekikStream/Plugins/FilmMakinesi.py +61 -52
  47. KekikStream/Plugins/FilmModu.py +138 -0
  48. KekikStream/Plugins/FullHDFilm.py +164 -0
  49. KekikStream/Plugins/FullHDFilmizlesene.py +38 -37
  50. KekikStream/Plugins/HDFilmCehennemi.py +44 -54
  51. KekikStream/Plugins/JetFilmizle.py +68 -42
  52. KekikStream/Plugins/KultFilmler.py +219 -0
  53. KekikStream/Plugins/RecTV.py +41 -37
  54. KekikStream/Plugins/RoketDizi.py +232 -0
  55. KekikStream/Plugins/SelcukFlix.py +309 -0
  56. KekikStream/Plugins/SezonlukDizi.py +16 -14
  57. KekikStream/Plugins/SineWix.py +39 -30
  58. KekikStream/Plugins/Sinefy.py +238 -0
  59. KekikStream/Plugins/SinemaCX.py +157 -0
  60. KekikStream/Plugins/Sinezy.py +146 -0
  61. KekikStream/Plugins/SuperFilmGeldi.py +121 -0
  62. KekikStream/Plugins/UgurFilm.py +10 -10
  63. KekikStream/__init__.py +296 -319
  64. KekikStream/requirements.txt +3 -4
  65. kekikstream-2.0.2.dist-info/METADATA +309 -0
  66. kekikstream-2.0.2.dist-info/RECORD +82 -0
  67. {kekikstream-1.4.4.dist-info → kekikstream-2.0.2.dist-info}/WHEEL +1 -1
  68. KekikStream/Extractors/FourCX.py +0 -7
  69. KekikStream/Extractors/FourPichive.py +0 -7
  70. KekikStream/Extractors/FourPlayRu.py +0 -7
  71. KekikStream/Extractors/Hotlinger.py +0 -7
  72. KekikStream/Extractors/OkRuSSL.py +0 -7
  73. KekikStream/Extractors/Pichive.py +0 -7
  74. KekikStream/Extractors/PlayRu.py +0 -7
  75. KekikStream/Helpers/Unpack.py +0 -75
  76. KekikStream/Plugins/Shorten.py +0 -225
  77. kekikstream-1.4.4.dist-info/METADATA +0 -108
  78. kekikstream-1.4.4.dist-info/RECORD +0 -63
  79. {kekikstream-1.4.4.dist-info → kekikstream-2.0.2.dist-info}/entry_points.txt +0 -0
  80. {kekikstream-1.4.4.dist-info → kekikstream-2.0.2.dist-info/licenses}/LICENSE +0 -0
  81. {kekikstream-1.4.4.dist-info → kekikstream-2.0.2.dist-info}/top_level.txt +0 -0
@@ -1,225 +0,0 @@
1
- # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
-
3
- from KekikStream.Core import kekik_cache, PluginBase, SearchResult, MovieInfo, Episode, SeriesInfo, ExtractResult, Subtitle
4
- from Kekik.unicode_tr import unicode_tr
5
- import re, json, base64
6
-
7
- async def extract_next_f_push_data(source_code):
8
- """
9
- Kaynak kod içerisindeki self.__next_f.push(...) çağrılarını yakalayıp,
10
- içlerindeki key-value bilgilerini tek bir sözlükte birleştirir.
11
- """
12
- # self.__next_f.push( ... ) içindeki array'i yakalayan regex (DOTALL ile çok satırlı aramalarda)
13
- pattern = r"self\.__next_f\.push\(\s*(\[[\s\S]*?\])\s*\)"
14
- matches = re.findall(pattern, source_code, re.DOTALL)
15
-
16
- combined = {}
17
-
18
- for match in matches:
19
- try:
20
- # Yakalanan array'i JSON olarak ayrıştırıyoruz
21
- arr = json.loads(match)
22
- except json.JSONDecodeError as e:
23
- print("JSON ayrıştırma hatası:", e)
24
- continue
25
-
26
- # Eğer push çağrısı iki elemanlı ve ikinci eleman string ise işleme alalım.
27
- if isinstance(arr, list) and len(arr) == 2 and isinstance(arr[1], str):
28
- data_str = arr[1]
29
- # String içerisindeki satırları ayırıyoruz
30
- for line in data_str.splitlines():
31
- line = line.strip()
32
- if not line:
33
- continue
34
- # Beklenen format: key:değer şeklinde
35
- if ':' in line:
36
- key, value = line.split(':', 1)
37
- key = key.strip()
38
- value = value.strip()
39
-
40
- # Eğer değer HL[...] veya I[...] gibi bir formatta ise
41
- m = re.match(r'^(HL|I)(\[[\s\S]*\])$', value)
42
- if m:
43
- prefix = m.group(1)
44
- json_part = m.group(2)
45
- try:
46
- parsed_val = json.loads(json_part)
47
- value = {prefix: parsed_val}
48
- except json.JSONDecodeError:
49
- # Ayrıştırılamazsa orijinal değeri bırakıyoruz.
50
- pass
51
- else:
52
- # Değerin tamamı [ ... ] veya { ... } şeklinde ise JSON ayrıştırmayı deniyoruz.
53
- if (value.startswith('[') and value.endswith(']')) or (value.startswith('{') and value.endswith('}')):
54
- try:
55
- value = json.loads(value)
56
- except json.JSONDecodeError:
57
- pass
58
- # Eğer aynı anahtar daha önce varsa üzerine yazar.
59
- combined[key] = value
60
- # Eğer push çağrısı farklı bir formatta ise (örneğin [0] veya [2, null]),
61
- # ihtiyaca göre burada ek işleme yapabilirsiniz.
62
-
63
- return combined
64
-
65
- class Shorten(PluginBase):
66
- name = "Shorten"
67
- main_url = "https://shorten.com"
68
- token = None
69
-
70
- async def __giris(self):
71
- await self.httpx.get(f"{self.main_url}/tr", follow_redirects=True)
72
-
73
- self.token = await self.httpx.get(f"{self.main_url}/api/session")
74
- self.token = self.token.json().get("token")
75
-
76
- self.httpx.headers.update({"Authorization": f"Bearer {self.token}"})
77
-
78
- async def raw_diziler(self):
79
- if not self.token:
80
- await self.__giris()
81
-
82
- veriler = await self.httpx.get("https://api.shorten.watch/api/series/you-might-like?page=1&per_page=100")
83
- veriler = veriler.json()
84
-
85
- return [
86
- {
87
- "title" : unicode_tr(veri.get("title")).title(),
88
- "slug" : veri.get("slug"),
89
- } for veri in veriler.get("data")
90
- ]
91
-
92
- async def raw_bolumler(self, slug):
93
- if not self.token:
94
- await self.__giris()
95
-
96
- istek = await self.httpx.get(f"{self.main_url}/tr/series/{slug}", follow_redirects=True)
97
- veriler = await extract_next_f_push_data(istek.text)
98
- veriler = veriler["8"][-1]["children"][-2][-1]["children"][-1]["data"]
99
- return [
100
- {
101
- "number" : veri.get("number"),
102
- "hash" : veri.get("hash")
103
- } for veri in veriler.get("episodes")
104
- ]
105
-
106
- async def hls_decode_video(self, token):
107
- token = base64.b64decode(token).decode("utf-8")
108
- token = json.loads(token).get("GetPlayInfoToken")
109
-
110
- istek = self.cloudscraper.get(
111
- url = f"https://vod.byteplusapi.com/?{token}",
112
- headers = {
113
- "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
114
- "Content-Type" : "application/json",
115
- "Origin" : "https://vod.byteplusapi.com",
116
- "Referer" : f"{self.main_url}/",
117
- }
118
- )
119
-
120
- veriler = istek.json()
121
- return veriler["Result"]["PlayInfoList"][-1]["MainPlayUrl"]
122
-
123
- async def bolumler(self, slug):
124
- if not self.token:
125
- await self.__giris()
126
-
127
- raw_req = await self.raw_bolumler(slug)
128
- number, _hash = raw_req[0].values()
129
-
130
- istek = await self.httpx.get(f"{self.main_url}/tr/series/{slug}/episode-{number}-{_hash}", follow_redirects=True)
131
- veriler = await extract_next_f_push_data(istek.text)
132
- veriler = veriler["b"][3]["children"][1][3]["children"][3]["children"][3]["children"][-1]
133
-
134
- for index, video in enumerate(veriler["videos"]):
135
- copy = veriler["data"]["episodes"][index].copy()
136
- for key in copy.keys():
137
- del veriler["data"]["episodes"][index][key]
138
-
139
- for sub in copy.get("subtitles"):
140
- for sil in ["id", "format", "sub_id"]:
141
- del sub[sil]
142
- sub["url"] = f"https://cdn.shorten.watch/{sub['url']}"
143
-
144
- veriler["data"]["episodes"][index] = {
145
- "number" : copy.get("number"),
146
- "image" : copy.get("cover_image"),
147
- "hls" : video["hashHls"],
148
- "subtitles" : copy.get("subtitles")
149
- }
150
-
151
- veriler["data"]["episode"] = veriler["data"]["episode"]["total"]
152
- del veriler["data"]["is_favorite"]
153
-
154
- veriler["data"]["title"] = unicode_tr(veriler["data"]["title"]).title()
155
-
156
- return veriler["data"]
157
-
158
- @kekik_cache(ttl=60*60)
159
- async def search(self, query: str) -> list[SearchResult]:
160
- veriler = await self.raw_diziler()
161
-
162
- return [
163
- SearchResult(
164
- title = veri.get("title"),
165
- url = veri.get("slug"),
166
- poster = "",
167
- )
168
- for veri in veriler
169
- ]
170
-
171
- @kekik_cache(ttl=60*60)
172
- async def load_item(self, url: str) -> MovieInfo:
173
- veri = await self.bolumler(url)
174
-
175
- episodes = []
176
- for episode in veri.get("episodes"):
177
- episode["name"] = veri["title"] + f" | {episode.get('number')}. Bölüm"
178
- episode["subtitles"] = [subtitle for subtitle in episode["subtitles"] if subtitle.get("code").lower() in ["tr", "en"]]
179
- episode["subtitles"].reverse()
180
-
181
- ep_model = Episode(
182
- season = 1,
183
- episode = episode.get("number"),
184
- title = "",
185
- url = json.dumps(episode, indent=2, ensure_ascii=False, sort_keys=False),
186
- )
187
-
188
- episodes.append(ep_model)
189
- self._data[ep_model.url] = {
190
- "ext_name" : self.name,
191
- "name" : f"{ep_model.title}",
192
- "referer" : f"{self.main_url}/tr",
193
- "subtitles" : []
194
- }
195
-
196
- return SeriesInfo(
197
- url = url,
198
- poster = veri.get("image"),
199
- title = veri.get("title"),
200
- description = veri.get("description"),
201
- tags = [genre.get("static_key") for genre in veri.get("categories")],
202
- rating = 0,
203
- year = 0,
204
- actors = [],
205
- episodes = episodes,
206
- )
207
-
208
- @kekik_cache(ttl=15*60)
209
- async def load_links(self, url: str) -> list[str]:
210
- return [url]
211
-
212
- async def play(self, name: str, url: str, referer: str, subtitles: list[Subtitle]):
213
- veri = json.loads(url)
214
- name = veri.get("name")
215
- url = await self.hls_decode_video(veri.get("hls"))
216
- subtitles = [
217
- Subtitle(
218
- name = subtitle.get("language"),
219
- url = subtitle.get("url"),
220
- )
221
- for subtitle in veri.get("subtitles")
222
- ]
223
- extract_result = ExtractResult(name=name, url=url, referer=referer, subtitles=subtitles)
224
- self.media_handler.title = name
225
- self.media_handler.play_media(extract_result)
@@ -1,108 +0,0 @@
1
- Metadata-Version: 2.2
2
- Name: KekikStream
3
- Version: 1.4.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
- Home-page: https://github.com/keyiflerolsun/KekikStream
6
- Author: keyiflerolsun
7
- Author-email: keyiflerolsun@gmail.com
8
- License: GPLv3+
9
- Keywords: KekikStream,KekikAkademi,keyiflerolsun
10
- Classifier: Development Status :: 5 - Production/Stable
11
- Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
12
- Classifier: Programming Language :: Python :: 3
13
- Requires-Python: >=3.10
14
- Description-Content-Type: text/markdown
15
- License-File: LICENSE
16
- Requires-Dist: setuptools
17
- Requires-Dist: wheel
18
- Requires-Dist: Kekik
19
- Requires-Dist: httpx[http2]
20
- Requires-Dist: cloudscraper
21
- Requires-Dist: parsel
22
- Requires-Dist: pydantic
23
- Requires-Dist: InquirerPy
24
- Requires-Dist: yt-dlp
25
- Dynamic: author
26
- Dynamic: author-email
27
- Dynamic: classifier
28
- Dynamic: description
29
- Dynamic: description-content-type
30
- Dynamic: home-page
31
- Dynamic: keywords
32
- Dynamic: license
33
- Dynamic: requires-dist
34
- Dynamic: requires-python
35
- Dynamic: summary
36
-
37
- # <img src="https://github.com/keyiflerolsun/KekikStream/raw/master/.github/icons/KekikStream.png?raw=True" height="32" align="center"> KekikStream
38
-
39
- [![Boyut](https://img.shields.io/github/repo-size/keyiflerolsun/KekikStream?logo=git&logoColor=white&label=Boyut)](#)
40
- [![Görüntülenme](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https://github.com/keyiflerolsun/KekikStream&title=Görüntülenme)](#)
41
- <a href="https://KekikAkademi.org/Kahve" target="_blank"><img src="https://img.shields.io/badge/☕️-Kahve Ismarla-ffdd00" title="☕️ Kahve Ismarla" style="padding-left:5px;"></a>
42
-
43
- [![PyPI](https://img.shields.io/pypi/v/KekikStream?logo=pypi&logoColor=white&label=PyPI)](https://pypi.org/project/KekikStream)
44
- [![PyPI - Yüklenme](https://img.shields.io/pypi/dm/KekikStream?logo=pypi&logoColor=white&label=Yüklenme)](https://pypi.org/project/KekikStream)
45
- [![PyPI - Wheel](https://img.shields.io/pypi/wheel/KekikStream?logo=pypi&logoColor=white&label=Wheel)](https://pypi.org/project/KekikStream)
46
-
47
- [![Python Version](https://img.shields.io/pypi/pyversions/KekikStream?logo=python&logoColor=white&label=Python)](#)
48
- [![Lisans](https://img.shields.io/pypi/l/KekikStream?logo=gnu&logoColor=white&label=Lisans)](#)
49
- [![Durum](https://img.shields.io/pypi/status/KekikStream?logo=windowsterminal&logoColor=white&label=Durum)](#)
50
-
51
- [![PyPI Yükle](https://github.com/keyiflerolsun/KekikStream/actions/workflows/pypiYukle.yml/badge.svg)](https://github.com/keyiflerolsun/KekikStream/actions/workflows/pypiYukle.yml)
52
-
53
- *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ı*
54
-
55
- [![Video](https://github.com/user-attachments/assets/63d31bb0-0b69-40b4-84aa-66623f2a253f)](https://github.com/user-attachments/assets/63d31bb0-0b69-40b4-84aa-66623f2a253f)
56
-
57
- [![ForTheBadge made-with-python](https://ForTheBadge.com/images/badges/made-with-python.svg)](https://www.python.org/)
58
- [![ForTheBadge built-with-love](https://ForTheBadge.com/images/badges/built-with-love.svg)](https://GitHub.com/keyiflerolsun/)
59
-
60
- ## 🚀 Kurulum
61
-
62
- > Sisteminizde VLC ve MPV yüklü olmalıdır..
63
-
64
- ```bash
65
- # Yüklemek
66
- pip install KekikStream
67
-
68
- # Güncellemek
69
- pip install -U KekikStream
70
- ```
71
-
72
- ## <img src="https://www.akashtrehan.com/assets/images/emoji/terminal.png" height="32" align="center"> Kullanım
73
-
74
- ```bash
75
- KekikStream
76
- ```
77
-
78
- ## 💻 Kendi Projenizde Kullanabilirsiniz
79
-
80
- - _Python için örnek iş akışı_ » **[KekikStream/Tests/Single.py](https://github.com/keyiflerolsun/KekikStream/blob/master/Tests/Single.py)**
81
- - _Yerelde ağ genelinde kullanmak için API_ » **[KekikStreamAPI](https://github.com/keyiflerolsun/KekikStreamAPI)**
82
- - _API için örnek iş akışı_ » **[KekikStreamAPI/Tests/Single.py](https://github.com/keyiflerolsun/KekikStreamAPI/blob/master/Tests/Single.py)**
83
-
84
- ## 💸 Bağış Yap
85
-
86
- **[☕️ Kahve Ismarla](https://KekikAkademi.org/Kahve)**
87
-
88
- ### 🎁 Teşekkürler
89
-
90
- - [DeoDorqnt387/aniwatch-tr](https://github.com/DeoDorqnt387/aniwatch-tr)
91
-
92
- ### 💻 Genişletme Referansları
93
-
94
- - [keyiflerolsun/Kekik-cloudstream](https://github.com/keyiflerolsun/Kekik-cloudstream)
95
- - [keyiflerolsun/seyirTurk-Parser](https://github.com/keyiflerolsun/seyirTurk-Parser)
96
-
97
- ## 🌐 Telif Hakkı ve Lisans
98
-
99
- * *Copyright (C) 2024 by* [keyiflerolsun](https://github.com/keyiflerolsun) ❤️️
100
- * [GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007](https://github.com/keyiflerolsun/KekikStream/blob/master/LICENSE) *Koşullarına göre lisanslanmıştır..*
101
-
102
- ## ♻️ İletişim
103
-
104
- *Benimle iletişime geçmek isterseniz, **Telegram**'dan mesaj göndermekten çekinmeyin;* [@keyiflerolsun](https://t.me/KekikKahve)
105
-
106
- ##
107
-
108
- > **[@KekikAkademi](https://t.me/KekikAkademi)** *için yazılmıştır..*
@@ -1,63 +0,0 @@
1
- KekikStream/__init__.py,sha256=T6b93GPnam4ww2tOU2dZaS-WHKwCEXqNAaRh6Lrg4Kw,15477
2
- KekikStream/__main__.py,sha256=B81dQoeGEb-T5Sycs3eNAmW7unvx0Mef0syCjs4nPds,137
3
- KekikStream/requirements.txt,sha256=QWCXrrmKodIm7mGtIz9cWr9sks-lmL_TilKMrruWJn0,77
4
- KekikStream/CLI/__init__.py,sha256=U6oLq_O7u5y2eHhBnmfhZNns_EqHHJXJmzl8jvZFUNY,230
5
- KekikStream/CLI/pypi_kontrol.py,sha256=MchatOwCWCpFBtgt09yag9Rjal9XFyh2W_oVs2p7SNg,1518
6
- KekikStream/Core/__init__.py,sha256=ar2MZQF83ryfLfydEXcfjdwNe4Too_HT6bP-D_4TopA,710
7
- KekikStream/Core/Extractor/ExtractorBase.py,sha256=7dmYh5e1Za5N_pLJrTZRuwFh-CqwGc0YJOBWf5dirjc,1724
8
- KekikStream/Core/Extractor/ExtractorLoader.py,sha256=7uxUXTAuF65KKkmbI6iRiCiUhx-IqrronB7ixhchcTU,4289
9
- KekikStream/Core/Extractor/ExtractorManager.py,sha256=4L1H3jiTnf0kTq4W6uS7n95bBYHlKJ8_hh0og8z4erQ,1244
10
- KekikStream/Core/Extractor/ExtractorModels.py,sha256=huIcPQ5VIRfMx0LcL5SS1u4dldZbHjzHKEdSEtOPlc0,456
11
- KekikStream/Core/Media/MediaHandler.py,sha256=_cplsR-bt7s2oohY1Ngw0UyG427yQ-Fg0NQdAUzd0ec,6964
12
- KekikStream/Core/Media/MediaManager.py,sha256=9ItiUguOkk3wg3YY5uf3mrjfwLPCvggnP8QviX0uiuE,526
13
- KekikStream/Core/Plugin/PluginBase.py,sha256=gXD6a0__rAVBv1hbV7qtt4Ot5Wdx15JhF02TMd2QJd0,3179
14
- KekikStream/Core/Plugin/PluginLoader.py,sha256=yZxMug-OcJ5RBm4fQkoquKrZxcBU7Pvt4IcY-d0WU8g,3393
15
- KekikStream/Core/Plugin/PluginManager.py,sha256=CZVg1eegi8vfMfccx0DRV0Box8kXz-aoULTQLgbPbvM,893
16
- KekikStream/Core/Plugin/PluginModels.py,sha256=ZZJUXbC0G2k0DU7Wpbf0rwjn7spywpiaLIHE7kLajhk,2533
17
- KekikStream/Core/UI/UIManager.py,sha256=T4V_kdTTWa-UDamgLSKa__dWJuzcvRK9NuwBlzU9Bzc,1693
18
- KekikStream/Extractors/CloseLoad.py,sha256=w_Wag5DUPTfdXbTTI1kQNje1BHD0aFWE3KOVZHFFmZo,1462
19
- KekikStream/Extractors/ContentX.py,sha256=u1sDdM79MNx9OdPTPcAA0OQDS7537IO8aJlffxhMi8c,2976
20
- KekikStream/Extractors/FourCX.py,sha256=4FrMj1IZBBpN_g1P6S3A-8eUu7QFwlt4fJXzJ7vfe0Q,221
21
- KekikStream/Extractors/FourPichive.py,sha256=iq3BCUbih1UVF4y4BIWO--0hX5jP2nxqesNx3MGP3kQ,234
22
- KekikStream/Extractors/FourPlayRu.py,sha256=wq1ylxKpsO_IBoYr_ALzB2dVrQpJ-jY9lf2zPhcAZX8,228
23
- KekikStream/Extractors/HDStreamAble.py,sha256=66n5EvIdX_or5cdnlJ_Uqmzi50n4rl9c5VCw8kBqhQk,245
24
- KekikStream/Extractors/Hotlinger.py,sha256=NFMRgUmb6BCrJfa7Hi0VarDNYvCeVknBWEk24FKBBa0,224
25
- KekikStream/Extractors/MailRu.py,sha256=HH89V4GdQChG2TnIimqNbd5dGWco0bdrSGpLudt5WGs,1306
26
- KekikStream/Extractors/MixPlayHD.py,sha256=POV_yq3KoZ6S6EqFsKYULEBz92NdUa2BpYKNo0eNQH8,1552
27
- KekikStream/Extractors/MolyStream.py,sha256=aJZL1SE40gB5KeShu-TV5IWNICHCtAXY87F0wqYrw1k,604
28
- KekikStream/Extractors/Odnoklassniki.py,sha256=TZOJyti05ch62QCUTKUzKNKmjzwGZYVpLWbmp92QTO4,3590
29
- KekikStream/Extractors/OkRuHTTP.py,sha256=L-B0i_i_Vnm61GvUfd6cGIW-o_H4M-C7DO_cdw2rQPU,228
30
- KekikStream/Extractors/OkRuSSL.py,sha256=FHJ5XZ1dO5ED3mIku3e3vnq8K0slrcr0jqhaUnHmfVk,227
31
- KekikStream/Extractors/PeaceMakerst.py,sha256=ZKk454eNZpeamht61UH9yMYe00_zGb3MSyujfDlbVDc,2096
32
- KekikStream/Extractors/Pichive.py,sha256=BSVYFwL3Ax6yGoS1WkpOWtngxNyuZLoKzpPwjibpu2s,221
33
- KekikStream/Extractors/PixelDrain.py,sha256=WAlxFHwDYFZd7E3M-wTBkOSzDLbaLpX4J7r1zzlfJVo,991
34
- KekikStream/Extractors/PlayRu.py,sha256=DQMZyCSJwLkrh-gfDD8T1DvUFNBAKUXpByeCAWuK6YY,215
35
- KekikStream/Extractors/RapidVid.py,sha256=nTND3zuH105oeO359gltKKE9n35YLQsM9Crg17G7L0c,2367
36
- KekikStream/Extractors/SibNet.py,sha256=tKo2y_JL0Es-B1mNSMk7IDeFTkk0CmMBZTKwWOy59ho,876
37
- KekikStream/Extractors/Sobreatsesuyp.py,sha256=qlSQHUHjTjBoY0nsuZQWAjnfswbPORkBg6rUuP7SagA,2000
38
- KekikStream/Extractors/TRsTX.py,sha256=mbSRGnQt26a73SbqwtY9rpiYFwgRgVbvA6bkGb_PvP8,2152
39
- KekikStream/Extractors/TauVideo.py,sha256=2ai9BwwM6qlCgxK7E0B642LtOF5y4hEb9tQ2aDpbMtc,1112
40
- KekikStream/Extractors/TurboImgz.py,sha256=nnWnP1K4JZbMj6S-YuXxej31UZtF4JcboSW4n7A4A5c,824
41
- KekikStream/Extractors/VidMoly.py,sha256=O6F_82E-LeFVOgSw-ot91B1ZP8pqqt1jZ5pmkwklWGY,3526
42
- KekikStream/Extractors/VidMolyMe.py,sha256=ogLiFUJVqFbhtzQrZ1gSB9me85DiHvntjWtSvidYVS8,218
43
- KekikStream/Extractors/VidMoxy.py,sha256=T1iqfyOasRxoepmuWAmXeVW6E7M1O18KG3264KUSzc0,1798
44
- KekikStream/Extractors/VideoSeyred.py,sha256=M6QPZ_isX9vM_7LPo-2I_8Cf1vB9awHw8vvzBODtoiQ,1977
45
- KekikStream/Helpers/Unpack.py,sha256=iS-r6k-NHlBleWsVwv_QXLaEMbJRBUXDKqVE6NkWEIk,2235
46
- KekikStream/Plugins/DiziBox.py,sha256=Vk7ujbMTORimFNXA7BTZkQnXs-6WBfI7iIJxFYRJaH0,9326
47
- KekikStream/Plugins/DiziYou.py,sha256=yiLHe9cP_eG8CG6lcQ8KYEzDckjFUL3cw0A-1ixCLbg,7995
48
- KekikStream/Plugins/Dizilla.py,sha256=E3HehhcnZBDVJzroRa7jlFzj3ixdx9-LT7YnWKmcX3Q,6899
49
- KekikStream/Plugins/FilmMakinesi.py,sha256=J4v35Ln3RehWPai3I-9nWrasRLx3hN3IgrWVpt5b_HE,5712
50
- KekikStream/Plugins/FullHDFilmizlesene.py,sha256=AO9Il0PE77JUvg1AN4Vxl95pTrCBbOjclqFGWuzo7cY,6271
51
- KekikStream/Plugins/HDFilmCehennemi.py,sha256=w-sGlRb60PMHO75ZlreP1fpjeA048VzNJIiXEV1oFe4,9908
52
- KekikStream/Plugins/JetFilmizle.py,sha256=Hi_yzjUyTQryx-4kTfxNdNSqqQcwodc_JJULOTKTrBA,5483
53
- KekikStream/Plugins/RecTV.py,sha256=zftZucGIR0r0vkYYc-pmln3AJppL3s1LVZPwIrOV2QU,7246
54
- KekikStream/Plugins/SezonlukDizi.py,sha256=IvmOB6qCEHBy41BS4KFBjsTegmzEF6l-2l_CvamYrW8,6099
55
- KekikStream/Plugins/Shorten.py,sha256=dDYt89WX-CcDhJAAV2A4zaD4xcZa8aN6-YcAcseyVo4,8948
56
- KekikStream/Plugins/SineWix.py,sha256=QCcuGzawAKA-k3kMWgY2ATiX_WefvPCRqX169Ej3wrw,7192
57
- KekikStream/Plugins/UgurFilm.py,sha256=tChGgiAeQeVUqHqrVXDz_eMIyghOHqKuHJb0pCQqs1M,4724
58
- kekikstream-1.4.4.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
59
- kekikstream-1.4.4.dist-info/METADATA,sha256=zYJSz3Q7oweojUigcDvDkQ9pLEa1LU2y1aIHUEohb6Q,4973
60
- kekikstream-1.4.4.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
61
- kekikstream-1.4.4.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
62
- kekikstream-1.4.4.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
63
- kekikstream-1.4.4.dist-info/RECORD,,