mirror of
https://github.com/rwinkhart/reflexify.git
synced 2026-08-28 04:46:39 -04:00
Added a script for sorting a downloaded archive by type and beta slot
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
from os import listdir, scandir
|
||||||
|
from os.path import getsize
|
||||||
|
from pathlib import Path
|
||||||
|
from shutil import move, rmtree
|
||||||
|
from subprocess import run
|
||||||
|
|
||||||
|
archive_dir = input('archive location (full path): ').rstrip('/') + '/'
|
||||||
|
sorting_dir = input('target (sorted) directory (full path): ').rstrip('/') + '/'
|
||||||
|
|
||||||
|
file_list = sorted(listdir(archive_dir))
|
||||||
|
|
||||||
|
# ensure sorting locations exist
|
||||||
|
[Path(sorting_dir + 'Free Ride/' + str(i)).mkdir(mode=0o700, parents=True, exist_ok=True) for i in range(1, 9)]
|
||||||
|
[Path(sorting_dir + 'National/' + str(i)).mkdir(mode=0o700, parents=True, exist_ok=True) for i in range(1, 9)]
|
||||||
|
[Path(sorting_dir + 'Supercross/' + str(i)).mkdir(mode=0o700, parents=True, exist_ok=True) for i in range(1, 9)]
|
||||||
|
|
||||||
|
for filename in file_list:
|
||||||
|
if getsize(archive_dir + filename) > 4718592:
|
||||||
|
file_details = filename.split(' -\x1f- ')
|
||||||
|
temp_folder = sorting_dir + '/temp/' + file_details[0] + ' - ' + file_details[1]
|
||||||
|
run(['7z', 'x', '-o' + temp_folder, archive_dir + filename])
|
||||||
|
sub_folders = [f.path for f in scandir(temp_folder) if f.is_dir()]
|
||||||
|
for subfolder in sub_folders:
|
||||||
|
sub_files = [f for f in listdir(subfolder)]
|
||||||
|
for file in sub_files:
|
||||||
|
if file.endswith('.database') or file.endswith('.level') or file.endswith('.package') or \
|
||||||
|
file.endswith('.scene'):
|
||||||
|
beta_slot_folder = sorting_dir + file_details[-1] + '/' + file.split('.')[0][-1] + '/' +\
|
||||||
|
file_details[0] + ' - ' + file_details[1] + '/'
|
||||||
|
Path(beta_slot_folder).mkdir(mode=0o700, parents=True, exist_ok=True)
|
||||||
|
move(subfolder + '/' + file, beta_slot_folder)
|
||||||
|
files = [f for f in listdir(temp_folder)]
|
||||||
|
for file in files:
|
||||||
|
if file.endswith('.database') or file.endswith('.level') or file.endswith('.package') or \
|
||||||
|
file.endswith('.scene'):
|
||||||
|
beta_slot_folder = sorting_dir + file_details[-1] + '/' + file.split('.')[0][-1] + '/' + \
|
||||||
|
file_details[0] + ' - ' + file_details[1] + '/'
|
||||||
|
Path(beta_slot_folder).mkdir(mode=0o700, parents=True, exist_ok=True)
|
||||||
|
move(temp_folder + '/' + file, beta_slot_folder)
|
||||||
|
rmtree(temp_folder)
|
||||||
Reference in New Issue
Block a user