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.
@@ -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 kekik_cache, PluginBase, MainPageResult, SearchResult, SeriesInfo, Episode
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
@@ -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)
@@ -1,6 +1,7 @@
1
1
  # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
2
 
3
- from KekikStream.Core import kekik_cache, PluginBase, MainPageResult, SearchResult, SeriesInfo, Episode
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 = "Dizilla tüm yabancı dizileri ücretsiz olarak Türkçe Dublaj ve altyazılı seçenekleri ile 1080P kalite izleyebileceğiniz yeni nesil yabancı dizi izleme siteniz."
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" : "Altyazılı Bölümler",
19
- f"{main_url}/dizi-turu/aile" : "Aile",
20
- f"{main_url}/dizi-turu/aksiyon" : "Aksiyon",
21
- f"{main_url}/dizi-turu/bilim-kurgu" : "Bilim Kurgu",
22
- f"{main_url}/dizi-turu/romantik" : "Romantik",
23
- f"{main_url}/dizi-turu/komedi" : "Komedi"
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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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&currentPage=SAYFA&currentPageCount=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 "dizi-turu" in url:
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.css("span.font-normal::text").get(),
38
- url = self.fix_url(veri.css("a::attr(href)").get()),
39
- poster = self.fix_url(veri.css("img::attr(src)").get() or veri.css("img::attr(data-src)").get())
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 secici.css("span.watchlistitem-")
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 = veri.get("name")
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 = veri.get("aggregateRating", {}).get("ratingValue")
135
- actors = [actor.get("name") for actor in veri.get("actor", []) if actor.get("name")]
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)
@@ -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)
@@ -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]
@@ -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.2
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=x7lChsXwaKbWeIPs9uN-jU1ZlVG73a7_1H5_emoPlUQ,10092
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=Gj4PKMKHLO7yOfGt-W9XjXjGpYwnhiJGdzt0-mqMMiM,9145
61
- KekikStream/Plugins/Dizilla.py,sha256=VrpX875q5zp27w0zWgN4NE-ImpuIGAFWxzVhVITbAl0,7588
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=CdV4k44dw0Q4rO3x4GobSDT1KGrkgit0OfTPxZfmfJ8,5314
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=UYOMLJqbH72gkXWizNV3gWLZHATWeC6h8YaqThgGduI,6281
67
- KekikStream/Plugins/HDFilmCehennemi.py,sha256=cI8pQEPF0xo9vVI2fCPktjvCuH8N8f5lI0GwT3bwy8Y,9827
68
- KekikStream/Plugins/JetFilmizle.py,sha256=0UgHnBTkd4mMXKSLjYxAixFMGXrVa0qOLqYiLb6RKZQ,6092
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=dJBHc0Um-hizxj__lz3To0mA7An86YpoN3hZPX4xJic,7673
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=IomeNsVlji1TCimv8JwdMquKLcxZwwJQOZYzJ5v0OdE,6455
74
- KekikStream/Plugins/SineWix.py,sha256=dPFUlHece9zo57Xjttdp_w-K9J_d1_8C-U6u1twWLh8,7493
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=BUoDQOQF6tsj2tZj06OL9ga7j_oj116p3C2GQsnMXTU,4961
80
- kekikstream-1.8.2.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
81
- kekikstream-1.8.2.dist-info/METADATA,sha256=nXpNw-DQqIKw6ni5DSDAtdPUR913PoRoS5h-Hi4En7I,4983
82
- kekikstream-1.8.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
83
- kekikstream-1.8.2.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
84
- kekikstream-1.8.2.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
85
- kekikstream-1.8.2.dist-info/RECORD,,
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,,