mirror of
https://github.com/CreepsoOff/source.git
synced 2026-01-11 20:10:21 +00:00
94 lines
3.6 KiB
Python
94 lines
3.6 KiB
Python
import os
|
|
import requests
|
|
import json
|
|
from urllib.parse import urlparse, unquote
|
|
|
|
# Liste des URLs
|
|
urls = [
|
|
"https://esign.yyyue.xyz/app.json",
|
|
"https://raw.githubusercontent.com/vizunchik/AltStoreRus/master/apps.json",
|
|
"https://qnblackcat.github.io/AltStore/apps.json",
|
|
"https://randomblock1.com/altstore/apps.json",
|
|
"https://wuxu1.github.io/wuxu-complete-plus.json",
|
|
"https://wuxu1.github.io/wuxu-complete.json",
|
|
"https://ipa.cypwn.xyz/cypwn.json",
|
|
"https://driftywinds.github.io/AltStore/apps.json",
|
|
"https://hann8n.github.io/JackCracks/MovieboxPro.json",
|
|
"https://raw.githubusercontent.com/TheNightmanCodeth/chromium-ios/master/altstore-source.json",
|
|
"https://repo.apptesters.org/",
|
|
"https://aio.yippee.rip/repo.json",
|
|
"https://community-apps.sidestore.io/sidecommunity.json",
|
|
"https://raw.githubusercontent.com/arichornloverALT/arichornloveralt.github.io/main/apps2.json",
|
|
"https://raw.githubusercontent.com/arichornloveralt/arichornloveralt.github.io/main/apps.json",
|
|
"https://raw.githubusercontent.com/lo-cafe/winston-altstore/main/apps.json",
|
|
"https://qingsongqian.github.io/all.html",
|
|
"https://tiny.one/SpotC",
|
|
"https://theodyssey.dev/altstore/odysseysource.json",
|
|
"https://provenance-emu.com/apps.json",
|
|
"https://repo.starfiles.co/",
|
|
"https://ish.app/altstore.json",
|
|
"https://raw.githubusercontent.com/Balackburn/YTLitePlusAltstore/main/apps.json",
|
|
"https://ipa.cypwn.xyz/cypwn_ts.json",
|
|
"https://raw.githubusercontent.com/whoeevee/EeveeSpotify/swift/repo.json",
|
|
"https://altstore.oatmealdome.me/",
|
|
"https://alts.lao.sb/",
|
|
"https://xitrix.github.io/iTorrent/AltStore.json",
|
|
"https://driftywinds.github.io/repos/esign.json",
|
|
"https://github.com/khcrysalis/Feather/raw/main/app-repo.json",
|
|
"https://apps.nabzclan.vip/repos/esign.php",
|
|
"https://flyinghead.github.io/flycast-builds/altstore.json",
|
|
"https://alt.crystall1ne.dev/",
|
|
"https://apps.sidestore.io/",
|
|
"https://repos.yattee.stream/alt/apps.json",
|
|
"https://alt.thatstel.la/"
|
|
]
|
|
|
|
def parse_folder_and_file(url):
|
|
response = requests.head(url, allow_redirects=True)
|
|
final_url = response.url
|
|
parsed_url = urlparse(final_url)
|
|
|
|
# Construire le chemin du dossier
|
|
domain_parts = parsed_url.netloc.split(".")
|
|
path_parts = parsed_url.path.strip("/").split("/")
|
|
|
|
folder_parts = domain_parts + path_parts[:-1] # Exclure le fichier s'il est explicite
|
|
folder_name = "-".join([unquote(part) for part in folder_parts])
|
|
|
|
# Identifier le fichier
|
|
file_name = unquote(path_parts[-1]) if "." in path_parts[-1] else "apps.json"
|
|
file_name = file_name.replace(" ", "-")
|
|
|
|
return folder_name, file_name
|
|
|
|
def fetch_and_save_file(url):
|
|
folder, file_name = parse_folder_and_file(url)
|
|
response = requests.get(url, allow_redirects=True)
|
|
if response.status_code != 200:
|
|
print(f"Erreur : impossible de télécharger {url}")
|
|
return
|
|
|
|
content = response.text.strip()
|
|
try:
|
|
# Vérifier si le contenu est du JSON valide
|
|
json.loads(content)
|
|
is_json = True
|
|
except json.JSONDecodeError:
|
|
is_json = False
|
|
|
|
# Sauvegarder uniquement si le contenu est du JSON valide
|
|
if is_json:
|
|
os.makedirs(folder, exist_ok=True)
|
|
file_path = os.path.join(folder, file_name)
|
|
with open(file_path, "w", encoding="utf-8") as file:
|
|
file.write(content)
|
|
print(f"Fichier JSON sauvegardé : {file_path}")
|
|
else:
|
|
print(f"Le contenu de {url} n'est pas du JSON valide, ignoré.")
|
|
|
|
def main():
|
|
for url in urls:
|
|
fetch_and_save_file(url)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|