KekikStream 1.9.2__py3-none-any.whl → 1.9.4__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/ExtractorManager.py +21 -3
- {kekikstream-1.9.2.dist-info → kekikstream-1.9.4.dist-info}/METADATA +13 -20
- {kekikstream-1.9.2.dist-info → kekikstream-1.9.4.dist-info}/RECORD +7 -7
- {kekikstream-1.9.2.dist-info → kekikstream-1.9.4.dist-info}/WHEEL +0 -0
- {kekikstream-1.9.2.dist-info → kekikstream-1.9.4.dist-info}/entry_points.txt +0 -0
- {kekikstream-1.9.2.dist-info → kekikstream-1.9.4.dist-info}/licenses/LICENSE +0 -0
- {kekikstream-1.9.2.dist-info → kekikstream-1.9.4.dist-info}/top_level.txt +0 -0
|
@@ -7,12 +7,27 @@ class ExtractorManager:
|
|
|
7
7
|
def __init__(self, extractor_dir="Extractors"):
|
|
8
8
|
# Çıkarıcı yükleyiciyi başlat ve tüm çıkarıcıları yükle
|
|
9
9
|
self.extractor_loader = ExtractorLoader(extractor_dir)
|
|
10
|
-
self.extractors = self.extractor_loader.load_all()
|
|
10
|
+
self.extractors = self.extractor_loader.load_all() # Sadece class'lar
|
|
11
11
|
|
|
12
|
-
#
|
|
13
|
-
self._extractor_instances =
|
|
12
|
+
# Lazy loading: Instance'lar ilk kullanımda oluşturulacak
|
|
13
|
+
self._extractor_instances = None # None = henüz oluşturulmadı
|
|
14
14
|
self._ytdlp_extractor = None
|
|
15
|
+
self._initialized = False
|
|
16
|
+
|
|
17
|
+
def _ensure_initialized(self):
|
|
18
|
+
"""
|
|
19
|
+
Lazy initialization: İlk kullanımda TÜM extractorları initialize et
|
|
20
|
+
|
|
21
|
+
Startup'ta sadece class'ları yükledik (hızlı).
|
|
22
|
+
Şimdi instance'ları oluştur ve cache'le (bir kere).
|
|
23
|
+
"""
|
|
24
|
+
if self._initialized:
|
|
25
|
+
return
|
|
26
|
+
|
|
27
|
+
# Instance listesi oluştur
|
|
28
|
+
self._extractor_instances = []
|
|
15
29
|
|
|
30
|
+
# TÜM extractorları instance'la
|
|
16
31
|
for extractor_cls in self.extractors:
|
|
17
32
|
instance = extractor_cls()
|
|
18
33
|
|
|
@@ -26,10 +41,13 @@ class ExtractorManager:
|
|
|
26
41
|
if self._ytdlp_extractor:
|
|
27
42
|
self._extractor_instances.insert(0, self._ytdlp_extractor)
|
|
28
43
|
|
|
44
|
+
self._initialized = True
|
|
45
|
+
|
|
29
46
|
def find_extractor(self, link) -> ExtractorBase:
|
|
30
47
|
"""
|
|
31
48
|
Verilen bağlantıyı işleyebilecek çıkarıcıyı bul
|
|
32
49
|
"""
|
|
50
|
+
self._ensure_initialized()
|
|
33
51
|
# Cached instance'ları kullan
|
|
34
52
|
for extractor in self._extractor_instances:
|
|
35
53
|
if extractor.can_handle_url(link):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: KekikStream
|
|
3
|
-
Version: 1.9.
|
|
3
|
+
Version: 1.9.4
|
|
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
|
|
@@ -92,13 +92,6 @@ pip install -U KekikStream
|
|
|
92
92
|
KekikStream
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
**Kütüphane (örnek arama):**
|
|
96
|
-
```python
|
|
97
|
-
from KekikStream import Manager
|
|
98
|
-
results = Manager().search("vikings")
|
|
99
|
-
print(results[0].title)
|
|
100
|
-
```
|
|
101
|
-
|
|
102
95
|
---
|
|
103
96
|
|
|
104
97
|
## ✨ Özellikler
|
|
@@ -139,11 +132,11 @@ class MyPlugin(PluginBase):
|
|
|
139
132
|
|
|
140
133
|
### 🎬 Oynatıcı Desteği
|
|
141
134
|
|
|
142
|
-
| Oynatıcı
|
|
143
|
-
|
|
144
|
-
| **
|
|
145
|
-
| **
|
|
146
|
-
| **MX Player** | Android
|
|
135
|
+
| Oynatıcı | Platform | Özellikler |
|
|
136
|
+
|---------------|----------|---------------------------|
|
|
137
|
+
| **MPV** | Desktop | Custom headers, subtitles |
|
|
138
|
+
| **VLC** | Desktop | Custom headers, subtitles |
|
|
139
|
+
| **MX Player** | Android | ADB üzerinden |
|
|
147
140
|
|
|
148
141
|
> Özel durumlar için (Google Drive vb.) arka planda otomatik olarak yt-dlp devreye girer.
|
|
149
142
|
|
|
@@ -175,8 +168,8 @@ graph TB
|
|
|
175
168
|
end
|
|
176
169
|
|
|
177
170
|
subgraph Players
|
|
178
|
-
VLC[🎥 VLC]
|
|
179
171
|
MPV[🎥 MPV]
|
|
172
|
+
VLC[🎥 VLC]
|
|
180
173
|
MX[🎥 MX Player]
|
|
181
174
|
end
|
|
182
175
|
|
|
@@ -246,13 +239,13 @@ KekikStream/
|
|
|
246
239
|
|
|
247
240
|
## 📊 Performans
|
|
248
241
|
|
|
249
|
-
| Metrik
|
|
250
|
-
|
|
251
|
-
| Plugin Sayısı
|
|
252
|
-
| Extractor Sayısı
|
|
242
|
+
| Metrik | Değer |
|
|
243
|
+
|----------------------|------------------|
|
|
244
|
+
| Plugin Sayısı | 20+ |
|
|
245
|
+
| Extractor Sayısı | 40+ |
|
|
253
246
|
| Desteklenen Platform | Desktop, Android |
|
|
254
|
-
| Async Arama
|
|
255
|
-
| Cache Desteği
|
|
247
|
+
| Async Arama | ✅ |
|
|
248
|
+
| Cache Desteği | ✅ |
|
|
256
249
|
|
|
257
250
|
---
|
|
258
251
|
|
|
@@ -6,7 +6,7 @@ KekikStream/CLI/pypi_kontrol.py,sha256=q6fNs6EKJDc5VuUFig9DBzLzNPp_kMD1vOVgLElci
|
|
|
6
6
|
KekikStream/Core/__init__.py,sha256=ar2MZQF83ryfLfydEXcfjdwNe4Too_HT6bP-D_4TopA,710
|
|
7
7
|
KekikStream/Core/Extractor/ExtractorBase.py,sha256=Yj7CGvm2ZKxlvuUkZu0X1Pl0JMH250W7hyqv09duTmE,1637
|
|
8
8
|
KekikStream/Core/Extractor/ExtractorLoader.py,sha256=7uxUXTAuF65KKkmbI6iRiCiUhx-IqrronB7ixhchcTU,4289
|
|
9
|
-
KekikStream/Core/Extractor/ExtractorManager.py,sha256=
|
|
9
|
+
KekikStream/Core/Extractor/ExtractorManager.py,sha256=MTgZJe2YJhr7fY1fAGgNI_MWLPVyLlWEkXblEz-zD6E,2467
|
|
10
10
|
KekikStream/Core/Extractor/ExtractorModels.py,sha256=Qj_gbIeGRewaZXNfYkTi4FFRRq6XBOc0HS0tXGDwajI,445
|
|
11
11
|
KekikStream/Core/Media/MediaHandler.py,sha256=MEn3spPAThVloN3WcoCwWhpoyMA7tAZvcwYjmjJsX3U,7678
|
|
12
12
|
KekikStream/Core/Media/MediaManager.py,sha256=AaUq2D7JSJIphjoAj2fjLOJjswm7Qf5hjYCbBdrbnDU,438
|
|
@@ -78,9 +78,9 @@ KekikStream/Plugins/SinemaCX.py,sha256=DUvYa7J4a2D5ivLO_sQiaStoV5FDxmz8onJyFwAid
|
|
|
78
78
|
KekikStream/Plugins/Sinezy.py,sha256=EttAZogKoKMP8RP_X1fSfi8vVxA2RWizwgnLkmnhERQ,5675
|
|
79
79
|
KekikStream/Plugins/SuperFilmGeldi.py,sha256=Ohm21BPsJH_S1tx5i2APEgAOD25k2NiwRP7rSgAKvRs,5289
|
|
80
80
|
KekikStream/Plugins/UgurFilm.py,sha256=eKGzmSi8k_QbXnYPWXZRdmCxxc32zZh4rynmdxCbm1o,4832
|
|
81
|
-
kekikstream-1.9.
|
|
82
|
-
kekikstream-1.9.
|
|
83
|
-
kekikstream-1.9.
|
|
84
|
-
kekikstream-1.9.
|
|
85
|
-
kekikstream-1.9.
|
|
86
|
-
kekikstream-1.9.
|
|
81
|
+
kekikstream-1.9.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
82
|
+
kekikstream-1.9.4.dist-info/METADATA,sha256=RvKMeLPHAc7LHybDrg88zz4KhxZN1on4gh2ysJVv5fs,9079
|
|
83
|
+
kekikstream-1.9.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
84
|
+
kekikstream-1.9.4.dist-info/entry_points.txt,sha256=dFwdiTx8djyehI0Gsz-rZwjAfZzUzoBSrmzRu9ubjJc,50
|
|
85
|
+
kekikstream-1.9.4.dist-info/top_level.txt,sha256=DNmGJDXl27Drdfobrak8KYLmocW_uznVYFJOzcjUgmY,12
|
|
86
|
+
kekikstream-1.9.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|