Guest User

Untitled

a guest
Apr 19th, 2024
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. import argparse
  2. import sys
  3. import os
  4. import shutil
  5.  
  6. MEDIA_TYPES = { ".mp4", ".mkv", ".m4v", ".avi", ".webm" }
  7. SUBS_TYPES = { ".srt", ".ass", ".vtt" }
  8.  
  9.  
  10. print(sys.argv)
  11. if len(sys.argv) != 2: print("Folder was not provided, exiting") ; exit(2)
  12. folder = sys.argv[1]
  13. if folder == ".": folder = os.curdir
  14.  
  15. subs = []
  16. subs_ext = []
  17. shifted_subs = []
  18. shifted_subs_ext = []
  19. media = []
  20. names = []
  21. shift = 0
  22.  
  23.  
  24. for file in os.scandir(folder):
  25. i = file.name.rfind(".")
  26. ext = file.name[i: ]
  27. if ext in MEDIA_TYPES:
  28. media.append(file.name)
  29. names.append(file.name[ :i])
  30. if ext in SUBS_TYPES:
  31. subs.append(file.name)
  32. subs_ext.append(ext)
  33.  
  34. def rename(shift=0):
  35. for sub, name, ext in zip(shifted_subs, names, shifted_subs_ext):
  36. print(f"{sub} -> {name}{ext}")
  37. shutil.move(sub, name + ext)
  38.  
  39. def rename_ok():
  40. global shift
  41. for sub, name, ext in zip(shifted_subs, names, shifted_subs_ext):
  42. print(f"---{sub}\n{name}{ext}\n")
  43. answer = input("\nType a number to shift subs index or 'R' to proceed with renaming\n")
  44. if answer.lower() == "r": return True
  45. if answer.isnumeric(): shift = int(answer)
  46. return False
  47.  
  48.  
  49. if len(media) > len(subs):
  50. print("--Found more media than subs\n")
  51. elif len(media) < len(subs):
  52. print("--Found more subs than media\n")
  53.  
  54. while (True):
  55. print("shift -", shift)
  56. shifted_subs = []
  57. shifted_subs_ext = []
  58. for i in range(len(subs)):
  59. if i < shift: continue
  60. shifted_subs.append(subs[i])
  61. shifted_subs_ext.append(subs[i])
  62.  
  63. if rename_ok():
  64. rename(shift)
  65. break
  66.  
  67.  
  68.  
Advertisement
Add Comment
Please, Sign In to add comment