Note: Don't use the script on games, obviously that wouldn't work. Also on music files the m3u playlist wouldn't fit anymore.
There is no problem running the script multiple times on same folder it will only handle on lengths>42
To run the script open a console/terminal and type:
Code: Select all
python C:\path\to\xFTPconvert.py
Save as xFTPconvert.py or download attached :
Code: Select all
############################################
# xFTPconvert #
# written by tim619 for xbmc4xbox forum #
############################################
import os
#For manual naming:
#FilesFolderName = "480p" # Here goes the foldername
#Path = os.path.dirname(os.path.realpath(__file__))
#FilesPath = Path+"\\"+FilesFolderName
FilesPath = os.path.dirname(os.path.abspath(__file__))
if not os.path.isdir(FilesPath):
print("You have to set up the folder name!")
else:
for root, dirs, files in os.walk(FilesPath):
for filename in files:
length = len(filename)# needed, otherwise if checked directly python thinks of an array of files...
if length>42:
ext = os.path.splitext(filename)[1][1:].strip().lower()
lenext = len(ext)+1
fixed = filename[:42-lenext]
while fixed.endswith(".") or fixed.endswith(" ") or fixed.endswith("_") or fixed.endswith("-") or fixed.endswith("(") or os.path.isfile(root+"\\"+fixed+"."+ext):
fixlen = len(fixed)-1
fixed = fixed[:fixlen]
fixedfile = fixed+"."+ext
#print(fixedfile)
os.rename(root+"\\"+filename,root+"\\"+fixedfile)
#Now all files are good and we do the same run again on folder names...
for root, dirs, files in os.walk(FilesPath): #why this way? because its MUCH easier!
for foldername in dirs:
folderlen = len(foldername)
if folderlen>42:
fixedfolder = foldername[:42]
fixfolderlen = len(fixedfolder)-1
while fixedfolder.endswith(".") or fixedfolder.endswith(" ") or fixedfolder.endswith("_") or fixedfolder.endswith("-") or fixedfolder.endswith("(") or os.path.isdir(root+"\\"+fixedfolder[:fixedfolderlen]):
fixfolderlen = len(fixedfolder)-1
fixedfolder = fixedfolder[:fixfolderlen]
print(fixedfolder)
os.rename(root+"\\"+foldername,root+"\\"+fixedfolder)
else:
print(foldername)