Skip to content

Commit 314f3af

Browse files
committed
refactor: Update extractor and plugin loading logic to hardcode directory names, prioritize distinct local extractors alongside global ones, and ensure unique plugin loading paths, plus a version bump.
1 parent a06ed09 commit 314f3af

File tree

3 files changed

+18
-27
lines changed

3 files changed

+18
-27
lines changed

KekikStream/Core/Extractor/ExtractorLoader.py

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class ExtractorLoader:
99
def __init__(self, extractors_dir: str):
1010
# Yerel ve global çıkarıcı dizinlerini ayarla
1111
self.local_extractors_dir = Path(extractors_dir)
12-
self.global_extractors_dir = Path(__file__).parent.parent.parent / extractors_dir
12+
self.global_extractors_dir = Path(__file__).parent.parent.parent / "Extractors"
1313

1414
# Dizin kontrolü
1515
if not self.local_extractors_dir.exists() and not self.global_extractors_dir.exists():
@@ -19,22 +19,16 @@ def __init__(self, extractors_dir: str):
1919
def load_all(self) -> list[ExtractorBase]:
2020
extractors = []
2121

22-
# Eğer yerel dizinde Extractor varsa, sadece onları yükle (eklenti geliştirme modu)
23-
if self.local_extractors_dir.exists():
22+
# Yerel Extractor'lar varsa önce onları yükle (ek/öncelikli yetenekler)
23+
# Eğer yerel dizin global dizinle aynıysa (örn: doğrudan core'da çalışırken) tekrar yükleme yapma
24+
if self.local_extractors_dir.exists() and self.local_extractors_dir.resolve() != self.global_extractors_dir.resolve():
2425
# konsol.log(f"[green][*] Yerel Extractor dizininden yükleniyor: {self.local_extractors_dir}[/green]")
25-
local_extractors = self._load_from_directory(self.local_extractors_dir)
26-
# konsol.log(f"[green]Yerel Extractor'lar: {[e.__name__ for e in local_extractors]}[/green]")
26+
extractors.extend(self._load_from_directory(self.local_extractors_dir))
2727

28-
if local_extractors:
29-
# konsol.log("[cyan][*] Yerel Extractor bulundu, global Extractor'lar atlanıyor (eklenti geliştirme modu)[/cyan]")
30-
extractors.extend(local_extractors)
31-
32-
# Yerel dizinde Extractor yoksa, global'leri yükle
33-
if not extractors and self.global_extractors_dir.exists():
28+
# Global Extractor'ları her zaman yükle (temel yetenekler)
29+
if self.global_extractors_dir.exists():
3430
# konsol.log(f"[green][*] Global Extractor dizininden yükleniyor: {self.global_extractors_dir}[/green]")
35-
global_extractors = self._load_from_directory(self.global_extractors_dir)
36-
# konsol.log(f"[green]Global Extractor'lar: {[e.__name__ for e in global_extractors]}[/green]")
37-
extractors.extend(global_extractors)
31+
extractors.extend(self._load_from_directory(self.global_extractors_dir))
3832

3933
# Benzersizliği sağlama (modül adı + sınıf adı bazında)
4034
unique_extractors = []

KekikStream/Core/Plugin/PluginLoader.py

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,24 @@ def __init__(self, plugins_dir: str, proxy: str | dict | None = None):
1010
# Yerel ve global eklenti dizinlerini ayarla
1111
self.proxy = proxy
1212
self.local_plugins_dir = Path(plugins_dir).resolve()
13-
self.global_plugins_dir = Path(__file__).parent.parent.parent / plugins_dir
13+
self.global_plugins_dir = Path(__file__).parent.parent.parent / "Plugins"
1414

1515
# Dizin kontrolü
1616
if not self.local_plugins_dir.exists() and not self.global_plugins_dir.exists():
1717
# konsol.log(f"[red][!] Eklenti dizini bulunamadı: {plugins_dir}[/red]")
1818
cikis_yap(False)
1919

2020
def load_all(self) -> dict[str, PluginBase]:
21-
plugins = {}
21+
plugins = {}
22+
local_dir_exists = self.local_plugins_dir.exists() and self.local_plugins_dir.resolve() != self.global_plugins_dir.resolve()
2223

23-
# Eğer yerel dizinde Plugin varsa, sadece onları yükle (eklenti geliştirme modu)
24-
if self.local_plugins_dir.exists():
24+
# Eğer yerel dizin varsa, sadece oradan yükle (eklenti geliştirme/yayınlama modu)
25+
if local_dir_exists:
2526
# konsol.log(f"[green][*] Yerel Eklenti dizininden yükleniyor: {self.local_plugins_dir}[/green]")
26-
local_plugins = self._load_from_directory(self.local_plugins_dir)
27-
28-
if local_plugins:
29-
# konsol.log("[cyan][*] Yerel Plugin bulundu, global Plugin'ler atlanıyor (eklenti geliştirme modu)[/cyan]")
30-
plugins |= local_plugins
31-
32-
# Yerel dizinde Plugin yoksa, global'leri yükle
33-
if not plugins and self.global_plugins_dir.exists():
27+
plugins |= self._load_from_directory(self.local_plugins_dir)
28+
29+
# Yerel dizin yoksa (veya core ile aynı yerse), global'leri yükle
30+
else:
3431
# konsol.log(f"[green][*] Global Eklenti dizininden yükleniyor: {self.global_plugins_dir}[/green]")
3532
plugins |= self._load_from_directory(self.global_plugins_dir)
3633

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
setup(
77
# ? Genel Bilgiler
88
name = "KekikStream",
9-
version = "2.5.1",
9+
version = "2.5.2",
1010
url = "https://github.com/keyiflerolsun/KekikStream",
1111
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ı",
1212
keywords = ["KekikStream", "KekikAkademi", "keyiflerolsun"],

0 commit comments

Comments
 (0)