diff --git a/LoaderSpot_CLI/Cargo.toml b/LoaderSpot_CLI/Cargo.toml index 59d00ff..ff7fcd3 100644 --- a/LoaderSpot_CLI/Cargo.toml +++ b/LoaderSpot_CLI/Cargo.toml @@ -11,5 +11,4 @@ serde_json = "1.0" clap = { version = "4.0", features = ["derive"] } indicatif = "0.17.7" regex = "1" -urlencoding = "2.1.0" scraper = "0.19.0" diff --git a/LoaderSpot_CLI/src/main.rs b/LoaderSpot_CLI/src/main.rs index efc2c1c..92a19c2 100644 --- a/LoaderSpot_CLI/src/main.rs +++ b/LoaderSpot_CLI/src/main.rs @@ -8,7 +8,6 @@ use std::time::Duration; use tokio::sync::Semaphore; use regex::Regex; use scraper::{Html, Selector}; -use urlencoding; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize)] enum PlatformArch { diff --git a/upd.py b/upd.py deleted file mode 100644 index bdbc258..0000000 --- a/upd.py +++ /dev/null @@ -1,164 +0,0 @@ -import aiohttp -import asyncio -import json -import re -import argparse -from bs4 import BeautifulSoup -import urllib.parse - -parser = argparse.ArgumentParser() -parser.add_argument("-v", required=True) -parser.add_argument("-s", required=True) -parser.add_argument("-u", required=True) - -args = parser.parse_args() -version = args.v -source = args.s -u = args.u - - -async def send_request(json_data): - url = u + urllib.parse.quote(json_data) - async with aiohttp.ClientSession() as session: - async with session.get(url) as response: - if response.status == 200: - data = await response.text() - if " current_version: - platform_urls[platform] = str(url) - else: - platform_urls[platform] = str(url) - - return platform_urls - - -async def main(): - start_number = 0 - before_enter = 1000 - additional_searches = 10 # Максимальное кол-во шагов для дополнительного поиска - increment = 1000 # Размер шага - - find_url = [] - - root_url = "https://upgrade.scdn.co/upgrade/client/" - platform_templates = { - "WIN32": "win32-x86/spotify_installer-{version}-{numbers}.exe", - "WIN64": "win32-x86_64/spotify_installer-{version}-{numbers}.exe", - "WIN-ARM64": "win32-arm64/spotify_installer-{version}-{numbers}.exe", - "OSX": "osx-x86_64/spotify-autoupdate-{version}-{numbers}.tbz", - "OSX-ARM64": "osx-arm64/spotify-autoupdate-{version}-{numbers}.tbz", - } - - # не ищем архитектуру WIN32 если версия >= 1.2.54.304 - if parse_version(version) >= (1, 2, 54, 304): - platform_templates.pop("WIN32", None) - - async with aiohttp.ClientSession() as session: - tasks = [] - platform_names = list(platform_templates.keys()) - - for platform_name in platform_names: - numbers = start_number - while numbers <= before_enter: - url = root_url + platform_templates[platform_name].format( - version=version, numbers=numbers - ) - tasks.append(check_url(session, url, platform_name)) - numbers += 1 - - for task in asyncio.as_completed(tasks): - result = await task - if result is not None: - find_url.append(result) - - for i in range(additional_searches): - latest_urls = get_urls(find_url) - if len(latest_urls) < len(platform_names): - start_number = before_enter + 1 - before_enter += increment - tasks = [] - for platform_name in platform_names: - if platform_name not in latest_urls: - numbers = start_number - while numbers <= before_enter: - url = root_url + platform_templates[platform_name].format( - version=version, numbers=numbers - ) - tasks.append(check_url(session, url, platform_name)) - numbers += 1 - - if tasks: - for task in asyncio.as_completed(tasks): - result = await task - if result is not None: - find_url.append(result) - - if find_url: - latest_urls = get_urls(find_url) - await pre_version(latest_urls) - else: - await pre_version(False) - - -if __name__ == "__main__": - asyncio.run(main())