KekikStream 2.5.7__tar.gz → 2.5.9__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 (207) hide show
  1. kekikstream-2.5.9/KekikStream/CLI/__pycache__/pypi_kontrol.cpython-314.pyc +0 -0
  2. kekikstream-2.5.9/KekikStream/Core/Extractor/__pycache__/ExtractorBase.cpython-314.pyc +0 -0
  3. kekikstream-2.5.9/KekikStream/Core/Extractor/__pycache__/ExtractorLoader.cpython-314.pyc +0 -0
  4. kekikstream-2.5.9/KekikStream/Core/Extractor/__pycache__/ExtractorManager.cpython-314.pyc +0 -0
  5. kekikstream-2.5.9/KekikStream/Core/Extractor/__pycache__/ExtractorModels.cpython-314.pyc +0 -0
  6. kekikstream-2.5.9/KekikStream/Core/Extractor/__pycache__/YTDLPCache.cpython-314.pyc +0 -0
  7. kekikstream-2.5.9/KekikStream/Core/Media/__pycache__/MediaHandler.cpython-314.pyc +0 -0
  8. kekikstream-2.5.9/KekikStream/Core/Media/__pycache__/MediaManager.cpython-314.pyc +0 -0
  9. kekikstream-2.5.9/KekikStream/Core/Plugin/__pycache__/PluginBase.cpython-314.pyc +0 -0
  10. kekikstream-2.5.9/KekikStream/Core/Plugin/__pycache__/PluginLoader.cpython-314.pyc +0 -0
  11. kekikstream-2.5.9/KekikStream/Core/Plugin/__pycache__/PluginManager.cpython-314.pyc +0 -0
  12. kekikstream-2.5.9/KekikStream/Core/Plugin/__pycache__/PluginModels.cpython-314.pyc +0 -0
  13. kekikstream-2.5.9/KekikStream/Core/UI/__pycache__/UIManager.cpython-314.pyc +0 -0
  14. kekikstream-2.5.9/KekikStream/Core/__pycache__/HTMLHelper.cpython-314.pyc +0 -0
  15. kekikstream-2.5.9/KekikStream/Core/__pycache__/__init__.cpython-314.pyc +0 -0
  16. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/HotStream.py +7 -2
  17. kekikstream-2.5.9/KekikStream/Extractors/StreamWish.py +80 -0
  18. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/VidHide.py +46 -44
  19. kekikstream-2.5.9/KekikStream/Extractors/VidStack.py +88 -0
  20. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/Abstream.cpython-314.pyc +0 -0
  21. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/CloseLoad.cpython-314.pyc +0 -0
  22. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/ContentX.cpython-314.pyc +0 -0
  23. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/DonilasPlay.cpython-314.pyc +0 -0
  24. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/DzenRu.cpython-314.pyc +0 -0
  25. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/ExPlay.cpython-314.pyc +0 -0
  26. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/Filemoon.cpython-314.pyc +0 -0
  27. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/HDMomPlayer.cpython-314.pyc +0 -0
  28. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/HDPlayerSystem.cpython-314.pyc +0 -0
  29. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/HotStream.cpython-314.pyc +0 -0
  30. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/JFVid.cpython-314.pyc +0 -0
  31. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/JetTv.cpython-314.pyc +0 -0
  32. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/JetV.cpython-314.pyc +0 -0
  33. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/LuciferPlays.cpython-314.pyc +0 -0
  34. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/MailRu.cpython-314.pyc +0 -0
  35. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/MixPlayHD.cpython-314.pyc +0 -0
  36. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/MixTiger.cpython-314.pyc +0 -0
  37. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/MolyStream.cpython-314.pyc +0 -0
  38. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/Odnoklassniki.cpython-314.pyc +0 -0
  39. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/PeaceMakerst.cpython-314.pyc +0 -0
  40. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/PixelDrain.cpython-314.pyc +0 -0
  41. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/PlayerFilmIzle.cpython-314.pyc +0 -0
  42. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/RapidVid.cpython-314.pyc +0 -0
  43. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/SetPlay.cpython-314.pyc +0 -0
  44. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/SetPrime.cpython-314.pyc +0 -0
  45. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/SibNet.cpython-314.pyc +0 -0
  46. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/Sobreatsesuyp.cpython-314.pyc +0 -0
  47. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/StreamWish.cpython-314.pyc +0 -0
  48. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/TRsTX.cpython-314.pyc +0 -0
  49. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/TauVideo.cpython-314.pyc +0 -0
  50. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/TurboImgz.cpython-314.pyc +0 -0
  51. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/TurkeyPlayer.cpython-314.pyc +0 -0
  52. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/VCTPlay.cpython-314.pyc +0 -0
  53. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/Veev.cpython-314.pyc +0 -0
  54. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/VidBiz.cpython-314.pyc +0 -0
  55. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/VidHide.cpython-314.pyc +0 -0
  56. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/VidMoly.cpython-314.pyc +0 -0
  57. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/VidMoxy.cpython-314.pyc +0 -0
  58. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/VidPapi.cpython-314.pyc +0 -0
  59. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/VidStack.cpython-314.pyc +0 -0
  60. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/VideoSeyred.cpython-314.pyc +0 -0
  61. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/Videostr.cpython-314.pyc +0 -0
  62. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/Vidoza.cpython-314.pyc +0 -0
  63. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/Vtbe.cpython-314.pyc +0 -0
  64. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/YTDLP.cpython-314.pyc +0 -0
  65. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/YildizKisaFilm.cpython-314.pyc +0 -0
  66. kekikstream-2.5.9/KekikStream/Extractors/__pycache__/Zeus.cpython-314.pyc +0 -0
  67. kekikstream-2.5.9/KekikStream/Plugins/DDizi.py +176 -0
  68. kekikstream-2.5.9/KekikStream/Plugins/RealFilmIzle.py +94 -0
  69. kekikstream-2.5.9/KekikStream/Plugins/ShowFlix.py +211 -0
  70. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/BelgeselX.cpython-314.pyc +0 -0
  71. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/DDizi.cpython-314.pyc +0 -0
  72. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/DiziBox.cpython-314.pyc +0 -0
  73. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/DiziMom.cpython-314.pyc +0 -0
  74. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/DiziPal.cpython-314.pyc +0 -0
  75. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/DiziYou.cpython-314.pyc +0 -0
  76. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/Dizilla.cpython-314.pyc +0 -0
  77. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/FilmBip.cpython-314.pyc +0 -0
  78. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/FilmEkseni.cpython-314.pyc +0 -0
  79. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/FilmMakinesi.cpython-314.pyc +0 -0
  80. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/FilmModu.cpython-314.pyc +0 -0
  81. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/Filmatek.cpython-314.pyc +0 -0
  82. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/FilmciBaba.cpython-314.pyc +0 -0
  83. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/FullHDFilmizlesene.cpython-314.pyc +0 -0
  84. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/HDFilm.cpython-314.pyc +0 -0
  85. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/HDFilmCehennemi.cpython-314.pyc +0 -0
  86. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/JetFilmizle.cpython-314.pyc +0 -0
  87. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/KultFilmler.cpython-314.pyc +0 -0
  88. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/RealFilmIzle.cpython-314.pyc +0 -0
  89. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/RecTV.cpython-314.pyc +0 -0
  90. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/RoketDizi.cpython-314.pyc +0 -0
  91. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/SelcukFlix.cpython-314.pyc +0 -0
  92. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/SetFilmIzle.cpython-314.pyc +0 -0
  93. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/SezonlukDizi.cpython-314.pyc +0 -0
  94. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/ShowFlix.cpython-314.pyc +0 -0
  95. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/SineWix.cpython-314.pyc +0 -0
  96. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/Sinefy.cpython-314.pyc +0 -0
  97. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/SinemaCX.cpython-314.pyc +0 -0
  98. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/Sinezy.cpython-314.pyc +0 -0
  99. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/SuperFilmIzle.cpython-314.pyc +0 -0
  100. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/UgurFilm.cpython-314.pyc +0 -0
  101. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/Watch32.cpython-314.pyc +0 -0
  102. kekikstream-2.5.9/KekikStream/Plugins/__pycache__/YabanciDizi.cpython-314.pyc +0 -0
  103. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream.egg-info/PKG-INFO +1 -1
  104. kekikstream-2.5.9/KekikStream.egg-info/SOURCES.txt +204 -0
  105. {kekikstream-2.5.7 → kekikstream-2.5.9}/PKG-INFO +1 -1
  106. {kekikstream-2.5.7 → kekikstream-2.5.9}/setup.py +1 -1
  107. kekikstream-2.5.7/KekikStream.egg-info/SOURCES.txt +0 -104
  108. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/CLI/__init__.py +0 -0
  109. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/CLI/pypi_kontrol.py +0 -0
  110. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/Extractor/ExtractorBase.py +0 -0
  111. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/Extractor/ExtractorLoader.py +0 -0
  112. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/Extractor/ExtractorManager.py +0 -0
  113. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/Extractor/ExtractorModels.py +0 -0
  114. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/Extractor/YTDLPCache.py +0 -0
  115. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/HTMLHelper.py +0 -0
  116. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/Media/MediaHandler.py +0 -0
  117. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/Media/MediaManager.py +0 -0
  118. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/Plugin/PluginBase.py +0 -0
  119. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/Plugin/PluginLoader.py +0 -0
  120. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/Plugin/PluginManager.py +0 -0
  121. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/Plugin/PluginModels.py +0 -0
  122. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/UI/UIManager.py +0 -0
  123. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Core/__init__.py +0 -0
  124. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/Abstream.py +0 -0
  125. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/CloseLoad.py +0 -0
  126. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/ContentX.py +0 -0
  127. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/DonilasPlay.py +0 -0
  128. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/DzenRu.py +0 -0
  129. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/ExPlay.py +0 -0
  130. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/Filemoon.py +0 -0
  131. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/HDMomPlayer.py +0 -0
  132. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/HDPlayerSystem.py +0 -0
  133. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/JFVid.py +0 -0
  134. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/JetTv.py +0 -0
  135. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/JetV.py +0 -0
  136. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/LuciferPlays.py +0 -0
  137. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/MailRu.py +0 -0
  138. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/MixPlayHD.py +0 -0
  139. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/MixTiger.py +0 -0
  140. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/MolyStream.py +0 -0
  141. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/Odnoklassniki.py +0 -0
  142. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/PeaceMakerst.py +0 -0
  143. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/PixelDrain.py +0 -0
  144. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/PlayerFilmIzle.py +0 -0
  145. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/RapidVid.py +0 -0
  146. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/SetPlay.py +0 -0
  147. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/SetPrime.py +0 -0
  148. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/SibNet.py +0 -0
  149. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/Sobreatsesuyp.py +0 -0
  150. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/TRsTX.py +0 -0
  151. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/TauVideo.py +0 -0
  152. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/TurboImgz.py +0 -0
  153. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/TurkeyPlayer.py +0 -0
  154. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/VCTPlay.py +0 -0
  155. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/Veev.py +0 -0
  156. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/VidBiz.py +0 -0
  157. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/VidMoly.py +0 -0
  158. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/VidMoxy.py +0 -0
  159. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/VidPapi.py +0 -0
  160. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/VideoSeyred.py +0 -0
  161. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/Videostr.py +0 -0
  162. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/Vidoza.py +0 -0
  163. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/Vtbe.py +0 -0
  164. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/YTDLP.py +0 -0
  165. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/YildizKisaFilm.py +0 -0
  166. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Extractors/Zeus.py +0 -0
  167. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/BelgeselX.py +0 -0
  168. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/DiziBox.py +0 -0
  169. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/DiziMom.py +0 -0
  170. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/DiziPal.py +0 -0
  171. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/DiziYou.py +0 -0
  172. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/Dizilla.py +0 -0
  173. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/FilmBip.py +0 -0
  174. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/FilmEkseni.py +0 -0
  175. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/FilmMakinesi.py +0 -0
  176. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/FilmModu.py +0 -0
  177. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/Filmatek.py +0 -0
  178. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/FilmciBaba.py +0 -0
  179. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/FullHDFilmizlesene.py +0 -0
  180. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/HDFilm.py +0 -0
  181. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/HDFilmCehennemi.py +0 -0
  182. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/JetFilmizle.py +0 -0
  183. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/KultFilmler.py +0 -0
  184. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/RecTV.py +0 -0
  185. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/RoketDizi.py +0 -0
  186. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/SelcukFlix.py +0 -0
  187. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/SetFilmIzle.py +0 -0
  188. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/SezonlukDizi.py +0 -0
  189. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/SineWix.py +0 -0
  190. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/Sinefy.py +0 -0
  191. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/SinemaCX.py +0 -0
  192. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/Sinezy.py +0 -0
  193. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/SuperFilmIzle.py +0 -0
  194. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/UgurFilm.py +0 -0
  195. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/Watch32.py +0 -0
  196. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/Plugins/YabanciDizi.py +0 -0
  197. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/__init__.py +0 -0
  198. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/__main__.py +0 -0
  199. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream/requirements.txt +0 -0
  200. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream.egg-info/dependency_links.txt +0 -0
  201. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream.egg-info/entry_points.txt +0 -0
  202. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream.egg-info/requires.txt +0 -0
  203. {kekikstream-2.5.7 → kekikstream-2.5.9}/KekikStream.egg-info/top_level.txt +0 -0
  204. {kekikstream-2.5.7 → kekikstream-2.5.9}/LICENSE +0 -0
  205. {kekikstream-2.5.7 → kekikstream-2.5.9}/MANIFEST.in +0 -0
  206. {kekikstream-2.5.7 → kekikstream-2.5.9}/README.md +0 -0
  207. {kekikstream-2.5.7 → kekikstream-2.5.9}/setup.cfg +0 -0
@@ -1,7 +1,7 @@
1
1
  # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
2
 
3
3
  from KekikStream.Core import ExtractorBase, ExtractResult, HTMLHelper
4
- from Kekik.Sifreleme import AESManager
4
+ from Kekik.Sifreleme import AESManager
5
5
  import contextlib
6
6
 
7
7
  class HotStream(ExtractorBase):
@@ -24,4 +24,9 @@ class HotStream(ExtractorBase):
24
24
  if not m3u8_url:
25
25
  raise ValueError(f"HotStream: Video linki bulunamadı. {url}")
26
26
 
27
- return ExtractResult(name=self.name, url=self.fix_url(m3u8_url), referer=url)
27
+ return ExtractResult(
28
+ name = self.name,
29
+ url = self.fix_url(m3u8_url),
30
+ referer = url,
31
+ user_agent = self.httpx.headers.get("User-Agent")
32
+ )
@@ -0,0 +1,80 @@
1
+ # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
+
3
+ from KekikStream.Core import ExtractorBase, ExtractResult, HTMLHelper
4
+ from Kekik.Sifreleme import Packer
5
+ from contextlib import suppress
6
+
7
+ class StreamWish(ExtractorBase):
8
+ name = "StreamWish"
9
+ main_url = "https://streamwish.to"
10
+
11
+ supported_domains = [
12
+ "streamwish.to", "streamwish.site", "streamwish.xyz", "streamwish.com",
13
+ "embedwish.com", "mwish.pro", "dwish.pro", "wishembed.pro", "wishembed.com",
14
+ "kswplayer.info", "wishfast.top", "sfastwish.com", "strwish.xyz", "strwish.com",
15
+ "flaswish.com", "awish.pro", "obeywish.com", "jodwish.com", "swhoi.com",
16
+ "multimovies.cloud", "uqloads.xyz", "doodporn.xyz", "cdnwish.com", "asnwish.com",
17
+ "nekowish.my.id", "neko-stream.click", "swdyu.com", "wishonly.site", "playerwish.com",
18
+ "streamhls.to", "hlswish.com"
19
+ ]
20
+
21
+ def can_handle_url(self, url: str) -> bool:
22
+ return any(domain in url for domain in self.supported_domains)
23
+
24
+ def resolve_embed_url(self, url: str) -> str:
25
+ # Kotlin: /f/ -> /, /e/ -> /
26
+ if "/f/" in url:
27
+ return url.replace("/f/", "/")
28
+ if "/e/" in url:
29
+ return url.replace("/e/", "/")
30
+ return url
31
+
32
+ async def extract(self, url: str, referer: str = None) -> ExtractResult:
33
+ base_url = self.get_base_url(url)
34
+ embed_url = self.resolve_embed_url(url)
35
+ istek = await self.httpx.get(
36
+ url = embed_url,
37
+ headers = {
38
+ "Accept" : "*/*",
39
+ "Connection" : "keep-alive",
40
+ "Referer" : f"{base_url}/",
41
+ "Origin" : f"{base_url}/",
42
+ "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
43
+ },
44
+ follow_redirects=True
45
+ )
46
+ text = istek.text
47
+
48
+ unpacked = ""
49
+ # Eval script bul
50
+ if eval_match := HTMLHelper(text).regex_first(r'(eval\s*\(\s*function[\s\S]+?)<\/script>'):
51
+ with suppress(Exception):
52
+ unpacked = Packer.unpack(eval_match)
53
+
54
+ content = unpacked or text
55
+ sel = HTMLHelper(content)
56
+
57
+ # Regex: file:\s*"(.*?m3u8.*?)"
58
+ m3u8_url = sel.regex_first(r'file:\s*["\']([^"\']+\.m3u8[^"\']*)["\']')
59
+
60
+ if not m3u8_url:
61
+ # Fallback to sources: Kotlin mantığı
62
+ m3u8_url = sel.regex_first(r'sources:\s*\[\s*{\s*file:\s*["\']([^"\']+)["\']')
63
+
64
+ if not m3u8_url:
65
+ # p,a,c,k,e,d içinde olabilir
66
+ m3u8_url = sel.regex_first(r'["\'](https?://[^"\']+\.m3u8[^"\']*)["\']')
67
+
68
+ if not m3u8_url:
69
+ # t.r.u.e pattern fallback
70
+ m3u8_url = sel.regex_first(r'file\s*:\s*["\']([^"\']+)["\']')
71
+
72
+ if not m3u8_url:
73
+ raise ValueError(f"StreamWish: m3u8 bulunamadı. {url}")
74
+
75
+ return ExtractResult(
76
+ name = self.name,
77
+ url = self.fix_url(m3u8_url),
78
+ referer = f"{base_url}/",
79
+ user_agent = self.httpx.headers.get("User-Agent", "")
80
+ )
@@ -2,6 +2,7 @@
2
2
 
3
3
  from KekikStream.Core import ExtractorBase, ExtractResult, Subtitle, HTMLHelper
4
4
  from Kekik.Sifreleme import Packer
5
+ from contextlib import suppress
5
6
  import re
6
7
 
7
8
  class VidHide(ExtractorBase):
@@ -17,7 +18,7 @@ class VidHide(ExtractorBase):
17
18
  "kinoger.be",
18
19
  "smoothpre.com",
19
20
  "dhtpre.com",
20
- "peytonepre.com"
21
+ "peytonepre.com",
21
22
  ]
22
23
 
23
24
  def can_handle_url(self, url: str) -> bool:
@@ -37,69 +38,70 @@ class VidHide(ExtractorBase):
37
38
 
38
39
  async def extract(self, url: str, referer: str = None) -> ExtractResult:
39
40
  base_url = self.get_base_url(url)
40
- self.httpx.headers.update({
41
- "Referer" : referer or base_url,
42
- "Origin" : base_url,
43
- })
44
-
41
+ name = "EarnVids" if any(x in base_url for x in ["smoothpre.com", "dhtpre.com", "peytonepre.com"]) else self.name
42
+
43
+ # Kotlin Headers
44
+ headers = {
45
+ "Sec-Fetch-Dest" : "empty",
46
+ "Sec-Fetch-Mode" : "cors",
47
+ "Sec-Fetch-Site" : "cross-site",
48
+ "Origin" : f"{base_url}/",
49
+ "Referer" : referer or f"{base_url}/",
50
+ }
51
+
45
52
  embed_url = self.get_embed_url(url)
46
- istek = await self.httpx.get(embed_url, follow_redirects=True)
53
+ istek = await self.httpx.get(embed_url, headers=headers, follow_redirects=True)
47
54
  text = istek.text
48
55
 
49
56
  # Silinmiş dosya kontrolü
50
- if "File is no longer available" in text or "File Not Found" in text:
51
- raise ValueError(f"VidHide: Video silinmiş. {url}")
57
+ if any(x in text for x in ["File is no longer available", "File Not Found", "Video silinmiş"]):
58
+ raise ValueError(f"{name}: Video silinmiş. {url}")
52
59
 
53
60
  # JS Redirect Kontrolü (OneUpload vb.)
54
61
  if js_redirect := HTMLHelper(text).regex_first(r"window\.location\.replace\(['\"]([^'\"]+)['\"]\)") or \
55
62
  HTMLHelper(text).regex_first(r"window\.location\.href\s*=\s*['\"]([^'\"]+)['\"]"):
56
- # Redirect url'i al
57
63
  target_url = js_redirect
58
- # Bazen path relative olabilir ama genelde full url
59
64
  if not target_url.startswith("http"):
60
- # urljoin gerekebilir ama şimdilik doğrudan deneyelim veya fix_url
61
- target_url = self.fix_url(target_url) # fix_url base'e göre düzeltebilir mi? ExtractorBase.fix_url genelde şema ekler.
62
- pass
65
+ target_url = self.fix_url(target_url)
63
66
 
64
- # Yeniden istek at
65
67
  istek = await self.httpx.get(target_url, headers={"Referer": embed_url}, follow_redirects=True)
66
68
  text = istek.text
67
69
 
68
70
  sel = HTMLHelper(text)
69
71
 
70
72
  unpacked = ""
71
- # Eval script bul (regex ile daha sağlam)
73
+ # Eval script bul
72
74
  if eval_match := sel.regex_first(r'(eval\s*\(\s*function[\s\S]+?)<\/script>'):
73
- try:
75
+ with suppress(Exception):
74
76
  unpacked = Packer.unpack(eval_match)
75
77
  if "var links" in unpacked:
76
78
  unpacked = unpacked.split("var links")[1]
77
- except:
78
- pass
79
79
 
80
80
  content = unpacked or text
81
-
82
- # Regex: Kotlin mantığı (: "url")
83
- # Ayrıca sources: [...] mantığını da ekle
84
- m3u8_url = HTMLHelper(content).regex_first(r'sources:\s*\[\s*\{\s*file:\s*"([^"]+)"')
85
-
86
- if not m3u8_url:
87
- # Genel arama (hls:, file: vb.)
88
- # Kotlin Regex: :\s*"(.*?m3u8.*?)"
89
- match = HTMLHelper(content).regex_first(r':\s*["\']([^"\']+\.m3u8[^"\']*)["\']')
90
- if match:
91
- m3u8_url = match
92
-
93
- if not m3u8_url:
94
- # Son şans: herhangi bir m3u8 linki
95
- m3u8_url = HTMLHelper(content).regex_first(r'["\']([^"\']+\.m3u8[^"\']*)["\']')
96
-
97
- if not m3u8_url:
98
- raise ValueError(f"VidHide: Video URL bulunamadı. {url}")
99
-
100
- return ExtractResult(
101
- name = self.name,
102
- url = self.fix_url(m3u8_url),
103
- referer = f"{base_url}/",
104
- user_agent = self.httpx.headers.get("User-Agent", "")
105
- )
81
+
82
+ # Kotlin Exact Regex: :\s*"(.*?m3u8.*?)"
83
+ m3u8_matches = re.findall(r':\s*["\']([^"\']+\.m3u8[^"\']*)["\']', content)
84
+
85
+ results = []
86
+ for m3u8_url in m3u8_matches:
87
+ results.append(ExtractResult(
88
+ name = name,
89
+ url = self.fix_url(m3u8_url),
90
+ referer = f"{base_url}/",
91
+ user_agent = self.httpx.headers.get("User-Agent", "")
92
+ ))
93
+
94
+ if not results:
95
+ # Fallback for non-m3u8 or different patterns
96
+ if m3u8_url := sel.regex_first(r'sources:\s*\[\s*\{\s*file:\s*"([^"]+)"'):
97
+ results.append(ExtractResult(
98
+ name = name,
99
+ url = self.fix_url(m3u8_url),
100
+ referer = f"{base_url}/",
101
+ user_agent = self.httpx.headers.get("User-Agent", "")
102
+ ))
103
+
104
+ if not results:
105
+ raise ValueError(f"{name}: Video URL bulunamadı. {url}")
106
+
107
+ return results[0] if len(results) == 1 else results
@@ -0,0 +1,88 @@
1
+ # Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
2
+
3
+ from KekikStream.Core import ExtractorBase, ExtractResult, Subtitle
4
+ from Crypto.Cipher import AES
5
+ from Crypto.Util import Padding
6
+ import re
7
+
8
+ class VidStack(ExtractorBase):
9
+ name = "VidStack"
10
+ main_url = "https://vidstack.io"
11
+ requires_referer = True
12
+
13
+ supported_domains = [
14
+ "vidstack.io", "server1.uns.bio", "upns.one"
15
+ ]
16
+
17
+ def can_handle_url(self, url: str) -> bool:
18
+ return any(domain in url for domain in self.supported_domains)
19
+
20
+ def decrypt_aes(self, input_hex: str, key: str, iv: str) -> str:
21
+ try:
22
+ cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv.encode('utf-8'))
23
+ raw_data = bytes.fromhex(input_hex)
24
+ decrypted = cipher.decrypt(raw_data)
25
+ unpadded = Padding.unpad(decrypted, AES.block_size)
26
+ return unpadded.decode('utf-8')
27
+ except Exception as e:
28
+ # print(f"DEBUG VidStack: {iv} -> {e}") # Debugging
29
+ return None
30
+
31
+ async def extract(self, url: str, referer: str = None) -> ExtractResult | list[ExtractResult]:
32
+ headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:134.0) Gecko/20100101 Firefox/134.0"}
33
+
34
+ # Hash ve Base URL çıkarma
35
+ hash_val = url.split("#")[-1].split("/")[-1]
36
+ base_url = self.get_base_url(url)
37
+
38
+ # API İsteği
39
+ api_url = f"{base_url}/api/v1/video?id={hash_val}"
40
+ istek = await self.httpx.get(api_url, headers=headers)
41
+
42
+ # Bazen yanıt tırnak içinde gelebilir, temizleyelim
43
+ encoded_data = istek.text.strip().strip('"')
44
+
45
+ # AES Çözme
46
+ key = "kiemtienmua911ca"
47
+ ivs = ["1234567890oiuytr", "0123456789abcdef"]
48
+
49
+ decrypted_text = None
50
+ for iv in ivs:
51
+ decrypted_text = self.decrypt_aes(encoded_data, key, iv)
52
+ if decrypted_text and '"source":' in decrypted_text:
53
+ break
54
+
55
+ if not decrypted_text:
56
+ # Hata mesajını daha detaylı verelim (debug için tırnaklanmış hali)
57
+ raise ValueError(f"VidStack: AES çözme başarısız. {url} | Response: {istek.text[:50]}...")
58
+
59
+ # m3u8 ve Alt yazı çıkarma
60
+ # Kotlin'de "source":"(.*?)" regex'i kullanılıyor
61
+ m3u8_url = re.search(r'["\']source["\']\s*:\s*["\']([^"\']+)["\']', decrypted_text)
62
+ if m3u8_url:
63
+ m3u8_url = m3u8_url.group(1).replace("\\/", "/")
64
+ else:
65
+ raise ValueError(f"VidStack: m3u8 bulunamadı. {url}")
66
+
67
+ subtitles = []
68
+ # Kotlin: "subtitle":\{(.*?)\}
69
+ subtitle_section = re.search(r'["\']subtitle["\']\s*:\s*\{(.*?)\}', decrypted_text)
70
+ if subtitle_section:
71
+ section = subtitle_section.group(1)
72
+ # Regex: "([^"]+)":\s*"([^"]+)"
73
+ matches = re.finditer(r'["\']([^"\']+)["\']\s*:\s*["\']([^"\']+)["\']', section)
74
+ for match in matches:
75
+ lang = match.group(1)
76
+ raw_path = match.group(2).split("#")[0]
77
+ if raw_path:
78
+ path = raw_path.replace("\\/", "/")
79
+ sub_url = f"{self.main_url}{path}"
80
+ subtitles.append(Subtitle(name=lang, url=self.fix_url(sub_url)))
81
+
82
+ return ExtractResult(
83
+ name = self.name,
84
+ url = self.fix_url(m3u8_url),
85
+ referer = url,
86
+ user_agent = headers["User-Agent"],
87
+ subtitles = subtitles
88
+ )