mirror of
https://github.com/Detanup01/gbe_fork.git
synced 2024-12-26 10:24:14 +08:00
94 lines
3.0 KiB
Python
94 lines
3.0 KiB
Python
|
import os
|
||
|
import threading
|
||
|
import time
|
||
|
import requests
|
||
|
|
||
|
|
||
|
def download_app_images(
|
||
|
base_out_dir : str,
|
||
|
appid : int,
|
||
|
clienticon : str,
|
||
|
icon : str,
|
||
|
logo : str,
|
||
|
logo_small : str):
|
||
|
|
||
|
icons_out_dir = os.path.join(base_out_dir, "images")
|
||
|
print(f"downloading common app images in: {icons_out_dir}")
|
||
|
|
||
|
def downloader_thread(image_name : str, image_url : str):
|
||
|
# try 3 times
|
||
|
for download_trial in range(3):
|
||
|
try:
|
||
|
r = requests.get(image_url)
|
||
|
if r.status_code == requests.codes.ok: # if download was successfull
|
||
|
with open(os.path.join(icons_out_dir, image_name), "wb") as f:
|
||
|
f.write(r.content)
|
||
|
|
||
|
break
|
||
|
except Exception as ex:
|
||
|
pass
|
||
|
|
||
|
time.sleep(0.1)
|
||
|
|
||
|
app_images_names = [
|
||
|
r'capsule_184x69.jpg',
|
||
|
r'capsule_231x87.jpg',
|
||
|
r'capsule_231x87_alt_assets_0.jpg',
|
||
|
r'capsule_467x181.jpg',
|
||
|
r'capsule_616x353.jpg',
|
||
|
r'capsule_616x353_alt_assets_0.jpg',
|
||
|
r'library_600x900.jpg',
|
||
|
r'library_600x900_2x.jpg',
|
||
|
r'library_hero.jpg',
|
||
|
r'broadcast_left_panel.jpg',
|
||
|
r'broadcast_right_panel.jpg',
|
||
|
r'page.bg.jpg',
|
||
|
r'page_bg_raw.jpg',
|
||
|
r'page_bg_generated.jpg',
|
||
|
r'page_bg_generated_v6b.jpg',
|
||
|
r'header.jpg',
|
||
|
r'header_alt_assets_0.jpg',
|
||
|
r'hero_capsule.jpg',
|
||
|
r'logo.png',
|
||
|
]
|
||
|
|
||
|
if not os.path.exists(icons_out_dir):
|
||
|
os.makedirs(icons_out_dir)
|
||
|
time.sleep(0.050)
|
||
|
|
||
|
threads_list : list[threading.Thread] = []
|
||
|
for image_name in app_images_names:
|
||
|
image_url = f'https://cdn.cloudflare.steamstatic.com/steam/apps/{appid}/{image_name}'
|
||
|
t = threading.Thread(target=downloader_thread, args=(image_name, image_url), daemon=True)
|
||
|
threads_list.append(t)
|
||
|
t.start()
|
||
|
|
||
|
community_images_url = f'https://cdn.cloudflare.steamstatic.com/steamcommunity/public/images/apps/{appid}'
|
||
|
if clienticon:
|
||
|
image_url = f'{community_images_url}/{clienticon}.ico'
|
||
|
t = threading.Thread(target=downloader_thread, args=('clienticon.ico', image_url), daemon=True)
|
||
|
threads_list.append(t)
|
||
|
t.start()
|
||
|
|
||
|
if icon:
|
||
|
image_url = f'{community_images_url}/{icon}.jpg'
|
||
|
t = threading.Thread(target=downloader_thread, args=('icon.jpg', image_url), daemon=True)
|
||
|
threads_list.append(t)
|
||
|
t.start()
|
||
|
|
||
|
if logo:
|
||
|
image_url = f'{community_images_url}/{logo}.jpg'
|
||
|
t = threading.Thread(target=downloader_thread, args=('logo.jpg', image_url), daemon=True)
|
||
|
threads_list.append(t)
|
||
|
t.start()
|
||
|
|
||
|
if logo_small:
|
||
|
image_url = f'{community_images_url}/{logo_small}.jpg'
|
||
|
t = threading.Thread(target=downloader_thread, args=('logo_small.jpg', image_url), daemon=True)
|
||
|
threads_list.append(t)
|
||
|
t.start()
|
||
|
|
||
|
for t in threads_list:
|
||
|
t.join()
|
||
|
|
||
|
print(f"finished downloading common app images")
|