forked from recloudstream/TestPlugins
-
-
Notifications
You must be signed in to change notification settings - Fork 41
/
KONTROL.py
98 lines (78 loc) · 3.37 KB
/
KONTROL.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# ! Bu araç @keyiflerolsun tarafından | @KekikAkademi için yazılmıştır.
from Kekik.cli import konsol
from cloudscraper import CloudScraper
import os, re
class MainUrlUpdater:
def __init__(self, base_dir="."):
self.base_dir = base_dir
self.oturum = CloudScraper()
@property
def eklentiler(self):
return sorted([
dosya for dosya in os.listdir(self.base_dir)
if os.path.isdir(os.path.join(self.base_dir, dosya))
and not dosya.startswith(".")
and dosya not in {"gradle", "CanliTV", "OxAx", "__Temel", "RecTV", "SineWix", "YouTube", "NetflixMirror"}
])
def _kt_dosyasini_bul(self, dizin, dosya_adi):
for kok, alt_dizinler, dosyalar in os.walk(dizin):
if dosya_adi in dosyalar:
return os.path.join(kok, dosya_adi)
return None
@property
def kt_dosyalari(self):
return [
kt_dosya_yolu for eklenti in self.eklentiler
if (kt_dosya_yolu := self._kt_dosyasini_bul(eklenti, f"{eklenti}.kt"))
]
def _mainurl_bul(self, kt_dosya_yolu):
with open(kt_dosya_yolu, "r", encoding="utf-8") as file:
icerik = file.read()
if mainurl := re.search(r'override\s+var\s+mainUrl\s*=\s*"([^"]+)"', icerik):
return mainurl[1]
return None
def _mainurl_guncelle(self, kt_dosya_yolu, eski_url, yeni_url):
with open(kt_dosya_yolu, "r+", encoding="utf-8") as file:
icerik = file.read()
yeni_icerik = icerik.replace(eski_url, yeni_url)
file.seek(0)
file.write(yeni_icerik)
file.truncate()
def _versiyonu_artir(self, build_gradle_yolu):
with open(build_gradle_yolu, "r+", encoding="utf-8") as file:
icerik = file.read()
if version_match := re.search(r'version\s*=\s*(\d+)', icerik):
eski_versiyon = int(version_match[1])
yeni_versiyon = eski_versiyon + 1
yeni_icerik = icerik.replace(f"version = {eski_versiyon}", f"version = {yeni_versiyon}")
file.seek(0)
file.write(yeni_icerik)
file.truncate()
return yeni_versiyon
return None
@property
def mainurl_listesi(self):
return {
dosya: self._mainurl_bul(dosya) for dosya in self.kt_dosyalari
}
def guncelle(self):
for dosya, mainurl in self.mainurl_listesi.items():
eklenti_adi = dosya.split("/")[0]
print("\n")
konsol.log(f"[~] Kontrol Ediliyor : {eklenti_adi}")
try:
istek = self.oturum.get(mainurl, allow_redirects=True)
konsol.log(f"[+] Kontrol Edildi : {mainurl}")
except Exception as hata:
konsol.log(f"[!] Kontrol Edilemedi : {mainurl}")
konsol.log(f"[!] {type(hata).__name__} : {hata}")
continue
final_url = istek.url[:-1] if istek.url.endswith("/") else istek.url
if mainurl == final_url:
continue
self._mainurl_guncelle(dosya, mainurl, final_url)
if self._versiyonu_artir(f"{eklenti_adi}/build.gradle.kts"):
konsol.log(f"[»] {mainurl} -> {final_url}")
if __name__ == "__main__":
updater = MainUrlUpdater()
updater.guncelle()