48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
import os
|
|
|
|
CONFIG_FILE = "server_cfg.ini"
|
|
CONTENT_FOLDER = "/home/sem/assetto-corsa/content"
|
|
CONFIG_PATH = "/home/sem/assetto-corsa/cfg"
|
|
# CONTENT_FOLDER = "./content"
|
|
# CONFIG_PATH = "./cfg"
|
|
|
|
CARS_FOLDER = os.path.join(CONTENT_FOLDER, "cars")
|
|
|
|
def get_all_cars():
|
|
cars_folders = sorted([x.name for x in os.scandir(CARS_FOLDER) if x.is_dir()])
|
|
all_cars = []
|
|
for i in range(len(cars_folders)):
|
|
skins = get_car_skins(cars_folders[i])
|
|
skins_data = []
|
|
for j in range(len(skins)):
|
|
skin_data = {
|
|
"name": skins[j],
|
|
"image": f"/img/car/{cars_folders[i]}/{skins[j]}"
|
|
}
|
|
skins_data.append(skin_data)
|
|
car_data = {
|
|
"name": cars_folders[i],
|
|
"skins": skins_data
|
|
}
|
|
all_cars.append(car_data)
|
|
print(f"added data " + str(car_data))
|
|
return all_cars
|
|
|
|
|
|
def get_car_skins(car: str) -> list[str]:
|
|
car_path = os.path.join(CARS_FOLDER, car);
|
|
skin_path = os.path.join(car_path, "skins")
|
|
if os.path.exists(skin_path) == False:
|
|
return []
|
|
|
|
skindirs = [x.path.replace(skin_path + "/","") for x in os.scandir(skin_path) if x.is_dir()]
|
|
return skindirs
|
|
|
|
def get_car_image(car: str, skin: str) -> str:
|
|
img_path = os.path.join(CARS_FOLDER, car,"skins", skin)
|
|
for name in os.listdir(img_path):
|
|
lower = name.lower()
|
|
if "preview" in lower and lower.endswith(".png") or lower.endswith(".jpg"):
|
|
return os.path.join(img_path, name)
|
|
return ""
|
|
|