KekikStream 2.3.5__py3-none-any.whl → 2.3.7__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.
- KekikStream/Core/Plugin/PluginBase.py +10 -2
- KekikStream/Core/Plugin/PluginLoader.py +3 -2
- KekikStream/Core/Plugin/PluginManager.py +2 -2
- KekikStream/Plugins/DiziWatch.py +1 -6
- {kekikstream-2.3.5.dist-info → kekikstream-2.3.7.dist-info}/METADATA +1 -1
- {kekikstream-2.3.5.dist-info → kekikstream-2.3.7.dist-info}/RECORD +10 -10
- {kekikstream-2.3.5.dist-info → kekikstream-2.3.7.dist-info}/WHEEL +0 -0
- {kekikstream-2.3.5.dist-info → kekikstream-2.3.7.dist-info}/entry_points.txt +0 -0
- {kekikstream-2.3.5.dist-info → kekikstream-2.3.7.dist-info}/licenses/LICENSE +0 -0
- {kekikstream-2.3.5.dist-info → kekikstream-2.3.7.dist-info}/top_level.txt +0 -0
|
@@ -25,14 +25,22 @@ class PluginBase(ABC):
|
|
|
25
25
|
self.main_page = {url.replace(self.main_url, new_url): category for url, category in self.main_page.items()}
|
|
26
26
|
self.main_url = new_url
|
|
27
27
|
|
|
28
|
-
def __init__(self):
|
|
28
|
+
def __init__(self, proxy: str | dict | None = None):
|
|
29
29
|
# cloudscraper - for bypassing Cloudflare
|
|
30
30
|
self.cloudscraper = CloudScraper()
|
|
31
|
+
if proxy:
|
|
32
|
+
self.cloudscraper.proxies = proxy if isinstance(proxy, dict) else {"http": proxy, "https": proxy}
|
|
33
|
+
|
|
34
|
+
# Convert dict proxy to string for httpx if necessary
|
|
35
|
+
httpx_proxy = proxy
|
|
36
|
+
if isinstance(proxy, dict):
|
|
37
|
+
httpx_proxy = proxy.get("https") or proxy.get("http")
|
|
31
38
|
|
|
32
39
|
# httpx - lightweight and safe for most HTTP requests
|
|
33
40
|
self.httpx = AsyncClient(
|
|
34
41
|
timeout = 3,
|
|
35
|
-
follow_redirects = True
|
|
42
|
+
follow_redirects = True,
|
|
43
|
+
proxy = httpx_proxy
|
|
36
44
|
)
|
|
37
45
|
self.httpx.headers.update(self.cloudscraper.headers)
|
|
38
46
|
self.httpx.cookies.update(self.cloudscraper.cookies)
|
|
@@ -6,8 +6,9 @@ from pathlib import Path
|
|
|
6
6
|
import os, importlib.util, traceback
|
|
7
7
|
|
|
8
8
|
class PluginLoader:
|
|
9
|
-
def __init__(self, plugins_dir: str):
|
|
9
|
+
def __init__(self, plugins_dir: str, proxy: str | dict | None = None):
|
|
10
10
|
# Yerel ve global eklenti dizinlerini ayarla
|
|
11
|
+
self.proxy = proxy
|
|
11
12
|
self.local_plugins_dir = Path(plugins_dir).resolve()
|
|
12
13
|
self.global_plugins_dir = Path(__file__).parent.parent.parent / plugins_dir
|
|
13
14
|
|
|
@@ -70,7 +71,7 @@ class PluginLoader:
|
|
|
70
71
|
obj = getattr(module, attr)
|
|
71
72
|
if isinstance(obj, type) and issubclass(obj, PluginBase) and obj is not PluginBase:
|
|
72
73
|
# konsol.log(f"[yellow]Yüklenen sınıf\t\t: {module_name}.{obj.__name__} ({obj.__module__}.{obj.__name__})[/yellow]")
|
|
73
|
-
return obj()
|
|
74
|
+
return obj(proxy=self.proxy)
|
|
74
75
|
|
|
75
76
|
except Exception as hata:
|
|
76
77
|
konsol.print(f"[red][!] Eklenti yüklenirken hata oluştu: {module_name}\nHata: {hata}")
|
|
@@ -4,9 +4,9 @@ from .PluginLoader import PluginLoader
|
|
|
4
4
|
from .PluginBase import PluginBase
|
|
5
5
|
|
|
6
6
|
class PluginManager:
|
|
7
|
-
def __init__(self, plugin_dir="Plugins"):
|
|
7
|
+
def __init__(self, plugin_dir="Plugins", proxy: str | dict | None = None):
|
|
8
8
|
# Eklenti yükleyiciyi başlat ve tüm eklentileri yükle
|
|
9
|
-
self.plugin_loader = PluginLoader(plugin_dir)
|
|
9
|
+
self.plugin_loader = PluginLoader(plugin_dir, proxy=proxy)
|
|
10
10
|
self.plugins = self.plugin_loader.load_all()
|
|
11
11
|
|
|
12
12
|
def get_plugin_names(self):
|
KekikStream/Plugins/DiziWatch.py
CHANGED
|
@@ -27,13 +27,8 @@ class DiziWatch(PluginBase):
|
|
|
27
27
|
"1" : "Suç",
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
def __init__(self):
|
|
31
|
-
super().__init__()
|
|
32
|
-
self.c_key = None
|
|
33
|
-
self.c_value = None
|
|
34
|
-
|
|
35
30
|
async def _init_session(self):
|
|
36
|
-
if self
|
|
31
|
+
if getattr(self, "c_key", None) and getattr(self, "c_value", None):
|
|
37
32
|
return
|
|
38
33
|
|
|
39
34
|
# Fetch anime-arsivi to get CSRF tokens
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: KekikStream
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.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
|
|
@@ -12,9 +12,9 @@ KekikStream/Core/Extractor/ExtractorModels.py,sha256=Qj_gbIeGRewaZXNfYkTi4FFRRq6
|
|
|
12
12
|
KekikStream/Core/Extractor/YTDLPCache.py,sha256=sRg5kwFxkRXA_8iRwsV29E51g9qQJvg8dWUnzfr7EwA,984
|
|
13
13
|
KekikStream/Core/Media/MediaHandler.py,sha256=MEn3spPAThVloN3WcoCwWhpoyMA7tAZvcwYjmjJsX3U,7678
|
|
14
14
|
KekikStream/Core/Media/MediaManager.py,sha256=AaUq2D7JSJIphjoAj2fjLOJjswm7Qf5hjYCbBdrbnDU,438
|
|
15
|
-
KekikStream/Core/Plugin/PluginBase.py,sha256=
|
|
16
|
-
KekikStream/Core/Plugin/PluginLoader.py,sha256=
|
|
17
|
-
KekikStream/Core/Plugin/PluginManager.py,sha256=
|
|
15
|
+
KekikStream/Core/Plugin/PluginBase.py,sha256=DMuYf6fRZeRJWYh3UdGcV1FpmDjUnjO1pgIBMRqHjiY,6638
|
|
16
|
+
KekikStream/Core/Plugin/PluginLoader.py,sha256=6LE5id0571bB-gJZxaLfd973XcG6oaGeMhLVcYYY7kw,3768
|
|
17
|
+
KekikStream/Core/Plugin/PluginManager.py,sha256=6a0Q2mHtzIpx1ttdSTsVHg2HfLJIO0r_iHjK3Kui1Rw,939
|
|
18
18
|
KekikStream/Core/Plugin/PluginModels.py,sha256=Yvx-6Fkn8QCIcuqAkFbCP5EJcq3XBkK_P8S0tRNhS6E,2476
|
|
19
19
|
KekikStream/Core/UI/UIManager.py,sha256=T4V_kdTTWa-UDamgLSKa__dWJuzcvRK9NuwBlzU9Bzc,1693
|
|
20
20
|
KekikStream/Extractors/CloseLoad.py,sha256=qRsiW5SloxWgm6MNUd4DF4vC7aSeyJqD3_0vZoFp7Jc,3176
|
|
@@ -54,7 +54,7 @@ KekikStream/Extractors/YildizKisaFilm.py,sha256=R_JlrOVeMiDlXYcuTdItnKvidyx8_u3B
|
|
|
54
54
|
KekikStream/Plugins/BelgeselX.py,sha256=smoLjEJTdptjb7h4m6LhG7ZUmJQtIhYyi0CUFBsk970,8696
|
|
55
55
|
KekikStream/Plugins/DiziBox.py,sha256=KZGWhs6p2-hUTsd-fjz2fsmGEkanL4At2PI8qHAoDm4,10541
|
|
56
56
|
KekikStream/Plugins/DiziPal.py,sha256=CTCGlknBUQIzubhvjexQoqiT3sHni34lpxiTLTemCGo,10299
|
|
57
|
-
KekikStream/Plugins/DiziWatch.py,sha256=
|
|
57
|
+
KekikStream/Plugins/DiziWatch.py,sha256=Y5-tBK316WdJhc-OZsYiwjSdfjcdz-A78o_bDP4qu08,8847
|
|
58
58
|
KekikStream/Plugins/DiziYou.py,sha256=ZV80_XHv1nN0wRGgJEtnoJcgFX7S_iVSKFGiFlAqcGQ,11277
|
|
59
59
|
KekikStream/Plugins/Dizilla.py,sha256=apDLGe3Fd-13nNyhcV_TFQxqX4bOZZZxEEGLonKQzS4,13803
|
|
60
60
|
KekikStream/Plugins/FilmBip.py,sha256=pzvleSRZCDHh2tx8Q0JwTFiH9TexNCRnFpr3MCiMb0E,6087
|
|
@@ -77,9 +77,9 @@ KekikStream/Plugins/Sinezy.py,sha256=fUj-3WaJMEsKZRnDpHFPxl5Eq2RPLroY80DcftLqvjM
|
|
|
77
77
|
KekikStream/Plugins/SuperFilmGeldi.py,sha256=StW0ue4qDj8p7CiWy19Lfr2aWtfYvslPExZJuR-3xiY,6348
|
|
78
78
|
KekikStream/Plugins/UgurFilm.py,sha256=H6AA2iTaM0fn6uN8_Dfvr-OqUtM9gDdkg0BKIcZEj7U,4930
|
|
79
79
|
KekikStream/Plugins/YabanciDizi.py,sha256=r3jusGf1Ufr0O1O04qQLxcxk3raCI3EFs4Z2Jwva2-s,11444
|
|
80
|
-
kekikstream-2.3.
|
|
81
|
-
kekikstream-2.3.
|
|
82
|
-
kekikstream-2.3.
|
|
83
|
-
kekikstream-2.3.
|
|
84
|
-
kekikstream-2.3.
|
|
85
|
-
kekikstream-2.3.
|
|
80
|
+
kekikstream-2.3.7.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
81
|
+
kekikstream-2.3.7.dist-info/METADATA,sha256=725PgUwp-rl5ONFCRfex-qsmSzYu85DOFTqCvvzkz5U,10761
|
|
82
|
+
kekikstream-2.3.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
83
|
+
kekikstream-2.3.7.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
|
|
84
|
+
kekikstream-2.3.7.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
|
|
85
|
+
kekikstream-2.3.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|