KekikStream 0.6.6__tar.gz → 0.6.7__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. kekikstream-0.6.7/KekikStream/Plugins/DiziYou.py +125 -0
  2. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Plugins/SineWix.py +1 -2
  3. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/__init__.py +1 -1
  4. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream.egg-info/PKG-INFO +1 -1
  5. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream.egg-info/SOURCES.txt +1 -0
  6. {kekikstream-0.6.6 → kekikstream-0.6.7}/PKG-INFO +1 -1
  7. {kekikstream-0.6.6 → kekikstream-0.6.7}/setup.py +1 -1
  8. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/CLI/__init__.py +0 -0
  9. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/CLI/pypi_kontrol.py +0 -0
  10. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Core/ExtractorBase.py +0 -0
  11. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Core/ExtractorLoader.py +0 -0
  12. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Core/ExtractorModels.py +0 -0
  13. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Core/MediaHandler.py +0 -0
  14. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Core/PluginBase.py +0 -0
  15. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Core/PluginLoader.py +0 -0
  16. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Core/PluginModels.py +0 -0
  17. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Core/__init__.py +0 -0
  18. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/CloseLoad.py +0 -0
  19. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/ContentX.py +0 -0
  20. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/FourCX.py +0 -0
  21. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/FourPichive.py +0 -0
  22. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/FourPlayRu.py +0 -0
  23. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/HDStreamAble.py +0 -0
  24. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/Hotlinger.py +0 -0
  25. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/MailRu.py +0 -0
  26. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/MixPlayHD.py +0 -0
  27. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/Odnoklassniki.py +0 -0
  28. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/OkRuHTTP.py +0 -0
  29. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/OkRuSSL.py +0 -0
  30. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/PeaceMakerst.py +0 -0
  31. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/Pichive.py +0 -0
  32. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/PixelDrain.py +0 -0
  33. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/PlayRu.py +0 -0
  34. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/RapidVid.py +0 -0
  35. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/SibNet.py +0 -0
  36. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/Sobreatsesuyp.py +0 -0
  37. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/TRsTX.py +0 -0
  38. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/TauVideo.py +0 -0
  39. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/TurboImgz.py +0 -0
  40. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/VidMoly.py +0 -0
  41. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/VidMoxy.py +0 -0
  42. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Extractors/VideoSeyred.py +0 -0
  43. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Managers/ExtractorManager.py +0 -0
  44. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Managers/MediaManager.py +0 -0
  45. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Managers/PluginManager.py +0 -0
  46. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Managers/UIManager.py +0 -0
  47. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Managers/__init__.py +0 -0
  48. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Plugins/DiziBox.py +0 -0
  49. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Plugins/Dizilla.py +0 -0
  50. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Plugins/FilmMakinesi.py +0 -0
  51. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Plugins/FullHDFilmizlesene.py +0 -0
  52. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Plugins/JetFilmizle.py +0 -0
  53. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Plugins/SezonlukDizi.py +0 -0
  54. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Plugins/UgurFilm.py +0 -0
  55. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/Plugins/__RecTV.py +0 -0
  56. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/__main__.py +0 -0
  57. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream/requirements.txt +0 -0
  58. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream.egg-info/dependency_links.txt +0 -0
  59. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream.egg-info/entry_points.txt +0 -0
  60. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream.egg-info/requires.txt +0 -0
  61. {kekikstream-0.6.6 → kekikstream-0.6.7}/KekikStream.egg-info/top_level.txt +0 -0
  62. {kekikstream-0.6.6 → kekikstream-0.6.7}/LICENSE +0 -0
  63. {kekikstream-0.6.6 → kekikstream-0.6.7}/MANIFEST.in +0 -0
  64. {kekikstream-0.6.6 → kekikstream-0.6.7}/README.md +0 -0
  65. {kekikstream-0.6.6 → kekikstream-0.6.7}/setup.cfg +0 -0
@@ -0,0 +1,125 @@
1
+ # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
+
3
+ from KekikStream.Core import PluginBase, SearchResult, SeriesInfo, Episode, Subtitle, ExtractResult
4
+ from parsel import Selector
5
+ import re
6
+
7
+ class DiziYou(PluginBase):
8
+ name = "DiziYou"
9
+ main_url = "https://www.diziyou.co"
10
+
11
+ async def search(self, query: str) -> list[SearchResult]:
12
+ istek = await self.oturum.get(f"{self.main_url}/?s={query}")
13
+ secici = Selector(istek.text)
14
+
15
+ return [
16
+ SearchResult(
17
+ title = afis.css("div#categorytitle a::text").get().strip(),
18
+ url = self.fix_url(afis.css("div#categorytitle a::attr(href)").get()),
19
+ poster = self.fix_url(afis.css("img::attr(src)").get()),
20
+ )
21
+ for afis in secici.css("div.incontent div#list-series")
22
+ ]
23
+
24
+ async def load_item(self, url: str) -> SeriesInfo:
25
+ istek = await self.oturum.get(url)
26
+ secici = Selector(istek.text)
27
+
28
+ title = secici.css("h1::text").get().strip()
29
+ poster = self.fix_url(secici.css("div.category_image img::attr(src)").get().strip())
30
+ year = secici.xpath("//span[contains(., 'Yapım Yılı')]/following-sibling::text()[1]").get()
31
+ description = secici.css("div.diziyou_desc::text").get().strip()
32
+ tags = secici.css("div.genres a::text").getall()
33
+ rating = secici.xpath("//span[contains(., 'IMDB')]/following-sibling::text()[1]").get()
34
+ _actors = secici.xpath("//span[contains(., 'Oyuncular')]/following-sibling::text()[1]").get()
35
+ actors = [actor.strip() for actor in _actors.split(",")] if _actors else []
36
+
37
+ episodes = []
38
+ for it in secici.css("div.bolumust"):
39
+ ep_name = it.css("div.baslik::text").get().strip()
40
+ ep_href = it.xpath("ancestor::a/@href").get()
41
+ if not ep_name or not ep_href:
42
+ continue
43
+
44
+ ep_name_clean = it.css("div.bolumismi::text").get().strip().replace("(", "").replace(")", "").strip() if it.css("div.bolumismi::text").get() else ep_name
45
+
46
+ ep_episode = re.search(r"(\d+)\. Bölüm", ep_name)[1]
47
+ ep_season = re.search(r"(\d+)\. Sezon", ep_name)[1]
48
+
49
+ episode = Episode(
50
+ season = ep_season,
51
+ episode = ep_episode,
52
+ title = ep_name_clean,
53
+ url = ep_href,
54
+ )
55
+
56
+ episodes.append(episode)
57
+
58
+ return SeriesInfo(
59
+ url = url,
60
+ poster = poster,
61
+ title = title,
62
+ description = description,
63
+ tags = tags,
64
+ rating = rating,
65
+ year = year,
66
+ episodes = episodes,
67
+ actors = actors
68
+ )
69
+
70
+ async def load_links(self, url: str) -> list[str]:
71
+ istek = await self.oturum.get(url)
72
+ secici = Selector(istek.text)
73
+
74
+ item_id = secici.css("iframe#diziyouPlayer::attr(src)").get().split("/")[-1].replace(".html", "")
75
+
76
+ subtitles = []
77
+ stream_urls = []
78
+
79
+ for secenek in secici.css("span.diziyouOption"):
80
+ opt_id = secenek.css("::attr(id)").get()
81
+ op_name = secenek.css("::text").get()
82
+
83
+ match opt_id:
84
+ case "turkceAltyazili":
85
+ subtitles.append(Subtitle(
86
+ name = op_name,
87
+ url = self.fix_url(f"https://storage.diziyou.co/subtitles/{item_id}/tr.vtt"),
88
+ ))
89
+ veri = {
90
+ "dil": "Orjinal Dil",
91
+ "url": f"https://storage.diziyou.co/episodes/{item_id}/play.m3u8"
92
+ }
93
+ if veri not in stream_urls:
94
+ stream_urls.append(veri)
95
+ case "ingilizceAltyazili":
96
+ subtitles.append(Subtitle(
97
+ name = op_name,
98
+ url = self.fix_url(f"https://storage.diziyou.co/subtitles/{item_id}/en.vtt"),
99
+ ))
100
+ veri = {
101
+ "dil": "Orjinal Dil",
102
+ "url": f"https://storage.diziyou.co/episodes/{item_id}/play.m3u8"
103
+ }
104
+ if veri not in stream_urls:
105
+ stream_urls.append(veri)
106
+ case "turkceDublaj":
107
+ stream_urls.append({
108
+ "dil": "Dublaj",
109
+ "url": f"https://storage.diziyou.co/episodes/{item_id}_tr/play.m3u8"
110
+ })
111
+
112
+
113
+ for stream in stream_urls:
114
+ self._data[stream.get("url")] = {
115
+ "name" : f"{self.name} | {stream.get('dil')}",
116
+ "referer" : url,
117
+ "subtitles" : subtitles
118
+ }
119
+
120
+ return [stream.get("url") for stream in stream_urls]
121
+
122
+ async def play(self, name: str, url: str, referer: str, subtitles: list[Subtitle]):
123
+ extract_result = ExtractResult(name=name, url=url, referer=referer, subtitles=subtitles)
124
+ self.media_handler.title = name
125
+ self.media_handler.play_media(extract_result)
@@ -90,12 +90,11 @@ class SineWix(PluginBase):
90
90
  org_title = veri.get("title")
91
91
  alt_title = veri.get("original_name") or ""
92
92
  title = f"{org_title} - {alt_title}" if (alt_title and org_title != alt_title) else org_title
93
- title = f"{self.name} | {title}"
94
93
 
95
94
  for video in veri.get("videos"):
96
95
  video_link = video.get("link").split("_blank\">")[-1]
97
96
  self._data[video_link] = {
98
- "name" : title,
97
+ "name" : f"{self.name} | {title}",
99
98
  "referer" : self.main_url,
100
99
  "subtitles" : []
101
100
  }
@@ -180,7 +180,7 @@ class KekikStream:
180
180
  if not haritalama:
181
181
  secilen_link = await self.arayuz_yonetici.select_from_list(
182
182
  message = "Doğrudan oynatmak için bir bağlantı seçin:",
183
- choices = [{"name": self.suanki_eklenti.name, "value": link} for link in baglantilar]
183
+ choices = [{"name": value["name"], "value": key} for key, value in self.suanki_eklenti._data.items()]
184
184
  )
185
185
  if secilen_link:
186
186
  await self.medya_oynat(secilen_link)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: KekikStream
3
- Version: 0.6.6
3
+ Version: 0.6.7
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
@@ -52,6 +52,7 @@ KekikStream/Managers/PluginManager.py
52
52
  KekikStream/Managers/UIManager.py
53
53
  KekikStream/Managers/__init__.py
54
54
  KekikStream/Plugins/DiziBox.py
55
+ KekikStream/Plugins/DiziYou.py
55
56
  KekikStream/Plugins/Dizilla.py
56
57
  KekikStream/Plugins/FilmMakinesi.py
57
58
  KekikStream/Plugins/FullHDFilmizlesene.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: KekikStream
3
- Version: 0.6.6
3
+ Version: 0.6.7
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 = "0.6.6",
9
+ version = "0.6.7",
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