KekikStream 1.3.2__tar.gz → 1.3.4__tar.gz

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 (69) hide show
  1. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/Media/MediaHandler.py +4 -4
  2. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/CloseLoad.py +0 -1
  3. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/HDFilmCehennemi.py +38 -3
  4. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/JetFilmizle.py +32 -4
  5. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/RecTV.py +41 -6
  6. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/SezonlukDizi.py +35 -6
  7. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/Shorten.py +3 -3
  8. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/SineWix.py +4 -4
  9. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/UgurFilm.py +3 -3
  10. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream.egg-info/PKG-INFO +1 -1
  11. {kekikstream-1.3.2 → kekikstream-1.3.4}/PKG-INFO +1 -1
  12. {kekikstream-1.3.2 → kekikstream-1.3.4}/setup.py +1 -1
  13. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/CLI/__init__.py +0 -0
  14. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/CLI/pypi_kontrol.py +0 -0
  15. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/Extractor/ExtractorBase.py +0 -0
  16. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/Extractor/ExtractorLoader.py +0 -0
  17. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/Extractor/ExtractorManager.py +0 -0
  18. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/Extractor/ExtractorModels.py +0 -0
  19. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/Media/MediaManager.py +0 -0
  20. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/Plugin/PluginBase.py +0 -0
  21. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/Plugin/PluginLoader.py +0 -0
  22. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/Plugin/PluginManager.py +0 -0
  23. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/Plugin/PluginModels.py +0 -0
  24. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/UI/UIManager.py +0 -0
  25. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Core/__init__.py +0 -0
  26. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/ContentX.py +0 -0
  27. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/FourCX.py +0 -0
  28. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/FourPichive.py +0 -0
  29. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/FourPlayRu.py +0 -0
  30. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/HDStreamAble.py +0 -0
  31. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/Hotlinger.py +0 -0
  32. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/MailRu.py +0 -0
  33. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/MixPlayHD.py +0 -0
  34. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/MolyStream.py +0 -0
  35. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/Odnoklassniki.py +0 -0
  36. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/OkRuHTTP.py +0 -0
  37. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/OkRuSSL.py +0 -0
  38. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/PeaceMakerst.py +0 -0
  39. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/Pichive.py +0 -0
  40. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/PixelDrain.py +0 -0
  41. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/PlayRu.py +0 -0
  42. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/RapidVid.py +0 -0
  43. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/SibNet.py +0 -0
  44. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/Sobreatsesuyp.py +0 -0
  45. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/TRsTX.py +0 -0
  46. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/TauVideo.py +0 -0
  47. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/TurboImgz.py +0 -0
  48. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/VidMoly.py +0 -0
  49. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/VidMolyMe.py +0 -0
  50. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/VidMoxy.py +0 -0
  51. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Extractors/VideoSeyred.py +0 -0
  52. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Helpers/Unpack.py +0 -0
  53. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/DiziBox.py +0 -0
  54. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/DiziYou.py +0 -0
  55. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/Dizilla.py +0 -0
  56. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/FilmMakinesi.py +0 -0
  57. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/Plugins/FullHDFilmizlesene.py +0 -0
  58. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/__init__.py +0 -0
  59. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/__main__.py +0 -0
  60. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream/requirements.txt +0 -0
  61. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream.egg-info/SOURCES.txt +0 -0
  62. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream.egg-info/dependency_links.txt +0 -0
  63. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream.egg-info/entry_points.txt +0 -0
  64. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream.egg-info/requires.txt +0 -0
  65. {kekikstream-1.3.2 → kekikstream-1.3.4}/KekikStream.egg-info/top_level.txt +0 -0
  66. {kekikstream-1.3.2 → kekikstream-1.3.4}/LICENSE +0 -0
  67. {kekikstream-1.3.2 → kekikstream-1.3.4}/MANIFEST.in +0 -0
  68. {kekikstream-1.3.2 → kekikstream-1.3.4}/README.md +0 -0
  69. {kekikstream-1.3.2 → kekikstream-1.3.4}/setup.cfg +0 -0
@@ -123,11 +123,11 @@ class MediaHandler:
123
123
  subprocess.run(mpv_command, stdin=ytdlp_proc.stdout, check=True)
124
124
 
125
125
  except subprocess.CalledProcessError as hata:
126
- print(f"[red]Oynatma hatası: {hata}[/red]")
127
- print({"title": self.title, "url": extract_data.url, "headers": self.headers})
126
+ konsol.print(f"[red]Oynatma hatası: {hata}[/red]")
127
+ konsol.print({"title": self.title, "url": extract_data.url, "headers": self.headers})
128
128
  except FileNotFoundError:
129
- print("[red]yt-dlp veya mpv bulunamadı! Kurulumlarından emin olun.[/red]")
130
- print({"title": self.title, "url": extract_data.url, "headers": self.headers})
129
+ konsol.print("[red]yt-dlp veya mpv bulunamadı! Kurulumlarından emin olun.[/red]")
130
+ konsol.print({"title": self.title, "url": extract_data.url, "headers": self.headers})
131
131
 
132
132
  def play_with_android_mxplayer(self, extract_data: ExtractResult):
133
133
  konsol.log(f"[yellow][»] MxPlayer ile Oynatılıyor : {extract_data.url}")
@@ -36,7 +36,6 @@ class CloseLoadExtractor(ExtractorBase):
36
36
 
37
37
  eval_func = re.compile(r'\s*(eval\(function[\s\S].*)\s*').findall(istek.text)[0]
38
38
  m3u_link = get_m3u_link(extract_data(unpack(eval_func)))
39
- print(m3u_link)
40
39
 
41
40
  await self.close()
42
41
  return ExtractResult(
@@ -1,12 +1,47 @@
1
1
  # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
2
 
3
- from KekikStream.Core import kekik_cache, PluginBase, SearchResult, MovieInfo, ExtractResult, Subtitle
3
+ from KekikStream.Core import kekik_cache, PluginBase, MainPageResult, SearchResult, MovieInfo, ExtractResult, Subtitle
4
4
  from parsel import Selector
5
5
  import random, string
6
6
 
7
7
  class HDFilmCehennemi(PluginBase):
8
- name = "HDFilmCehennemi"
9
- main_url = "https://www.hdfilmcehennemi.nl"
8
+ name = "HDFilmCehennemi"
9
+ language = "tr"
10
+ main_url = "https://www.hdfilmcehennemi.nl"
11
+ favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
12
+ description = "Türkiye'nin en hızlı hd film izleme sitesi"
13
+
14
+ main_page = {
15
+ f"{main_url}" : "Yeni Eklenen Filmler",
16
+ f"{main_url}/yabancidiziizle-2" : "Yeni Eklenen Diziler",
17
+ f"{main_url}/category/tavsiye-filmler-izle2" : "Tavsiye Filmler",
18
+ f"{main_url}/imdb-7-puan-uzeri-filmler" : "IMDB 7+ Filmler",
19
+ f"{main_url}/en-cok-yorumlananlar-1" : "En Çok Yorumlananlar",
20
+ f"{main_url}/en-cok-begenilen-filmleri-izle" : "En Çok Beğenilenler",
21
+ f"{main_url}/tur/aile-filmleri-izleyin-6" : "Aile Filmleri",
22
+ f"{main_url}/tur/aksiyon-filmleri-izleyin-3" : "Aksiyon Filmleri",
23
+ f"{main_url}/tur/animasyon-filmlerini-izleyin-4" : "Animasyon Filmleri",
24
+ f"{main_url}/tur/belgesel-filmlerini-izle-1" : "Belgesel Filmleri",
25
+ f"{main_url}/tur/bilim-kurgu-filmlerini-izleyin-2" : "Bilim Kurgu Filmleri",
26
+ f"{main_url}/tur/komedi-filmlerini-izleyin-1" : "Komedi Filmleri",
27
+ f"{main_url}/tur/korku-filmlerini-izle-2/" : "Korku Filmleri",
28
+ f"{main_url}/tur/romantik-filmleri-izle-1" : "Romantik Filmleri"
29
+ }
30
+
31
+ @kekik_cache(ttl=60*60)
32
+ async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
33
+ istek = await self.httpx.get(f"{url}")
34
+ secici = Selector(istek.text)
35
+
36
+ return [
37
+ MainPageResult(
38
+ category = category,
39
+ title = veri.css("strong.poster-title::text").get(),
40
+ url = self.fix_url(veri.css("::attr(href)").get()),
41
+ poster = self.fix_url(veri.css("img::attr(data-src)").get()),
42
+ )
43
+ for veri in secici.css("div.section-content a.poster")
44
+ ]
10
45
 
11
46
  @kekik_cache(ttl=60*60)
12
47
  async def search(self, query: str) -> list[SearchResult]:
@@ -1,11 +1,38 @@
1
1
  # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
2
 
3
- from KekikStream.Core import kekik_cache, PluginBase, SearchResult, MovieInfo
3
+ from KekikStream.Core import kekik_cache, PluginBase, MainPageResult, SearchResult, MovieInfo
4
4
  from parsel import Selector
5
5
 
6
6
  class JetFilmizle(PluginBase):
7
- name = "JetFilmizle"
8
- main_url = "https://jetfilmizle.io"
7
+ name = "JetFilmizle"
8
+ language = "tr"
9
+ main_url = "https://jetfilmizle.io"
10
+ favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
11
+ description = "Binlerce Film İzleme Seçeneğiyle En İyi Film İzleme Sitesi"
12
+
13
+ main_page = {
14
+ f"{main_url}/page/" : "Son Filmler",
15
+ f"{main_url}/netflix/page/" : "Netflix",
16
+ f"{main_url}/editorun-secimi/page/" : "Editörün Seçimi",
17
+ f"{main_url}/turk-film-izle/page/" : "Türk Filmleri",
18
+ f"{main_url}/cizgi-filmler-izle/page/" : "Çizgi Filmler",
19
+ f"{main_url}/kategoriler/yesilcam-filmleri-izlee/page/" : "Yeşilçam Filmleri"
20
+ }
21
+
22
+ @kekik_cache(ttl=60*60)
23
+ async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
24
+ istek = await self.httpx.get(f"{url}{page}")
25
+ secici = Selector(istek.text)
26
+
27
+ return [
28
+ MainPageResult(
29
+ category = category,
30
+ title = self.clean_title(veri.css("h2 a::text, h3 a::text, h4 a::text, h5 a::text, h6 a::text").get()),
31
+ url = self.fix_url(veri.css("a::attr(href)").get()),
32
+ poster = self.fix_url(veri.css("img::attr(data-src)").get() or veri.css("img::attr(src)").get()),
33
+ )
34
+ for veri in secici.css("article.movie")
35
+ ]
9
36
 
10
37
  @kekik_cache(ttl=60*60)
11
38
  async def search(self, query: str) -> list[SearchResult]:
@@ -43,7 +70,8 @@ class JetFilmizle(PluginBase):
43
70
  description = secici.css("section.movie-exp p.aciklama::text").get().strip()
44
71
  tags = secici.css("section.movie-exp div.catss a::text").getall()
45
72
  rating = secici.css("section.movie-exp div.imdb_puan span::text").get().strip()
46
- year = secici.xpath("//div[@class='yap' and (contains(., 'Vizyon') or contains(., 'Yapım'))]/text()").get().strip()
73
+ year = secici.xpath("//div[@class='yap' and (contains(., 'Vizyon') or contains(., 'Yapım'))]/text()").get()
74
+ year = year.strip() if year else None
47
75
  actors = secici.css("div[itemprop='actor'] a span::text").getall()
48
76
 
49
77
  return MovieInfo(
@@ -1,19 +1,54 @@
1
1
  # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
2
 
3
- from KekikStream.Core import kekik_cache, PluginBase, SearchResult, MovieInfo, Episode, SeriesInfo, ExtractResult, Subtitle
3
+ from KekikStream.Core import kekik_cache, PluginBase, MainPageResult, SearchResult, MovieInfo, Episode, SeriesInfo, ExtractResult, Subtitle
4
4
  from httpx import AsyncClient
5
5
  from json import dumps, loads
6
6
  import re
7
7
 
8
8
  class RecTV(PluginBase):
9
- name = "RecTV"
10
- main_url = "https://a.prectv35.sbs"
9
+ name = "RecTV"
10
+ language = "tr"
11
+ main_url = "https://a.prectv35.sbs"
12
+ favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
13
+ description = "RecTv APK, Türkiye’deki en popüler Çevrimiçi Medya Akış platformlarından biridir. Filmlerin, Canlı Sporların, Web Dizilerinin ve çok daha fazlasının keyfini ücretsiz çıkarın."
11
14
 
12
15
  sw_key = "4F5A9C3D9A86FA54EACEDDD635185/c3c5bd17-e37b-4b94-a944-8a3688a30452"
13
16
  http2 = AsyncClient(http2=True)
14
17
  http2.headers.update({"user-agent": "okhttp/4.12.0"})
15
18
 
16
- kekik_cache(ttl=60*60)
19
+ main_page = {
20
+ f"{main_url}/api/channel/by/filtres/0/0/SAYFA/{sw_key}/" : "Canlı",
21
+ f"{main_url}/api/movie/by/filtres/0/created/SAYFA/{sw_key}/" : "Son Filmler",
22
+ f"{main_url}/api/serie/by/filtres/0/created/SAYFA/{sw_key}/" : "Son Diziler",
23
+ f"{main_url}/api/movie/by/filtres/14/created/SAYFA/{sw_key}/" : "Aile",
24
+ f"{main_url}/api/movie/by/filtres/1/created/SAYFA/{sw_key}/" : "Aksiyon",
25
+ f"{main_url}/api/movie/by/filtres/13/created/SAYFA/{sw_key}/" : "Animasyon",
26
+ f"{main_url}/api/movie/by/filtres/19/created/SAYFA/{sw_key}/" : "Belgesel",
27
+ f"{main_url}/api/movie/by/filtres/4/created/SAYFA/{sw_key}/" : "Bilim Kurgu",
28
+ f"{main_url}/api/movie/by/filtres/2/created/SAYFA/{sw_key}/" : "Dram",
29
+ f"{main_url}/api/movie/by/filtres/10/created/SAYFA/{sw_key}/" : "Fantastik",
30
+ f"{main_url}/api/movie/by/filtres/3/created/SAYFA/{sw_key}/" : "Komedi",
31
+ f"{main_url}/api/movie/by/filtres/8/created/SAYFA/{sw_key}/" : "Korku",
32
+ f"{main_url}/api/movie/by/filtres/17/created/SAYFA/{sw_key}/" : "Macera",
33
+ f"{main_url}/api/movie/by/filtres/5/created/SAYFA/{sw_key}/" : "Romantik"
34
+ }
35
+
36
+ @kekik_cache(ttl=60*60)
37
+ async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
38
+ istek = await self.httpx.get(f"{url.replace('SAYFA', str(int(page) - 1))}")
39
+ veriler = istek.json()
40
+
41
+ return [
42
+ MainPageResult(
43
+ category = category,
44
+ title = self.clean_title(veri.get("title")),
45
+ url = dumps(veri),
46
+ poster = self.fix_url(veri.get("image")),
47
+ )
48
+ for veri in veriler
49
+ ]
50
+
51
+ @kekik_cache(ttl=60*60)
17
52
  async def search(self, query: str) -> list[SearchResult]:
18
53
  self.media_handler.headers.update({"User-Agent": "googleusercontent"})
19
54
 
@@ -35,7 +70,7 @@ class RecTV(PluginBase):
35
70
  for veri in tum_veri
36
71
  ]
37
72
 
38
- kekik_cache(ttl=60*60)
73
+ @kekik_cache(ttl=60*60)
39
74
  async def load_item(self, url: str) -> MovieInfo:
40
75
  veri = loads(url)
41
76
 
@@ -86,7 +121,7 @@ class RecTV(PluginBase):
86
121
  actors = []
87
122
  )
88
123
 
89
- kekik_cache(ttl=15*60)
124
+ @kekik_cache(ttl=15*60)
90
125
  async def load_links(self, url: str) -> list[str]:
91
126
  try:
92
127
  veri = loads(url)
@@ -1,13 +1,42 @@
1
1
  # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
2
 
3
- from KekikStream.Core import kekik_cache, PluginBase, SearchResult, SeriesInfo, Episode
3
+ from KekikStream.Core import kekik_cache, PluginBase, MainPageResult, SearchResult, SeriesInfo, Episode
4
4
  from parsel import Selector
5
5
 
6
6
  class SezonlukDizi(PluginBase):
7
- name = "SezonlukDizi"
8
- main_url = "https://sezonlukdizi6.com"
7
+ name = "SezonlukDizi"
8
+ language = "tr"
9
+ main_url = "https://sezonlukdizi6.com"
10
+ favicon = f"https://www.google.com/s2/favicons?domain={main_url}&sz=64"
11
+ description = "Güncel ve eski dizileri en iyi görüntü kalitesiyle bulabileceğiniz yabancı dizi izleme siteniz."
12
+
13
+ main_page = {
14
+ f"{main_url}/diziler.asp?siralama_tipi=id&s=" : "Son Eklenenler",
15
+ f"{main_url}/diziler.asp?siralama_tipi=id&tur=mini&s=" : "Mini Diziler",
16
+ f"{main_url}/diziler.asp?siralama_tipi=id&kat=2&s=" : "Yerli Diziler",
17
+ f"{main_url}/diziler.asp?siralama_tipi=id&kat=1&s=" : "Yabancı Diziler",
18
+ f"{main_url}/diziler.asp?siralama_tipi=id&kat=3&s=" : "Asya Dizileri",
19
+ f"{main_url}/diziler.asp?siralama_tipi=id&kat=4&s=" : "Animasyonlar",
20
+ f"{main_url}/diziler.asp?siralama_tipi=id&kat=5&s=" : "Animeler",
21
+ f"{main_url}/diziler.asp?siralama_tipi=id&kat=6&s=" : "Belgeseller",
22
+ }
23
+
24
+ @kekik_cache(ttl=60*60)
25
+ async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
26
+ istek = await self.httpx.get(f"{url}{page}")
27
+ secici = Selector(istek.text)
28
+
29
+ return [
30
+ MainPageResult(
31
+ category = category,
32
+ title = veri.css("div.description::text").get(),
33
+ url = self.fix_url(veri.css("::attr(href)").get()),
34
+ poster = self.fix_url(veri.css("img::attr(data-src)").get()),
35
+ )
36
+ for veri in secici.css("div.afis a") if veri.css("div.description::text").get()
37
+ ]
9
38
 
10
- kekik_cache(ttl=60*60)
39
+ @kekik_cache(ttl=60*60)
11
40
  async def search(self, query: str) -> list[SearchResult]:
12
41
  istek = await self.httpx.get(f"{self.main_url}/diziler.asp?adi={query}")
13
42
  secici = Selector(istek.text)
@@ -21,7 +50,7 @@ class SezonlukDizi(PluginBase):
21
50
  for afis in secici.css("div.afis a.column")
22
51
  ]
23
52
 
24
- kekik_cache(ttl=60*60)
53
+ @kekik_cache(ttl=60*60)
25
54
  async def load_item(self, url: str) -> SeriesInfo:
26
55
  istek = await self.httpx.get(url)
27
56
  secici = Selector(istek.text)
@@ -73,7 +102,7 @@ class SezonlukDizi(PluginBase):
73
102
  actors = actors
74
103
  )
75
104
 
76
- kekik_cache(ttl=15*60)
105
+ @kekik_cache(ttl=15*60)
77
106
  async def load_links(self, url: str) -> list[str]:
78
107
  istek = await self.httpx.get(url)
79
108
  secici = Selector(istek.text)
@@ -155,7 +155,7 @@ class Shorten(PluginBase):
155
155
 
156
156
  return veriler["data"]
157
157
 
158
- kekik_cache(ttl=60*60)
158
+ @kekik_cache(ttl=60*60)
159
159
  async def search(self, query: str) -> list[SearchResult]:
160
160
  veriler = await self.raw_diziler()
161
161
 
@@ -168,7 +168,7 @@ class Shorten(PluginBase):
168
168
  for veri in veriler
169
169
  ]
170
170
 
171
- kekik_cache(ttl=60*60)
171
+ @kekik_cache(ttl=60*60)
172
172
  async def load_item(self, url: str) -> MovieInfo:
173
173
  veri = await self.bolumler(url)
174
174
 
@@ -205,7 +205,7 @@ class Shorten(PluginBase):
205
205
  episodes = episodes,
206
206
  )
207
207
 
208
- kekik_cache(ttl=15*60)
208
+ @kekik_cache(ttl=15*60)
209
209
  async def load_links(self, url: str) -> list[str]:
210
210
  return [url]
211
211
 
@@ -34,7 +34,7 @@ class SineWix(PluginBase):
34
34
  f"{main_url}/sinewix/movies/36" : "Tarih",
35
35
  }
36
36
 
37
- kekik_cache(ttl=60*60)
37
+ @kekik_cache(ttl=60*60)
38
38
  async def get_main_page(self, page: int, url: str, category: str) -> list[MainPageResult]:
39
39
  istek = await self.httpx.get(f"{url}/{page}")
40
40
  veriler = istek.json()
@@ -49,7 +49,7 @@ class SineWix(PluginBase):
49
49
  for veri in veriler.get("data")
50
50
  ]
51
51
 
52
- kekik_cache(ttl=60*60)
52
+ @kekik_cache(ttl=60*60)
53
53
  async def search(self, query: str) -> list[SearchResult]:
54
54
  istek = await self.httpx.get(f"{self.main_url}/sinewix/search/{query}")
55
55
 
@@ -62,7 +62,7 @@ class SineWix(PluginBase):
62
62
  for veri in istek.json().get("search")
63
63
  ]
64
64
 
65
- kekik_cache(ttl=60*60)
65
+ @kekik_cache(ttl=60*60)
66
66
  async def load_item(self, url: str) -> MovieInfo | SeriesInfo:
67
67
  item_type = url.split("?type=")[-1].split("&id=")[0]
68
68
  item_id = url.split("&id=")[-1]
@@ -125,7 +125,7 @@ class SineWix(PluginBase):
125
125
  episodes = episodes,
126
126
  )
127
127
 
128
- kekik_cache(ttl=15*60)
128
+ @kekik_cache(ttl=15*60)
129
129
  async def load_links(self, url: str) -> list[str]:
130
130
  if not url.startswith(self.main_url):
131
131
  return [url]
@@ -7,7 +7,7 @@ class UgurFilm(PluginBase):
7
7
  name = "UgurFilm"
8
8
  main_url = "https://ugurfilm8.com"
9
9
 
10
- kekik_cache(ttl=60*60)
10
+ @kekik_cache(ttl=60*60)
11
11
  async def search(self, query: str) -> list[SearchResult]:
12
12
  istek = await self.httpx.get(f"{self.main_url}/?s={query}")
13
13
  secici = Selector(istek.text)
@@ -29,7 +29,7 @@ class UgurFilm(PluginBase):
29
29
 
30
30
  return results
31
31
 
32
- kekik_cache(ttl=60*60)
32
+ @kekik_cache(ttl=60*60)
33
33
  async def load_item(self, url: str) -> MovieInfo:
34
34
  istek = await self.httpx.get(url)
35
35
  secici = Selector(istek.text)
@@ -51,7 +51,7 @@ class UgurFilm(PluginBase):
51
51
  actors = actors,
52
52
  )
53
53
 
54
- kekik_cache(ttl=15*60)
54
+ @kekik_cache(ttl=15*60)
55
55
  async def load_links(self, url: str) -> list[str]:
56
56
  istek = await self.httpx.get(url)
57
57
  secici = Selector(istek.text)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: KekikStream
3
- Version: 1.3.2
3
+ Version: 1.3.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
5
  Home-page: https://github.com/keyiflerolsun/KekikStream
6
6
  Author: keyiflerolsun
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: KekikStream
3
- Version: 1.3.2
3
+ Version: 1.3.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
5
  Home-page: https://github.com/keyiflerolsun/KekikStream
6
6
  Author: keyiflerolsun
@@ -6,7 +6,7 @@ from io import open
6
6
  setup(
7
7
  # ? Genel Bilgiler
8
8
  name = "KekikStream",
9
- version = "1.3.2",
9
+ version = "1.3.4",
10
10
  url = "https://github.com/keyiflerolsun/KekikStream",
11
11
  description = "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ı",
12
12
  keywords = ["KekikStream", "KekikAkademi", "keyiflerolsun"],
File without changes
File without changes
File without changes
File without changes