KekikStream 1.2.7__py3-none-any.whl → 1.2.8__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/Extractor/ExtractorLoader.py +12 -11
- KekikStream/Core/Plugin/PluginLoader.py +7 -7
- {kekikstream-1.2.7.dist-info → kekikstream-1.2.8.dist-info}/METADATA +1 -1
- {kekikstream-1.2.7.dist-info → kekikstream-1.2.8.dist-info}/RECORD +8 -8
- {kekikstream-1.2.7.dist-info → kekikstream-1.2.8.dist-info}/LICENSE +0 -0
- {kekikstream-1.2.7.dist-info → kekikstream-1.2.8.dist-info}/WHEEL +0 -0
- {kekikstream-1.2.7.dist-info → kekikstream-1.2.8.dist-info}/entry_points.txt +0 -0
- {kekikstream-1.2.7.dist-info → kekikstream-1.2.8.dist-info}/top_level.txt +0 -0
@@ -3,7 +3,7 @@
|
|
3
3
|
from ...CLI import konsol, cikis_yap
|
4
4
|
from .ExtractorBase import ExtractorBase
|
5
5
|
from pathlib import Path
|
6
|
-
import os, importlib.util
|
6
|
+
import os, importlib.util, traceback
|
7
7
|
|
8
8
|
class ExtractorLoader:
|
9
9
|
def __init__(self, extractors_dir: str):
|
@@ -13,7 +13,7 @@ class ExtractorLoader:
|
|
13
13
|
|
14
14
|
# Dizin kontrolü
|
15
15
|
if not self.local_extractors_dir.exists() and not self.global_extractors_dir.exists():
|
16
|
-
konsol.log(f"[red][!] Extractor dizini bulunamadı: {self.global_extractors_dir}[/red]")
|
16
|
+
# konsol.log(f"[red][!] Extractor dizini bulunamadı: {self.global_extractors_dir}[/red]")
|
17
17
|
cikis_yap(False)
|
18
18
|
|
19
19
|
def load_all(self) -> list[ExtractorBase]:
|
@@ -21,16 +21,16 @@ class ExtractorLoader:
|
|
21
21
|
|
22
22
|
# Global çıkarıcıları yükle
|
23
23
|
if self.global_extractors_dir.exists():
|
24
|
-
konsol.log(f"[green][*] Global Extractor dizininden yükleniyor: {self.global_extractors_dir}[/green]")
|
24
|
+
# konsol.log(f"[green][*] Global Extractor dizininden yükleniyor: {self.global_extractors_dir}[/green]")
|
25
25
|
global_extractors = self._load_from_directory(self.global_extractors_dir)
|
26
|
-
konsol.log(f"[green]Global Extractor'lar: {[e.__name__ for e in global_extractors]}[/green]")
|
26
|
+
# konsol.log(f"[green]Global Extractor'lar: {[e.__name__ for e in global_extractors]}[/green]")
|
27
27
|
extractors.extend(global_extractors)
|
28
28
|
|
29
29
|
# Yerel çıkarıcıları yükle
|
30
30
|
if self.local_extractors_dir.exists():
|
31
|
-
konsol.log(f"[green][*] Yerel Extractor dizininden yükleniyor: {self.local_extractors_dir}[/green]")
|
31
|
+
# konsol.log(f"[green][*] Yerel Extractor dizininden yükleniyor: {self.local_extractors_dir}[/green]")
|
32
32
|
local_extractors = self._load_from_directory(self.local_extractors_dir)
|
33
|
-
konsol.log(f"[green]Yerel Extractor'lar: {[e.__name__ for e in local_extractors]}[/green]")
|
33
|
+
# konsol.log(f"[green]Yerel Extractor'lar: {[e.__name__ for e in local_extractors]}[/green]")
|
34
34
|
extractors.extend(local_extractors)
|
35
35
|
|
36
36
|
# Benzersizliği sağlama (modül adı + sınıf adı bazında)
|
@@ -42,7 +42,7 @@ class ExtractorLoader:
|
|
42
42
|
unique_extractors.append(ext)
|
43
43
|
seen_names.add(identifier)
|
44
44
|
|
45
|
-
konsol.log(f"[blue]Sonuç Extractor'lar: {[e.__name__ for e in unique_extractors]}[/blue]")
|
45
|
+
# konsol.log(f"[blue]Sonuç Extractor'lar: {[e.__name__ for e in unique_extractors]}[/blue]")
|
46
46
|
|
47
47
|
if not unique_extractors:
|
48
48
|
konsol.log("[yellow][!] Yüklenecek bir Extractor bulunamadı![/yellow]")
|
@@ -56,12 +56,12 @@ class ExtractorLoader:
|
|
56
56
|
for file in os.listdir(directory):
|
57
57
|
if file.endswith(".py") and not file.startswith("__"):
|
58
58
|
module_name = file[:-3] # .py uzantısını kaldır
|
59
|
-
konsol.log(f"[cyan]Okunan Dosya\t\t: {module_name}[/cyan]")
|
59
|
+
# konsol.log(f"[cyan]Okunan Dosya\t\t: {module_name}[/cyan]")
|
60
60
|
if extractor := self._load_extractor(directory, module_name):
|
61
|
-
konsol.log(f"[magenta]Extractor Yüklendi\t: {extractor.__name__}[/magenta]")
|
61
|
+
# konsol.log(f"[magenta]Extractor Yüklendi\t: {extractor.__name__}[/magenta]")
|
62
62
|
extractors.append(extractor)
|
63
63
|
|
64
|
-
konsol.log(f"[yellow]{directory} dizininden yüklenen Extractor'lar: {[e.__name__ for e in extractors]}[/yellow]")
|
64
|
+
# konsol.log(f"[yellow]{directory} dizininden yüklenen Extractor'lar: {[e.__name__ for e in extractors]}[/yellow]")
|
65
65
|
return extractors
|
66
66
|
|
67
67
|
def _load_extractor(self, directory: Path, module_name: str):
|
@@ -80,10 +80,11 @@ class ExtractorLoader:
|
|
80
80
|
for attr in dir(module):
|
81
81
|
obj = getattr(module, attr)
|
82
82
|
if obj.__module__ == module_name and isinstance(obj, type) and issubclass(obj, ExtractorBase) and obj is not ExtractorBase:
|
83
|
-
konsol.log(f"[green]Yüklenen sınıf\t\t: {module_name}.{obj.__name__} ({obj.__module__}.{obj.__name__})[/green]")
|
83
|
+
# konsol.log(f"[green]Yüklenen sınıf\t\t: {module_name}.{obj.__name__} ({obj.__module__}.{obj.__name__})[/green]")
|
84
84
|
return obj
|
85
85
|
|
86
86
|
except Exception as hata:
|
87
87
|
konsol.log(f"[red][!] Extractor yüklenirken hata oluştu: {module_name}\nHata: {hata}")
|
88
|
+
konsol.print(f"[dim]{traceback.format_exc()}[/dim]")
|
88
89
|
|
89
90
|
return None
|
@@ -13,7 +13,7 @@ class PluginLoader:
|
|
13
13
|
|
14
14
|
# Dizin kontrolü
|
15
15
|
if not self.local_plugins_dir.exists() and not self.global_plugins_dir.exists():
|
16
|
-
konsol.log(f"[red][!] Eklenti dizini bulunamadı: {plugins_dir}[/red]")
|
16
|
+
# konsol.log(f"[red][!] Eklenti dizini bulunamadı: {plugins_dir}[/red]")
|
17
17
|
cikis_yap(False)
|
18
18
|
|
19
19
|
def load_all(self) -> dict[str, PluginBase]:
|
@@ -21,12 +21,12 @@ class PluginLoader:
|
|
21
21
|
|
22
22
|
# Global eklentileri yükle
|
23
23
|
if self.global_plugins_dir.exists():
|
24
|
-
konsol.log(f"[green][*] Global Eklenti dizininden yükleniyor: {self.global_plugins_dir}[/green]")
|
24
|
+
# konsol.log(f"[green][*] Global Eklenti dizininden yükleniyor: {self.global_plugins_dir}[/green]")
|
25
25
|
plugins |= self._load_from_directory(self.global_plugins_dir)
|
26
26
|
|
27
27
|
# Yerel eklentileri yükle
|
28
28
|
if self.local_plugins_dir.exists():
|
29
|
-
konsol.log(f"[green][*] Yerel Eklenti dizininden yükleniyor: {self.local_plugins_dir}[/green]")
|
29
|
+
# konsol.log(f"[green][*] Yerel Eklenti dizininden yükleniyor: {self.local_plugins_dir}[/green]")
|
30
30
|
plugins |= self._load_from_directory(self.local_plugins_dir)
|
31
31
|
|
32
32
|
if not plugins:
|
@@ -41,12 +41,12 @@ class PluginLoader:
|
|
41
41
|
for file in os.listdir(directory):
|
42
42
|
if file.endswith(".py") and not file.startswith("__"):
|
43
43
|
module_name = file[:-3] # .py uzantısını kaldır
|
44
|
-
konsol.log(f"[cyan]Okunan Dosya\t\t: {module_name}[/cyan]")
|
44
|
+
# konsol.log(f"[cyan]Okunan Dosya\t\t: {module_name}[/cyan]")
|
45
45
|
if plugin := self._load_plugin(directory, module_name):
|
46
|
-
konsol.log(f"[magenta]Eklenti Yüklendi\t: {plugin.name}[/magenta]")
|
46
|
+
# konsol.log(f"[magenta]Eklenti Yüklendi\t: {plugin.name}[/magenta]")
|
47
47
|
plugins[module_name] = plugin
|
48
48
|
|
49
|
-
konsol.log(f"[yellow]{directory} dizininden yüklenen Eklentiler: {list(plugins.keys())}[/yellow]")
|
49
|
+
# konsol.log(f"[yellow]{directory} dizininden yüklenen Eklentiler: {list(plugins.keys())}[/yellow]")
|
50
50
|
return plugins
|
51
51
|
|
52
52
|
def _load_plugin(self, directory: Path, module_name: str):
|
@@ -65,7 +65,7 @@ class PluginLoader:
|
|
65
65
|
for attr in dir(module):
|
66
66
|
obj = getattr(module, attr)
|
67
67
|
if isinstance(obj, type) and issubclass(obj, PluginBase) and obj is not PluginBase:
|
68
|
-
konsol.log(f"[yellow]Yüklenen sınıf\t\t: {module_name}.{obj.__name__} ({obj.__module__}.{obj.__name__})[/yellow]")
|
68
|
+
# konsol.log(f"[yellow]Yüklenen sınıf\t\t: {module_name}.{obj.__name__} ({obj.__module__}.{obj.__name__})[/yellow]")
|
69
69
|
return obj()
|
70
70
|
|
71
71
|
except Exception as hata:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: KekikStream
|
3
|
-
Version: 1.2.
|
3
|
+
Version: 1.2.8
|
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
|
@@ -5,13 +5,13 @@ KekikStream/CLI/__init__.py,sha256=U6oLq_O7u5y2eHhBnmfhZNns_EqHHJXJmzl8jvZFUNY,2
|
|
5
5
|
KekikStream/CLI/pypi_kontrol.py,sha256=MchatOwCWCpFBtgt09yag9Rjal9XFyh2W_oVs2p7SNg,1518
|
6
6
|
KekikStream/Core/__init__.py,sha256=4ykq-DBlbbfjGAd5m2AZfuljTLBFYkI8DPLxV03AAcA,673
|
7
7
|
KekikStream/Core/Extractor/ExtractorBase.py,sha256=7dmYh5e1Za5N_pLJrTZRuwFh-CqwGc0YJOBWf5dirjc,1724
|
8
|
-
KekikStream/Core/Extractor/ExtractorLoader.py,sha256=
|
8
|
+
KekikStream/Core/Extractor/ExtractorLoader.py,sha256=7uxUXTAuF65KKkmbI6iRiCiUhx-IqrronB7ixhchcTU,4289
|
9
9
|
KekikStream/Core/Extractor/ExtractorManager.py,sha256=4L1H3jiTnf0kTq4W6uS7n95bBYHlKJ8_hh0og8z4erQ,1244
|
10
10
|
KekikStream/Core/Extractor/ExtractorModels.py,sha256=huIcPQ5VIRfMx0LcL5SS1u4dldZbHjzHKEdSEtOPlc0,456
|
11
11
|
KekikStream/Core/Media/MediaHandler.py,sha256=AJNPTXgxWykfDMyZIyGSjWl3Vp0salT8lKDrfAwaga4,6936
|
12
12
|
KekikStream/Core/Media/MediaManager.py,sha256=9ItiUguOkk3wg3YY5uf3mrjfwLPCvggnP8QviX0uiuE,526
|
13
13
|
KekikStream/Core/Plugin/PluginBase.py,sha256=gXD6a0__rAVBv1hbV7qtt4Ot5Wdx15JhF02TMd2QJd0,3179
|
14
|
-
KekikStream/Core/Plugin/PluginLoader.py,sha256=
|
14
|
+
KekikStream/Core/Plugin/PluginLoader.py,sha256=yZxMug-OcJ5RBm4fQkoquKrZxcBU7Pvt4IcY-d0WU8g,3393
|
15
15
|
KekikStream/Core/Plugin/PluginManager.py,sha256=CZVg1eegi8vfMfccx0DRV0Box8kXz-aoULTQLgbPbvM,893
|
16
16
|
KekikStream/Core/Plugin/PluginModels.py,sha256=ZZJUXbC0G2k0DU7Wpbf0rwjn7spywpiaLIHE7kLajhk,2533
|
17
17
|
KekikStream/Core/UI/UIManager.py,sha256=T4V_kdTTWa-UDamgLSKa__dWJuzcvRK9NuwBlzU9Bzc,1693
|
@@ -54,9 +54,9 @@ KekikStream/Plugins/SezonlukDizi.py,sha256=hKzO0Y0ypHEutmUM9c91x8e8vzRQ_zxpnwY0r
|
|
54
54
|
KekikStream/Plugins/Shorten.py,sha256=arakUY8ampyA408MYzikPp0VSYUvI8scPEkuZefEnyE,8852
|
55
55
|
KekikStream/Plugins/SineWix.py,sha256=yJzIhmWIgX0Bb7F5Q64MFKulLxq7HRy2Ytq2DwJYOYU,7025
|
56
56
|
KekikStream/Plugins/UgurFilm.py,sha256=C9ZIUNBJJfBwgeS5-b7o-Dn07M8aXiNrNzutH6biTXw,2925
|
57
|
-
kekikstream-1.2.
|
58
|
-
kekikstream-1.2.
|
59
|
-
kekikstream-1.2.
|
60
|
-
kekikstream-1.2.
|
61
|
-
kekikstream-1.2.
|
62
|
-
kekikstream-1.2.
|
57
|
+
kekikstream-1.2.8.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
58
|
+
kekikstream-1.2.8.dist-info/METADATA,sha256=5QzPcoEXL7CXf5z0Zjg1Js_JP8BTnWQ0pR_nd1IsTPc,4508
|
59
|
+
kekikstream-1.2.8.dist-info/WHEEL,sha256=nn6H5-ilmfVryoAQl3ZQ2l8SH5imPWFpm1A5FgEuFV4,91
|
60
|
+
kekikstream-1.2.8.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
|
61
|
+
kekikstream-1.2.8.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
|
62
|
+
kekikstream-1.2.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|