Skip to content

Instantly share code, notes, and snippets.

@mattatcha
Forked from cas--/deluge_tracker_rename.py
Last active June 29, 2016 03:41
Show Gist options
  • Select an option

  • Save mattatcha/2d4bdd6f0c2079b7c7521e5a2b7b0417 to your computer and use it in GitHub Desktop.

Select an option

Save mattatcha/2d4bdd6f0c2079b7c7521e5a2b7b0417 to your computer and use it in GitHub Desktop.
import os
import platform
import shutil
import cPickle
orig_tracker_url = 'udp://xxx'
new_tracker_url = 'udp://xxx'
if platform.system() in ('Windows', 'Microsoft'):
state_file_path = os.path.join(os.environ.get('APPDATA'), 'deluge', 'torrents.state')
else:
state_file_path = os.path.expanduser('~/.config/deluge/state/torrents.state')
print "State file: %s" % state_file_path
print "Replace '%s' with '%s'" % (orig_tracker_url, new_tracker_url)
state_file = open(state_file_path, 'rb')
state = cPickle.load(state_file)
state_file.close()
state_modified = False
for torrent in state.torrents:
for tracker in torrent.trackers:
if tracker['url'] == orig_tracker_url:
tracker['url'] = new_tracker_url
state_modified = True
if state_modified:
shutil.copyfile(state_file_path, state_file_path + '.old')
state_file = open(state_file_path, 'wb')
cPickle.dump(state, state_file)
state_file.close()
print "State Updated"
else:
print "Nothing to do"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment