Advertisement
Mr-A

LF2 WAV Renaming Tool

Jul 22nd, 2015
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.53 KB | None | 0 0
  1. import os, sys
  2. from random import randint
  3. import ctypes
  4.  
  5. def decrypt_lf2(edata):
  6.     key="odBearBecauseHeIsVeryGoodSiuHungIsAGo";pos=0;ddata=''
  7.     for a in range(123, len(edata)-1):
  8.         try:
  9.             ddata+=chr(ord(edata[a])-ord(key[pos]))
  10.         except ValueError:
  11.             pass
  12.         pos+=1
  13.         if pos==len(key):
  14.             pos=0
  15.     return ddata
  16.  
  17. def encrypt_lf2(ddata):
  18.     key="odBearBecauseHeIsVeryGoodSiuHungIsAGo"
  19.     pos=0
  20.     edata=''
  21.     for a in range(0, len(ddata)-1):
  22.         edata+=chr(ord(ddata[a])+ord(key[pos]))
  23.         pos+=1
  24.         if pos==len(key):
  25.             pos=0
  26.     return (" "*123)+edata
  27.  
  28. ctypes.windll.kernel32.SetConsoleTitleA("A-WAV Name Surgeon")
  29. fns=[]
  30.  
  31. if "data" not in os.listdir(os.getcwd()):
  32.     os.system("color 0C")
  33.     raw_input("#Place this next to your LF2 exe. Could not locate the \'data\' folder!")
  34. else:
  35.     os.system("color 0A")
  36.     for a in os.listdir(os.getcwd()+"\\data"):
  37.         if a.endswith(".dat"): fns.append("data\\"+a)
  38.  
  39.        
  40.     x=lambda y: decrypt_lf2(open(y).read())
  41.  
  42.     mode = None
  43.     while mode == None:
  44.         a = raw_input("Enter 0 to have me generate new names for you. \nEnter 1 if you'd like to set new names yourself. >> ")
  45.         if a in ["1", "0"]:
  46.             mode = int(a)
  47.             break
  48.  
  49.     sound_files = {}
  50.     for datfile in fns:
  51.         dft = x(datfile)
  52.         last_pos = dft.find("sound:")
  53.         print "###Currently operating on: " + datfile
  54.         while last_pos != -1:
  55.             wavname = dft[dft.find("sound:", last_pos+1)+6:dft.find("\n", dft.find("sound:", last_pos+1)+10)]
  56.             wavname = wavname.rstrip(" ")
  57.             wavname = wavname.rstrip("\"")
  58.             wavname = wavname.lstrip(" ")
  59.             wavname = wavname.lstrip("\"")
  60.             loc = wavname[:wavname.rfind("\\") + 1]
  61.             name = wavname[wavname.rfind("\\") + 1:]
  62.             if len(wavname) > 20:
  63.                 print "#Checking " + wavname
  64.                 if wavname in sound_files.keys():
  65.                     new_name = sound_files[wavname]
  66.                 else:
  67.                     if mode == 0:
  68.                         while True:
  69.                             new_name = ["abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"][randint(0,1)][randint(0,25)]+str(randint(0,9))+".wav"
  70.                             if loc+new_name not in sound_files.keys():
  71.                                 break;
  72.                     else:
  73.                         new_name = raw_input(name + " name is too long. \nEnter a shorter name>> ")
  74.                         while True:
  75.                             if len(new_name + loc) > 20 and loc+new_name not in sound_files.keys():
  76.                                 break
  77.                             elif len(new_name + loc) > 20:
  78.                                 new_name = raw_input("Name is still too long. Please write another>> ")
  79.                             else:
  80.                                 new_name = raw_input("Name conflict. Please write another>> ")
  81.                     try:
  82.                         os.rename(wavname, loc+new_name)
  83.                     except WindowsError:
  84.                         print "Warning: File " + wavname + " could not be located"
  85.                     sound_files[wavname] = new_name
  86.                 while dft.find(wavname) != -1:
  87.                     dft = dft.replace(wavname, loc+new_name)
  88.                 new_dft = encrypt_lf2(dft)
  89.  
  90.                 #write to new data
  91.                 datfile_obj = open(datfile, "w")
  92.                 datfile_obj.write(new_dft)
  93.                 datfile_obj.close()
  94.             last_pos = dft.find("sound:", last_pos+1)
  95.     raw_input("\n----All is done and ready!----")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement