add tools for easy copy
This commit is contained in:
parent
5dc59a08f0
commit
4590718fbe
128
tools/f2f.py
Normal file
128
tools/f2f.py
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
# Author: Andrea Mele
|
||||||
|
# E-mail: andme44@gmial.com
|
||||||
|
# Websites:
|
||||||
|
# http://www.github.com/AndreaMele
|
||||||
|
# http://www.artstation.com/AndreaMele
|
||||||
|
# Project: Files 2 Folders
|
||||||
|
"""
|
||||||
|
My scipt for dealing with Radarr Bulk Import
|
||||||
|
|
||||||
|
Takes all files, creates directories out of filenames.
|
||||||
|
Meant to be used after filebot or other pre-organized media files.
|
||||||
|
|
||||||
|
Handles duplicate filenames and clean up.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
import os.path
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
|
||||||
|
def f2f():
|
||||||
|
os.chdir(sys.path[0])
|
||||||
|
filecounter = 0
|
||||||
|
tempDir = os.path.join(sys.path[0] + "\\temp")
|
||||||
|
tempDirList = []
|
||||||
|
mainFileList = []
|
||||||
|
# --- Preventing a mess.
|
||||||
|
if os.path.exists(tempDir):
|
||||||
|
print("Temp Dir already exists, cannot proceed")
|
||||||
|
print("Exiting")
|
||||||
|
sys.exit()
|
||||||
|
# --- Tree Log File
|
||||||
|
os.system("tree /a /f > Logs.txt")
|
||||||
|
# ----- Dealing with Temp Directory
|
||||||
|
print("____________")
|
||||||
|
if not os.path.exists(tempDir):
|
||||||
|
print("... Temp Dir Created ...")
|
||||||
|
os.mkdir(tempDir)
|
||||||
|
else:
|
||||||
|
for fn in os.listdir(tempDir):
|
||||||
|
tempDirList.append(fn)
|
||||||
|
# ----- Dealing with Temp Directory
|
||||||
|
# --------------------------------------
|
||||||
|
# ----- File dealings
|
||||||
|
for root, dirs, files in os.walk(cDir, topdown=True):
|
||||||
|
# exclude = tempDir
|
||||||
|
exclude = tempDir
|
||||||
|
dirs[:] = [d for d in dirs if d not in exclude]
|
||||||
|
# if root == tempDir:
|
||||||
|
# print("ding")
|
||||||
|
# continue
|
||||||
|
# --------- for file in files
|
||||||
|
for filename in files:
|
||||||
|
filecounter += 1
|
||||||
|
# Separate base from extension
|
||||||
|
base, extension = os.path.splitext(filename)
|
||||||
|
# old default File
|
||||||
|
oldFile = os.path.join(root, filename)
|
||||||
|
oldFileFolder = os.path.join(root) + "\\"
|
||||||
|
# New name for Temp Folder
|
||||||
|
newFile = os.path.join(tempDir, base, filename)
|
||||||
|
print(" - - Processing File: - - ")
|
||||||
|
print("oldFile =>", oldFile)
|
||||||
|
if filename == os.path.basename(sys.argv[0]): #Skip Script File
|
||||||
|
print("Script file detected. Skipping...")
|
||||||
|
continue
|
||||||
|
# If folder basedir/base does not exist... You don't want to create it?
|
||||||
|
if not os.path.exists(os.path.join(tempDir, base + "\\")):
|
||||||
|
try:
|
||||||
|
print("not found ... ", os.path.join(tempDir, base))
|
||||||
|
os.mkdir(os.path.join(tempDir, base))
|
||||||
|
print("Folder Created ... ", tempDir, base)
|
||||||
|
shutil.move(oldFile, newFile)
|
||||||
|
print("Relocated ... ", newFile)
|
||||||
|
continue # Next filename
|
||||||
|
except:
|
||||||
|
print("Error in try")
|
||||||
|
# folder exists, file does not
|
||||||
|
elif not os.path.exists(newFile):
|
||||||
|
try:
|
||||||
|
print("Relocated ... ", newFile)
|
||||||
|
shutil.move(oldFile, newFile)
|
||||||
|
except:
|
||||||
|
print("Error in elif")
|
||||||
|
# folder exists, file exists as well
|
||||||
|
else:
|
||||||
|
vNum = 2
|
||||||
|
while True:
|
||||||
|
newFile = os.path.join(tempDir, base, base + " - Ver " + str(vNum) + extension)
|
||||||
|
if not os.path.exists(newFile):
|
||||||
|
print(f"File : {filename} \nIN {tempDir} ... already exists")
|
||||||
|
try:
|
||||||
|
print(f"Renaming : {filename}\n To : {newFile}")
|
||||||
|
shutil.move(oldFile, newFile)
|
||||||
|
print(f"Copied : {oldFile}\nTo : {newFile}")
|
||||||
|
break
|
||||||
|
except:
|
||||||
|
print("Error in Else")
|
||||||
|
vNum += 1
|
||||||
|
# Clean up old paths
|
||||||
|
print("_____ CLEAN UP ____")
|
||||||
|
for root, dirs, files in os.walk(cDir, topdown=True):
|
||||||
|
exclude = tempDir
|
||||||
|
dirs[:] = [d for d in dirs if d not in exclude]
|
||||||
|
for dir in dirs:
|
||||||
|
shutil.rmtree(dir)
|
||||||
|
print("Removed : ", dir)
|
||||||
|
# Moving files back to main directory
|
||||||
|
tempDirList = os.listdir(tempDir)
|
||||||
|
for tempFolderName in tempDirList:
|
||||||
|
tempFolder = os.path.join(tempDir, tempFolderName)
|
||||||
|
shutil.move(tempFolder, cDir)
|
||||||
|
# Removing empty temp Dir
|
||||||
|
shutil.rmtree(tempDir)
|
||||||
|
print("Removed : ", tempDir)
|
||||||
|
# --- Tree Log File
|
||||||
|
os.rename(r"Logs\Logs.txt", r"Logs\Before.txt")
|
||||||
|
os.system(r"tree /a /f > .\Logs\After.txt")
|
||||||
|
print("\n\n\t\tall done.")
|
||||||
|
|
||||||
|
def main():
|
||||||
|
f2f()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
cDir = os.getcwd()
|
||||||
|
main()
|
BIN
tools/media-sort.exe
Normal file
BIN
tools/media-sort.exe
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user