Can anyone help enhance this Python script executed on Download?


#1

Hi

I knocked this up a while back but I don’t know Python (or any code really), it was more just guessing. The idea is to delete the file the torrent has downloaded and create a symlink to the file that Sonarr has imported, so you can permaseed.

What I want it to do is when it tries to delete the file, retry indefinitely until it succeeds as the Windows file locks will prevent it from happening if it’s still uploading. This cannot include if the error is “File does not exist” as if that’s the case it should move on as it’s already done it and can move on.

import logging
import os
import sys
import time

# Set up the log file
logging.basicConfig(filename='sonarrsymlink.log',level=logging.INFO)

# Get the paths from the environment variables
permpath = os.environ.get('Sonarr_EpisodeFile_Path')
linkpath = os.environ.get('Sonarr_EpisodeFile_SourcePath')

# Sleep 1 minute to avoid the surge
time.sleep(60)

# Delete the original file
try:
  os.remove(linkpath)
except OSError:
  pass

# Create the symlink
os.symlink(permpath, linkpath)

# Log it if level is set to debug
logging.debug('Created link from symlink location: [%s] to permanent location: [%s]', linkpath, permpath)

Thanks
Silent