KekikStream 1.8.2__py3-none-any.whl → 1.8.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/Plugins/DiziBox.py +2 -6
- KekikStream/Plugins/DiziYou.py +0 -3
- KekikStream/Plugins/Dizilla.py +34 -24
- KekikStream/Plugins/FilmMakinesi.py +0 -3
- KekikStream/Plugins/FullHDFilmizlesene.py +0 -3
- KekikStream/Plugins/HDFilmCehennemi.py +0 -3
- KekikStream/Plugins/JetFilmizle.py +0 -3
- KekikStream/Plugins/RecTV.py +0 -3
- KekikStream/Plugins/SezonlukDizi.py +0 -3
- KekikStream/Plugins/SineWix.py +0 -3
- KekikStream/Plugins/UgurFilm.py +0 -3
- {kekikstream-1.8.2.dist-info → kekikstream-1.8.3.dist-info}/METADATA +1 -1
- {kekikstream-1.8.2.dist-info → kekikstream-1.8.3.dist-info}/RECORD +17 -17
- {kekikstream-1.8.2.dist-info → kekikstream-1.8.3.dist-info}/WHEEL +0 -0
- {kekikstream-1.8.2.dist-info → kekikstream-1.8.3.dist-info}/entry_points.txt +0 -0
- {kekikstream-1.8.2.dist-info → kekikstream-1.8.3.dist-info}/licenses/LICENSE +0 -0
- {kekikstream-1.8.2.dist-info → kekikstream-1.8.3.dist-info}/top_level.txt +0 -0
KekikStream/Plugins/DiziBox.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
|
|
2
2
|
|
|
3
|
-
from KekikStream.Core import
|
|
3
|
+
from KekikStream.Core import PluginBase, MainPageResult, SearchResult, SeriesInfo, Episode
|
|
4
4
|
from Kekik.Sifreleme import CryptoJS
|
|
5
5
|
from parsel import Selector
|
|
6
6
|
import re, urllib.parse, base64, contextlib, asyncio, time
|
|
@@ -40,7 +40,6 @@ class DiziBox(PluginBase):
|
|
|
40
40
|
f"{main_url}/dizi-arsivi/page/SAYFA/?tur[0]=yarisma&yil&imdb" : "Yarışma"
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
#@kekik_cache(ttl=60*60)
|
|
44
43
|
async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
|
|
45
44
|
self.httpx.cookies.update({
|
|
46
45
|
"isTrustedUser" : "true",
|
|
@@ -62,7 +61,6 @@ class DiziBox(PluginBase):
|
|
|
62
61
|
for veri in secici.css("article.detailed-article")
|
|
63
62
|
]
|
|
64
63
|
|
|
65
|
-
#@kekik_cache(ttl=60*60)
|
|
66
64
|
async def search(self, query: str) -> list[SearchResult]:
|
|
67
65
|
self.httpx.cookies.update({
|
|
68
66
|
"isTrustedUser" : "true",
|
|
@@ -80,7 +78,6 @@ class DiziBox(PluginBase):
|
|
|
80
78
|
for item in secici.css("article.detailed-article")
|
|
81
79
|
]
|
|
82
80
|
|
|
83
|
-
#@kekik_cache(ttl=60*60)
|
|
84
81
|
async def load_item(self, url: str) -> SeriesInfo:
|
|
85
82
|
istek = await self.httpx.get(url)
|
|
86
83
|
secici = Selector(istek.text)
|
|
@@ -127,7 +124,6 @@ class DiziBox(PluginBase):
|
|
|
127
124
|
actors = actors,
|
|
128
125
|
)
|
|
129
126
|
|
|
130
|
-
#@kekik_cache(ttl=60*60)
|
|
131
127
|
async def _iframe_decode(self, name:str, iframe_link:str, referer:str) -> list[str]:
|
|
132
128
|
results = []
|
|
133
129
|
|
|
@@ -214,4 +210,4 @@ class DiziBox(PluginBase):
|
|
|
214
210
|
"name" : f"{extractor.name if extractor else alt_name}"
|
|
215
211
|
})
|
|
216
212
|
|
|
217
|
-
return results
|
|
213
|
+
return results
|
KekikStream/Plugins/DiziYou.py
CHANGED
|
@@ -29,7 +29,6 @@ class DiziYou(PluginBase):
|
|
|
29
29
|
f"{main_url}/dizi-arsivi/page/SAYFA/?tur=Vah%C5%9Fi+Bat%C4%B1" : "Vahşi Batı"
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
#@kekik_cache(ttl=60*60)
|
|
33
32
|
async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
|
|
34
33
|
istek = await self.httpx.get(f"{url.replace('SAYFA', str(page))}")
|
|
35
34
|
secici = Selector(istek.text)
|
|
@@ -44,7 +43,6 @@ class DiziYou(PluginBase):
|
|
|
44
43
|
for veri in secici.css("div.single-item")
|
|
45
44
|
]
|
|
46
45
|
|
|
47
|
-
#@kekik_cache(ttl=60*60)
|
|
48
46
|
async def search(self, query: str) -> list[SearchResult]:
|
|
49
47
|
istek = await self.httpx.get(f"{self.main_url}/?s={query}")
|
|
50
48
|
secici = Selector(istek.text)
|
|
@@ -58,7 +56,6 @@ class DiziYou(PluginBase):
|
|
|
58
56
|
for afis in secici.css("div.incontent div#list-series")
|
|
59
57
|
]
|
|
60
58
|
|
|
61
|
-
#@kekik_cache(ttl=60*60)
|
|
62
59
|
async def load_item(self, url: str) -> SeriesInfo:
|
|
63
60
|
istek = await self.httpx.get(url)
|
|
64
61
|
secici = Selector(istek.text)
|
KekikStream/Plugins/Dizilla.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
|
|
2
2
|
|
|
3
|
-
from
|
|
3
|
+
from Kekik.cli import konsol
|
|
4
|
+
from KekikStream.Core import PluginBase, MainPageResult, SearchResult, SeriesInfo, Episode
|
|
4
5
|
from parsel import Selector
|
|
5
6
|
from json import loads
|
|
6
7
|
from urllib.parse import urlparse, urlunparse
|
|
@@ -12,35 +13,47 @@ class Dizilla(PluginBase):
|
|
|
12
13
|
language = "tr"
|
|
13
14
|
main_url = "https://dizilla40.com"
|
|
14
15
|
favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
|
|
15
|
-
description = "
|
|
16
|
+
description = "1080p yabancı dizi izle. Türkçe altyazılı veya dublaj seçenekleriyle 1080p çözünürlükte yabancı dizilere anında ulaş. Popüler dizileri kesintisiz izle."
|
|
16
17
|
|
|
17
18
|
main_page = {
|
|
18
|
-
f"{main_url}/tum-bolumler"
|
|
19
|
-
f"{main_url}/
|
|
20
|
-
f"{main_url}/
|
|
21
|
-
f"{main_url}/
|
|
22
|
-
f"{main_url}/
|
|
23
|
-
f"{main_url}/
|
|
19
|
+
f"{main_url}/tum-bolumler" : "Altyazılı Bölümler",
|
|
20
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=15&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Aile",
|
|
21
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=9&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Aksiyon",
|
|
22
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=17&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Animasyon",
|
|
23
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=5&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Bilim Kurgu",
|
|
24
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=2&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Dram",
|
|
25
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=12&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Fantastik",
|
|
26
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=18&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Gerilim",
|
|
27
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=3&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Gizem",
|
|
28
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=4&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Komedi",
|
|
29
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=8&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Korku",
|
|
30
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=24&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Macera",
|
|
31
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=7&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Romantik",
|
|
32
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=26&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Savaş",
|
|
33
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=1&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Suç",
|
|
34
|
+
f"{main_url}/api/bg/findSeries?releaseYearStart=1900&releaseYearEnd=2050&imdbPointMin=0&imdbPointMax=10&categoryIdsComma=11&countryIdsComma=&orderType=date_desc&languageId=-1¤tPage=SAYFA¤tPageCount=24&queryStr=&categorySlugsComma=&countryCodesComma=" : "Western",
|
|
24
35
|
}
|
|
25
36
|
|
|
26
|
-
#@kekik_cache(ttl=60*60)
|
|
27
37
|
async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
|
|
28
|
-
istek = await self.httpx.get(url)
|
|
29
|
-
secici = Selector(istek.text)
|
|
30
|
-
|
|
31
38
|
ana_sayfa = []
|
|
32
39
|
|
|
33
|
-
if "
|
|
40
|
+
if "api/bg" in url:
|
|
41
|
+
istek = await self.httpx.post(url.replace("SAYFA", str(page)))
|
|
42
|
+
decrypted = await self.decrypt_response(istek.json().get("response"))
|
|
43
|
+
veriler = decrypted.get("result", [])
|
|
34
44
|
ana_sayfa.extend([
|
|
35
45
|
MainPageResult(
|
|
36
46
|
category = category,
|
|
37
|
-
title = veri.
|
|
38
|
-
url = self.fix_url(veri.
|
|
39
|
-
poster = self.fix_url(veri.
|
|
47
|
+
title = veri.get("original_title"),
|
|
48
|
+
url = self.fix_url(f"{self.main_url}/{veri.get('used_slug')}"),
|
|
49
|
+
poster = self.fix_url(veri.get("object_poster_url")),
|
|
40
50
|
)
|
|
41
|
-
for veri in
|
|
51
|
+
for veri in veriler
|
|
42
52
|
])
|
|
43
53
|
else:
|
|
54
|
+
istek = await self.httpx.get(url.replace("SAYFA", str(page)))
|
|
55
|
+
secici = Selector(istek.text)
|
|
56
|
+
|
|
44
57
|
for veri in secici.css("div.tab-content > div.grid a"):
|
|
45
58
|
name = veri.css("h2::text").get()
|
|
46
59
|
ep_name = veri.xpath("normalize-space(//div[contains(@class, 'opacity-80')])").get()
|
|
@@ -87,7 +100,6 @@ class Dizilla(PluginBase):
|
|
|
87
100
|
# JSON decode
|
|
88
101
|
return loads(decrypted.decode("utf-8"))
|
|
89
102
|
|
|
90
|
-
#@kekik_cache(ttl=60*60)
|
|
91
103
|
async def search(self, query: str) -> list[SearchResult]:
|
|
92
104
|
arama_istek = await self.httpx.post(f"{self.main_url}/api/bg/searchcontent?searchterm={query}")
|
|
93
105
|
decrypted = await self.decrypt_response(arama_istek.json().get("response"))
|
|
@@ -102,7 +114,6 @@ class Dizilla(PluginBase):
|
|
|
102
114
|
for veri in arama_veri
|
|
103
115
|
]
|
|
104
116
|
|
|
105
|
-
#@kekik_cache(ttl=60*60)
|
|
106
117
|
async def url_base_degis(self, eski_url:str, yeni_base:str) -> str:
|
|
107
118
|
parsed_url = urlparse(eski_url)
|
|
108
119
|
parsed_yeni_base = urlparse(yeni_base)
|
|
@@ -113,13 +124,12 @@ class Dizilla(PluginBase):
|
|
|
113
124
|
|
|
114
125
|
return urlunparse(yeni_url)
|
|
115
126
|
|
|
116
|
-
#@kekik_cache(ttl=60*60)
|
|
117
127
|
async def load_item(self, url: str) -> SeriesInfo:
|
|
118
128
|
istek = await self.httpx.get(url)
|
|
119
129
|
secici = Selector(istek.text)
|
|
120
130
|
veri = loads(secici.xpath("//script[@type='application/ld+json']/text()").getall()[-1])
|
|
121
131
|
|
|
122
|
-
title
|
|
132
|
+
title = veri.get("name")
|
|
123
133
|
if alt_title := veri.get("alternateName"):
|
|
124
134
|
title += f" - ({alt_title})"
|
|
125
135
|
|
|
@@ -131,8 +141,8 @@ class Dizilla(PluginBase):
|
|
|
131
141
|
tags_raw = secici.css("h3.text-white.opacity-60::text").get()
|
|
132
142
|
tags = [t.strip() for t in tags_raw.split(",")] if tags_raw else []
|
|
133
143
|
|
|
134
|
-
rating
|
|
135
|
-
actors
|
|
144
|
+
rating = veri.get("aggregateRating", {}).get("ratingValue")
|
|
145
|
+
actors = [actor.get("name") for actor in veri.get("actor", []) if actor.get("name")]
|
|
136
146
|
|
|
137
147
|
bolumler = []
|
|
138
148
|
sezonlar = veri.get("containsSeason") if isinstance(veri.get("containsSeason"), list) else [veri.get("containsSeason")]
|
|
@@ -184,4 +194,4 @@ class Dizilla(PluginBase):
|
|
|
184
194
|
"name" : f"{extractor.name if extractor else 'Main Player'} | {result.get('language_name')}",
|
|
185
195
|
})
|
|
186
196
|
|
|
187
|
-
return links
|
|
197
|
+
return links
|
|
@@ -34,7 +34,6 @@ class FilmMakinesi(PluginBase):
|
|
|
34
34
|
f"{main_url}/tur/western-fm1/film/" : "Western"
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
#@kekik_cache(ttl=60*60)
|
|
38
37
|
async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
|
|
39
38
|
istek = self.cloudscraper.get(f"{url}{'' if page == 1 else f'page/{page}/'}")
|
|
40
39
|
secici = Selector(istek.text)
|
|
@@ -51,7 +50,6 @@ class FilmMakinesi(PluginBase):
|
|
|
51
50
|
for veri in veriler
|
|
52
51
|
]
|
|
53
52
|
|
|
54
|
-
#@kekik_cache(ttl=60*60)
|
|
55
53
|
async def search(self, query: str) -> list[SearchResult]:
|
|
56
54
|
istek = await self.httpx.get(f"{self.main_url}/arama/?s={query}")
|
|
57
55
|
secici = Selector(istek.text)
|
|
@@ -73,7 +71,6 @@ class FilmMakinesi(PluginBase):
|
|
|
73
71
|
|
|
74
72
|
return results
|
|
75
73
|
|
|
76
|
-
#@kekik_cache(ttl=60*60)
|
|
77
74
|
async def load_item(self, url: str) -> MovieInfo:
|
|
78
75
|
istek = await self.httpx.get(url)
|
|
79
76
|
secici = Selector(istek.text)
|
|
@@ -40,7 +40,6 @@ class FullHDFilmizlesene(PluginBase):
|
|
|
40
40
|
f"{main_url}/filmizle/yerli-filmler-hd-izle/" : "Yerli Filmler"
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
#@kekik_cache(ttl=60*60)
|
|
44
43
|
async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
|
|
45
44
|
istek = self.cloudscraper.get(f"{url}{page}")
|
|
46
45
|
secici = Selector(istek.text)
|
|
@@ -55,7 +54,6 @@ class FullHDFilmizlesene(PluginBase):
|
|
|
55
54
|
for veri in secici.css("li.film")
|
|
56
55
|
]
|
|
57
56
|
|
|
58
|
-
#@kekik_cache(ttl=60*60)
|
|
59
57
|
async def search(self, query: str) -> list[SearchResult]:
|
|
60
58
|
istek = await self.httpx.get(f"{self.main_url}/arama/{query}")
|
|
61
59
|
secici = Selector(istek.text)
|
|
@@ -77,7 +75,6 @@ class FullHDFilmizlesene(PluginBase):
|
|
|
77
75
|
|
|
78
76
|
return results
|
|
79
77
|
|
|
80
|
-
#@kekik_cache(ttl=60*60)
|
|
81
78
|
async def load_item(self, url: str) -> MovieInfo:
|
|
82
79
|
istek = await self.httpx.get(url)
|
|
83
80
|
secici = Selector(istek.text)
|
|
@@ -32,7 +32,6 @@ class HDFilmCehennemi(PluginBase):
|
|
|
32
32
|
f"{main_url}/tur/romantik-filmleri-izle-1" : "Romantik Filmleri"
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
#@kekik_cache(ttl=60*60)
|
|
36
35
|
async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
|
|
37
36
|
istek = await self.cffi.get(f"{url}", allow_redirects=True)
|
|
38
37
|
secici = Selector(istek.text)
|
|
@@ -47,7 +46,6 @@ class HDFilmCehennemi(PluginBase):
|
|
|
47
46
|
for veri in secici.css("div.section-content a.poster")
|
|
48
47
|
]
|
|
49
48
|
|
|
50
|
-
#@kekik_cache(ttl=60*60)
|
|
51
49
|
async def search(self, query: str) -> list[SearchResult]:
|
|
52
50
|
istek = await self.cffi.get(
|
|
53
51
|
url = f"{self.main_url}/search/?q={query}",
|
|
@@ -76,7 +74,6 @@ class HDFilmCehennemi(PluginBase):
|
|
|
76
74
|
|
|
77
75
|
return results
|
|
78
76
|
|
|
79
|
-
#@kekik_cache(ttl=60*60)
|
|
80
77
|
async def load_item(self, url: str) -> MovieInfo:
|
|
81
78
|
istek = await self.cffi.get(url, headers = {"Referer": f"{self.main_url}/"})
|
|
82
79
|
secici = Selector(istek.text)
|
|
@@ -19,7 +19,6 @@ class JetFilmizle(PluginBase):
|
|
|
19
19
|
f"{main_url}/kategoriler/yesilcam-filmleri-izlee/page/" : "Yeşilçam Filmleri"
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
#@kekik_cache(ttl=60*60)
|
|
23
22
|
async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
|
|
24
23
|
istek = await self.httpx.get(f"{url}{page}", follow_redirects=True)
|
|
25
24
|
secici = Selector(istek.text)
|
|
@@ -34,7 +33,6 @@ class JetFilmizle(PluginBase):
|
|
|
34
33
|
for veri in secici.css("article.movie") if veri.css("h2 a::text, h3 a::text, h4 a::text, h5 a::text, h6 a::text").get()
|
|
35
34
|
]
|
|
36
35
|
|
|
37
|
-
#@kekik_cache(ttl=60*60)
|
|
38
36
|
async def search(self, query: str) -> list[SearchResult]:
|
|
39
37
|
istek = await self.httpx.post(
|
|
40
38
|
url = f"{self.main_url}/filmara.php",
|
|
@@ -60,7 +58,6 @@ class JetFilmizle(PluginBase):
|
|
|
60
58
|
|
|
61
59
|
return results
|
|
62
60
|
|
|
63
|
-
#@kekik_cache(ttl=60*60)
|
|
64
61
|
async def load_item(self, url: str) -> MovieInfo:
|
|
65
62
|
istek = await self.httpx.get(url)
|
|
66
63
|
secici = Selector(istek.text)
|
KekikStream/Plugins/RecTV.py
CHANGED
|
@@ -30,7 +30,6 @@ class RecTV(PluginBase):
|
|
|
30
30
|
f"{main_url}/api/movie/by/filtres/5/created/SAYFA/{sw_key}/" : "Romantik"
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
#@kekik_cache(ttl=60*60)
|
|
34
33
|
async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
|
|
35
34
|
self.httpx.headers.update({"user-agent": "okhttp/4.12.0"})
|
|
36
35
|
istek = await self.httpx.get(f"{url.replace('SAYFA', str(int(page) - 1))}")
|
|
@@ -46,7 +45,6 @@ class RecTV(PluginBase):
|
|
|
46
45
|
for veri in veriler
|
|
47
46
|
]
|
|
48
47
|
|
|
49
|
-
#@kekik_cache(ttl=60*60)
|
|
50
48
|
async def search(self, query: str) -> list[SearchResult]:
|
|
51
49
|
self.httpx.headers.update({"user-agent": "okhttp/4.12.0"})
|
|
52
50
|
istek = await self.httpx.get(f"{self.main_url}/api/search/{query}/{self.sw_key}/")
|
|
@@ -67,7 +65,6 @@ class RecTV(PluginBase):
|
|
|
67
65
|
for veri in tum_veri
|
|
68
66
|
]
|
|
69
67
|
|
|
70
|
-
#@kekik_cache(ttl=60*60)
|
|
71
68
|
async def load_item(self, url: str) -> MovieInfo:
|
|
72
69
|
self.httpx.headers.update({"user-agent": "okhttp/4.12.0"})
|
|
73
70
|
veri = loads(url)
|
|
@@ -21,7 +21,6 @@ class SezonlukDizi(PluginBase):
|
|
|
21
21
|
f"{main_url}/diziler.asp?siralama_tipi=id&kat=6&s=" : "Belgeseller",
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
#@kekik_cache(ttl=60*60)
|
|
25
24
|
async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
|
|
26
25
|
istek = await self.httpx.get(f"{url}{page}")
|
|
27
26
|
secici = Selector(istek.text)
|
|
@@ -36,7 +35,6 @@ class SezonlukDizi(PluginBase):
|
|
|
36
35
|
for veri in secici.css("div.afis a") if veri.css("div.description::text").get()
|
|
37
36
|
]
|
|
38
37
|
|
|
39
|
-
#@kekik_cache(ttl=60*60)
|
|
40
38
|
async def search(self, query: str) -> list[SearchResult]:
|
|
41
39
|
istek = await self.httpx.get(f"{self.main_url}/diziler.asp?adi={query}")
|
|
42
40
|
secici = Selector(istek.text)
|
|
@@ -50,7 +48,6 @@ class SezonlukDizi(PluginBase):
|
|
|
50
48
|
for afis in secici.css("div.afis a.column")
|
|
51
49
|
]
|
|
52
50
|
|
|
53
|
-
#@kekik_cache(ttl=60*60)
|
|
54
51
|
async def load_item(self, url: str) -> SeriesInfo:
|
|
55
52
|
istek = await self.httpx.get(url)
|
|
56
53
|
secici = Selector(istek.text)
|
KekikStream/Plugins/SineWix.py
CHANGED
|
@@ -35,7 +35,6 @@ class SineWix(PluginBase):
|
|
|
35
35
|
f"{main_url}/sinewix/movies/36" : "Tarih",
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
#@kekik_cache(ttl=60*60)
|
|
39
38
|
async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
|
|
40
39
|
istek = await self.httpx.get(f"{url}/{page}")
|
|
41
40
|
veriler = istek.json()
|
|
@@ -50,7 +49,6 @@ class SineWix(PluginBase):
|
|
|
50
49
|
for veri in veriler.get("data")
|
|
51
50
|
]
|
|
52
51
|
|
|
53
|
-
#@kekik_cache(ttl=60*60)
|
|
54
52
|
async def search(self, query: str) -> list[SearchResult]:
|
|
55
53
|
istek = await self.httpx.get(f"{self.main_url}/sinewix/search/{query}")
|
|
56
54
|
|
|
@@ -63,7 +61,6 @@ class SineWix(PluginBase):
|
|
|
63
61
|
for veri in istek.json().get("search")
|
|
64
62
|
]
|
|
65
63
|
|
|
66
|
-
#@kekik_cache(ttl=60*60)
|
|
67
64
|
async def load_item(self, url: str) -> MovieInfo | SeriesInfo:
|
|
68
65
|
item_type = url.split("?type=")[-1].split("&id=")[0]
|
|
69
66
|
item_id = url.split("&id=")[-1]
|
KekikStream/Plugins/UgurFilm.py
CHANGED
|
@@ -23,7 +23,6 @@ class UgurFilm(PluginBase):
|
|
|
23
23
|
f"{main_url}/category/erotik/page/" : "Erotik"
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
#@kekik_cache(ttl=60*60)
|
|
27
26
|
async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
|
|
28
27
|
istek = await self.httpx.get(f"{url}{page}", follow_redirects=True)
|
|
29
28
|
secici = Selector(istek.text)
|
|
@@ -38,7 +37,6 @@ class UgurFilm(PluginBase):
|
|
|
38
37
|
for veri in secici.css("div.icerik div") if veri.css("span:nth-child(1)::text").get()
|
|
39
38
|
]
|
|
40
39
|
|
|
41
|
-
#@kekik_cache(ttl=60*60)
|
|
42
40
|
async def search(self, query: str) -> list[SearchResult]:
|
|
43
41
|
istek = await self.httpx.get(f"{self.main_url}/?s={query}")
|
|
44
42
|
secici = Selector(istek.text)
|
|
@@ -60,7 +58,6 @@ class UgurFilm(PluginBase):
|
|
|
60
58
|
|
|
61
59
|
return results
|
|
62
60
|
|
|
63
|
-
#@kekik_cache(ttl=60*60)
|
|
64
61
|
async def load_item(self, url: str) -> MovieInfo:
|
|
65
62
|
istek = await self.httpx.get(url)
|
|
66
63
|
secici = Selector(istek.text)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: KekikStream
|
|
3
|
-
Version: 1.8.
|
|
3
|
+
Version: 1.8.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
|
|
@@ -55,31 +55,31 @@ KekikStream/Extractors/VidMoxy.py,sha256=LT7wTKBtuuagXwfGjWZwQF2NQGuChurZJ-I6gM0
|
|
|
55
55
|
KekikStream/Extractors/VidPapi.py,sha256=g9ohdL9VJrxy4N7xerbIRz3ZxjsXFHlJWy0NaZ31hFY,3259
|
|
56
56
|
KekikStream/Extractors/VideoSeyred.py,sha256=M6QPZ_isX9vM_7LPo-2I_8Cf1vB9awHw8vvzBODtoiQ,1977
|
|
57
57
|
KekikStream/Extractors/YildizKisaFilm.py,sha256=R_JlrOVeMiDlXYcuTdItnKvidyx8_u3B14fSrxew2aE,1316
|
|
58
|
-
KekikStream/Plugins/DiziBox.py,sha256=
|
|
58
|
+
KekikStream/Plugins/DiziBox.py,sha256=XjEYhce_nv5onATzK9o0K9ezmOrGjwFwUZ0X7yR5uT4,9964
|
|
59
59
|
KekikStream/Plugins/DiziPal.py,sha256=MBONjermWBm3sN-8ZSILnfXI2F_V2kH65gpTNOuL9dI,10198
|
|
60
|
-
KekikStream/Plugins/DiziYou.py,sha256=
|
|
61
|
-
KekikStream/Plugins/Dizilla.py,sha256=
|
|
60
|
+
KekikStream/Plugins/DiziYou.py,sha256=0vupi1IHuMqUutnBxveMy4PIwf5tS7xzpHKr2Bu1aQA,9058
|
|
61
|
+
KekikStream/Plugins/Dizilla.py,sha256=DOvr-zqAKbxbUNB_vPPwBiQyAav0Gbi7sKZfdX3SW08,11604
|
|
62
62
|
KekikStream/Plugins/FilmBip.py,sha256=Tfx2dUc1Qs7ZQoJtsBtjOJXCKmTe56m74lNhuUYYU14,6182
|
|
63
|
-
KekikStream/Plugins/FilmMakinesi.py,sha256=
|
|
63
|
+
KekikStream/Plugins/FilmMakinesi.py,sha256=HUxSNuu95EILjG8k-QmktTBeSm068NKESygvs1w9uRM,5227
|
|
64
64
|
KekikStream/Plugins/FilmModu.py,sha256=b27hchMoYZwG3I-kM1sveW7rHKOF5OuepdjPgKIehEM,6706
|
|
65
65
|
KekikStream/Plugins/FullHDFilm.py,sha256=kkb-JtWf23uiEzP9f_uds0tROYiKOyxcX0D-jNtQFi0,7005
|
|
66
|
-
KekikStream/Plugins/FullHDFilmizlesene.py,sha256=
|
|
67
|
-
KekikStream/Plugins/HDFilmCehennemi.py,sha256=
|
|
68
|
-
KekikStream/Plugins/JetFilmizle.py,sha256=
|
|
66
|
+
KekikStream/Plugins/FullHDFilmizlesene.py,sha256=eoQO61lHweWNd7oQsLrinSaHQlYByIMiCaW0GUKCWfQ,6194
|
|
67
|
+
KekikStream/Plugins/HDFilmCehennemi.py,sha256=gqj5RxbI8SJmifIIRI_qHq1ufTu5O32XZQDdgdFiTKI,9740
|
|
68
|
+
KekikStream/Plugins/JetFilmizle.py,sha256=78AS3wNEcGBWQMPIyLHoEWQnL-TK_ILoJDNUlkZctz4,6005
|
|
69
69
|
KekikStream/Plugins/KultFilmler.py,sha256=VZET3RUoOVYKE-C2YbkMW8oNcxz6zE2pR7a3z-B4nD4,8987
|
|
70
|
-
KekikStream/Plugins/RecTV.py,sha256=
|
|
70
|
+
KekikStream/Plugins/RecTV.py,sha256=n_X6ymzCXk6sBeEB-iNCKzuRScNEM5Jug4QiO1WDPts,7586
|
|
71
71
|
KekikStream/Plugins/RoketDizi.py,sha256=C6ID2sfEwf0Tw8_tO-pc1nx8TB0Ii_rCVRzlHA7E-oA,8547
|
|
72
72
|
KekikStream/Plugins/SelcukFlix.py,sha256=F3Rv2TRpfM-SZUAqjTPsQChS_Ejoh5q1Mo5fBFlsLy0,9013
|
|
73
|
-
KekikStream/Plugins/SezonlukDizi.py,sha256=
|
|
74
|
-
KekikStream/Plugins/SineWix.py,sha256=
|
|
73
|
+
KekikStream/Plugins/SezonlukDizi.py,sha256=7PG-QjT6C765EougAS47KpqlK9xGrdJX2mN4RAg9W5Q,6368
|
|
74
|
+
KekikStream/Plugins/SineWix.py,sha256=HE8GAwHoeYRfNFdG1RfgqxK242kExVJK9PjgVh-ZI9k,7406
|
|
75
75
|
KekikStream/Plugins/Sinefy.py,sha256=mRwtQYiH7I_1k4EZS0g4MhnRDEx0NXwY8sa5tI33dog,8368
|
|
76
76
|
KekikStream/Plugins/SinemaCX.py,sha256=DUvYa7J4a2D5ivLO_sQiaStoV5FDxmz8onJyFwAidvY,7177
|
|
77
77
|
KekikStream/Plugins/Sinezy.py,sha256=t7InHEtKdIVyBQj8HJWwWcHhRP9AXKKXYE0O3YD8MYg,3647
|
|
78
78
|
KekikStream/Plugins/SuperFilmGeldi.py,sha256=Ohm21BPsJH_S1tx5i2APEgAOD25k2NiwRP7rSgAKvRs,5289
|
|
79
|
-
KekikStream/Plugins/UgurFilm.py,sha256=
|
|
80
|
-
kekikstream-1.8.
|
|
81
|
-
kekikstream-1.8.
|
|
82
|
-
kekikstream-1.8.
|
|
83
|
-
kekikstream-1.8.
|
|
84
|
-
kekikstream-1.8.
|
|
85
|
-
kekikstream-1.8.
|
|
79
|
+
KekikStream/Plugins/UgurFilm.py,sha256=zD_PtNRUAVlA39MqCWN7Cw-A-x6NUtqx2pESN07_t2w,4874
|
|
80
|
+
kekikstream-1.8.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
81
|
+
kekikstream-1.8.3.dist-info/METADATA,sha256=gj5Vqz8oO_hdA81YkOWY4xw6WvUXxCRSQsL2IkSkEGs,4983
|
|
82
|
+
kekikstream-1.8.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
83
|
+
kekikstream-1.8.3.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
|
|
84
|
+
kekikstream-1.8.3.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
|
|
85
|
+
kekikstream-1.8.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|