retro-back/scangames.py
2025-01-22 17:18:24 +01:00

55 lines
1.6 KiB
Python

import os
from db_classes import *
from sqlalchemy.orm import Session
from sqlalchemy import create_engine
def scan_folder(path):
engine = create_engine('mariadb+mariadbconnector://videogamedb:MumMTK3bwjYJRfe@localhost/videogamedb')
session = Session(engine)
extensions = session.query(RomFileExtensions).all()
ROMS = []
cpt = 0
ani = ["-","\\","|","/"]
for root, dirs, files in os.walk(path):
for file in files:
#print(file)
# print(ani[cpt%len(ani)],end="\r")
PATH = os.path.join(root, file)
file_split = file.split(".")
file_extension = file_split[-1]
CONSOLE = None
for db_extentions in extensions:
if "." + file_extension.lower() == db_extentions.name:
CONSOLE = db_extentions.consoles[0]
ROM_EXTENSION = db_extentions
break
if CONSOLE is None:
continue
ROM_NAME = ""
for i in file_split[:-1]:
ROM_NAME += i
CATEGORIES = []
LANGUAGE = session.query(Language).filter(Language.name == "Unknown").first()
LANGUAGE = [LANGUAGE]
rom = RomFile(ROM_NAME,
PATH,
CATEGORIES,
LANGUAGE,
ROM_EXTENSION,
CONSOLE)
ROMS.append(rom)
print(rom)
session.add_all(ROMS)
session.commit()
scan_folder("/roms")