KekikStream 1.0.0__tar.gz → 1.0.2__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/Media/MediaHandler.py +6 -2
  2. kekikstream-1.0.2/KekikStream/Extractors/MolyStream.py +18 -0
  3. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Plugins/DiziBox.py +6 -2
  4. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Plugins/Dizilla.py +1 -1
  5. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Plugins/RecTV.py +3 -0
  6. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Plugins/SezonlukDizi.py +2 -2
  7. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/__init__.py +4 -0
  8. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream.egg-info/PKG-INFO +1 -1
  9. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream.egg-info/SOURCES.txt +1 -0
  10. {kekikstream-1.0.0 → kekikstream-1.0.2}/PKG-INFO +1 -1
  11. {kekikstream-1.0.0 → kekikstream-1.0.2}/setup.py +1 -1
  12. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/CLI/__init__.py +0 -0
  13. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/CLI/pypi_kontrol.py +0 -0
  14. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/Extractor/ExtractorBase.py +0 -0
  15. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/Extractor/ExtractorLoader.py +0 -0
  16. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/Extractor/ExtractorManager.py +0 -0
  17. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/Extractor/ExtractorModels.py +0 -0
  18. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/Media/MediaManager.py +0 -0
  19. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/Plugin/PluginBase.py +0 -0
  20. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/Plugin/PluginLoader.py +0 -0
  21. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/Plugin/PluginManager.py +0 -0
  22. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/Plugin/PluginModels.py +0 -0
  23. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/UI/UIManager.py +0 -0
  24. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Core/__init__.py +0 -0
  25. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/CloseLoad.py +0 -0
  26. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/ContentX.py +0 -0
  27. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/FourCX.py +0 -0
  28. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/FourPichive.py +0 -0
  29. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/FourPlayRu.py +0 -0
  30. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/HDStreamAble.py +0 -0
  31. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/Hotlinger.py +0 -0
  32. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/MailRu.py +0 -0
  33. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/MixPlayHD.py +0 -0
  34. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/Odnoklassniki.py +0 -0
  35. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/OkRuHTTP.py +0 -0
  36. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/OkRuSSL.py +0 -0
  37. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/PeaceMakerst.py +0 -0
  38. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/Pichive.py +0 -0
  39. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/PixelDrain.py +0 -0
  40. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/PlayRu.py +0 -0
  41. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/RapidVid.py +0 -0
  42. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/SibNet.py +0 -0
  43. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/Sobreatsesuyp.py +0 -0
  44. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/TRsTX.py +0 -0
  45. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/TauVideo.py +0 -0
  46. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/TurboImgz.py +0 -0
  47. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/VidMoly.py +0 -0
  48. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/VidMoxy.py +0 -0
  49. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Extractors/VideoSeyred.py +0 -0
  50. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Plugins/DiziYou.py +0 -0
  51. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Plugins/FilmMakinesi.py +0 -0
  52. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Plugins/FullHDFilmizlesene.py +0 -0
  53. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Plugins/JetFilmizle.py +0 -0
  54. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Plugins/Shorten.py +0 -0
  55. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Plugins/SineWix.py +0 -0
  56. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/Plugins/UgurFilm.py +0 -0
  57. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/__main__.py +0 -0
  58. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream/requirements.txt +0 -0
  59. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream.egg-info/dependency_links.txt +0 -0
  60. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream.egg-info/entry_points.txt +0 -0
  61. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream.egg-info/requires.txt +0 -0
  62. {kekikstream-1.0.0 → kekikstream-1.0.2}/KekikStream.egg-info/top_level.txt +0 -0
  63. {kekikstream-1.0.0 → kekikstream-1.0.2}/LICENSE +0 -0
  64. {kekikstream-1.0.0 → kekikstream-1.0.2}/MANIFEST.in +0 -0
  65. {kekikstream-1.0.0 → kekikstream-1.0.2}/README.md +0 -0
  66. {kekikstream-1.0.0 → kekikstream-1.0.2}/setup.cfg +0 -0
@@ -18,8 +18,12 @@ class MediaHandler:
18
18
  if extract_data.referer:
19
19
  self.headers.update({"Referer": extract_data.referer})
20
20
 
21
+ # ExtractResult'tan gelen headers'ları ekle
22
+ if extract_data.headers:
23
+ self.headers.update(extract_data.headers)
24
+
21
25
  # Google Drive gibi özel durumlar için yt-dlp kullan
22
- if self.headers.get("User-Agent") == "googleusercontent":
26
+ if self.headers.get("User-Agent") in ["googleusercontent", "Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0"]:
23
27
  return self.play_with_ytdlp(extract_data)
24
28
 
25
29
  # İşletim sistemine göre oynatıcı seç
@@ -90,7 +94,7 @@ class MediaHandler:
90
94
 
91
95
  def play_with_ytdlp(self, extract_data: ExtractResult):
92
96
  try:
93
- ytdlp_command = ["yt-dlp", "--quiet", "--no-warnings", "--downloader", "ffmpeg", "--hls-use-mpegts"]
97
+ ytdlp_command = ["yt-dlp", "--quiet", "--no-warnings"]
94
98
 
95
99
  for key, value in self.headers.items():
96
100
  ytdlp_command.extend(["--add-header", f"{key}: {value}"])
@@ -0,0 +1,18 @@
1
+ # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
+
3
+ from KekikStream.Core import ExtractorBase, ExtractResult
4
+ from Kekik.Sifreleme import AESManager
5
+ import re, json
6
+
7
+ class MolyStream(ExtractorBase):
8
+ name = "MolyStream"
9
+ main_url = "https://dbx.molystream.org"
10
+
11
+ async def extract(self, url, referer=None) -> ExtractResult:
12
+ return ExtractResult(
13
+ name = self.name,
14
+ url = url,
15
+ referer = url.replace("/sheila", ""),
16
+ headers = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0"},
17
+ subtitles = []
18
+ )
@@ -57,7 +57,7 @@ class DiziBox(PluginBase):
57
57
  episodes.append(Episode(
58
58
  season = ep_season,
59
59
  episode = ep_episode,
60
- title = ep_title.strip(),
60
+ title = "",
61
61
  url = ep_href,
62
62
  ))
63
63
 
@@ -89,8 +89,12 @@ class DiziBox(PluginBase):
89
89
 
90
90
  crypt_data = re.search(r"CryptoJS\.AES\.decrypt\(\"(.*)\",\"", istek.text)[1]
91
91
  crypt_pass = re.search(r"\",\"(.*)\"\);", istek.text)[1]
92
+ decode = CryptoJS.decrypt(crypt_pass, crypt_data)
92
93
 
93
- results.append(CryptoJS.decrypt(crypt_pass, crypt_data))
94
+ if video_match := re.search(r"file: '(.*)',", decode):
95
+ results.append(video_match[1])
96
+ else:
97
+ results.append(decode)
94
98
 
95
99
  elif "/player/moly/moly.php" in iframe_link:
96
100
  iframe_link = iframe_link.replace("moly.php?h=", "moly.php?wmode=opaque&h=")
@@ -77,7 +77,7 @@ class Dizilla(PluginBase):
77
77
  bolumler.append(Episode(
78
78
  season = sezon.get("seasonNumber"),
79
79
  episode = bolum.get("episodeNumber"),
80
- title = bolum.get("name"),
80
+ title = "",
81
81
  url = await self.url_base_degis(bolum.get("url"), self.main_url),
82
82
  ))
83
83
 
@@ -111,4 +111,7 @@ class RecTV(PluginBase):
111
111
  async def play(self, name: str, url: str, referer: str, subtitles: list[Subtitle]):
112
112
  extract_result = ExtractResult(name=name, url=url, referer=referer, subtitles=subtitles)
113
113
  self.media_handler.title = name
114
+ if self.name not in self.media_handler.title:
115
+ self.media_handler.title = f"{self.name} | {self.media_handler.title}"
116
+
114
117
  self.media_handler.play_media(extract_result)
@@ -82,7 +82,7 @@ class SezonlukDizi(PluginBase):
82
82
  links = []
83
83
  for dil, label in [("1", "AltYazı"), ("0", "Dublaj")]:
84
84
  dil_istek = await self.oturum.post(
85
- url = f"{self.main_url}/ajax/dataAlternatif2.asp",
85
+ url = f"{self.main_url}/ajax/dataAlternatif22.asp",
86
86
  headers = {"X-Requested-With": "XMLHttpRequest"},
87
87
  data = {"bid": bid, "dil": dil},
88
88
  )
@@ -95,7 +95,7 @@ class SezonlukDizi(PluginBase):
95
95
  if dil_json.get("status") == "success":
96
96
  for veri in dil_json.get("data", []):
97
97
  veri_response = await self.oturum.post(
98
- url = f"{self.main_url}/ajax/dataEmbed.asp",
98
+ url = f"{self.main_url}/ajax/dataEmbed22.asp",
99
99
  headers = {"X-Requested-With": "XMLHttpRequest"},
100
100
  data = {"id": veri.get("id")},
101
101
  )
@@ -127,6 +127,9 @@ class KekikStream:
127
127
  konsol.print(f"[yellow][!] {eklenti_adi} geçerli bir PluginBase değil, atlanıyor...[/yellow]")
128
128
  continue
129
129
 
130
+ if eklenti_adi in ["Shorten"]:
131
+ continue
132
+
130
133
  konsol.log(f"[yellow][~] {eklenti_adi:<19} aranıyor...[/]")
131
134
  try:
132
135
  sonuclar = await eklenti.search(sorgu)
@@ -208,6 +211,7 @@ class KekikStream:
208
211
  self.dizi = True
209
212
  await self.dizi_bolum_secimi(medya_bilgi)
210
213
  else:
214
+ self.dizi = False
211
215
  baglantilar = await self.suanki_eklenti.load_links(medya_bilgi.url)
212
216
  await self.baglanti_secenekleri_goster(baglantilar)
213
217
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: KekikStream
3
- Version: 1.0.0
3
+ Version: 1.0.2
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
@@ -34,6 +34,7 @@ KekikStream/Extractors/HDStreamAble.py
34
34
  KekikStream/Extractors/Hotlinger.py
35
35
  KekikStream/Extractors/MailRu.py
36
36
  KekikStream/Extractors/MixPlayHD.py
37
+ KekikStream/Extractors/MolyStream.py
37
38
  KekikStream/Extractors/Odnoklassniki.py
38
39
  KekikStream/Extractors/OkRuHTTP.py
39
40
  KekikStream/Extractors/OkRuSSL.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: KekikStream
3
- Version: 1.0.0
3
+ Version: 1.0.2
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.0.0",
9
+ version = "1.0.2",
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