add 'switch torrent source' to movetorrent plugin
This commit is contained in:
parent
cb493591f1
commit
05240945a7
|
@ -70,20 +70,27 @@ class movetorrentMenu:
|
||||||
except IOError:
|
except IOError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
self.menuitem_image = gtk.Image()
|
self.moveitem_image = gtk.Image()
|
||||||
self.menuitem_image.set_from_stock(gtk.STOCK_SAVE_AS, gtk.ICON_SIZE_MENU)
|
self.moveitem_image.set_from_stock(gtk.STOCK_SAVE_AS, gtk.ICON_SIZE_MENU)
|
||||||
|
self.moveitem = gtk.ImageMenuItem(_("_Move Torrent"))
|
||||||
self.menuitem = gtk.ImageMenuItem(_("_Move Torrent"))
|
self.moveitem.set_image(self.moveitem_image)
|
||||||
self.menuitem.set_image(self.menuitem_image)
|
self.moveitem.connect("activate", self.movetorrent_clicked)
|
||||||
self.menuitem.connect("activate", self.movetorrent_clicked)
|
self.interface.torrent_menu.append(self.moveitem)
|
||||||
self.interface.torrent_menu.append(self.menuitem)
|
self.moveitem.show_all()
|
||||||
self.menuitem.show_all()
|
self.switchitem_image = gtk.Image()
|
||||||
|
self.switchitem_image.set_from_stock(gtk.STOCK_CONVERT, gtk.ICON_SIZE_MENU)
|
||||||
|
self.switchitem = gtk.ImageMenuItem(_("_Switch Torrent Source"))
|
||||||
|
self.switchitem.set_image(self.switchitem_image)
|
||||||
|
self.switchitem.connect("activate", self.switchtorrent_clicked)
|
||||||
|
self.interface.torrent_menu.append(self.switchitem)
|
||||||
|
self.switchitem.show_all()
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def unload(self):
|
def unload(self):
|
||||||
self.interface.torrent_menu.remove(self.menuitem)
|
self.interface.torrent_menu.remove(self.moveitem)
|
||||||
|
self.interface.torrent_menu.remove(self.switchitem)
|
||||||
self.core.disconnect_event(self.core.constants['EVENT_STORAGE_MOVED'], self.handle_event)
|
self.core.disconnect_event(self.core.constants['EVENT_STORAGE_MOVED'], self.handle_event)
|
||||||
self.core.disconnect_event(self.core.constants['EVENT_FINISHED'], self.handle_event)
|
self.core.disconnect_event(self.core.constants['EVENT_FINISHED'], self.handle_event)
|
||||||
self.config.save(self.config_file)
|
self.config.save(self.config_file)
|
||||||
|
@ -98,6 +105,9 @@ class movetorrentMenu:
|
||||||
for unique_id in unique_ids:
|
for unique_id in unique_ids:
|
||||||
self.core.move_storage(unique_id, path)
|
self.core.move_storage(unique_id, path)
|
||||||
|
|
||||||
|
def switchtorrent_clicked(self, widget):
|
||||||
|
self.interface.torrent_switch_recheck(switch=True)
|
||||||
|
|
||||||
def configure(self, window):
|
def configure(self, window):
|
||||||
try:
|
try:
|
||||||
self.glade.get_widget("chk_move_completed").set_active(self.config.get("enable_move_completed"))
|
self.glade.get_widget("chk_move_completed").set_active(self.config.get("enable_move_completed"))
|
||||||
|
|
103
src/interface.py
103
src/interface.py
|
@ -564,7 +564,7 @@ window, please enter your password"))
|
||||||
"remove_torrent": self.remove_torrent_clicked,
|
"remove_torrent": self.remove_torrent_clicked,
|
||||||
"edit_trackers": self.list_of_trackers,
|
"edit_trackers": self.list_of_trackers,
|
||||||
"tor_start": self.tor_start,
|
"tor_start": self.tor_start,
|
||||||
"torrent_recheck": self.torrent_recheck,
|
"torrent_switch_recheck": self.torrent_switch_recheck,
|
||||||
"tor_pause": self.tor_pause,
|
"tor_pause": self.tor_pause,
|
||||||
"update_tracker": self.update_tracker,
|
"update_tracker": self.update_tracker,
|
||||||
"clear_finished": self.clear_finished,
|
"clear_finished": self.clear_finished,
|
||||||
|
@ -760,56 +760,71 @@ window, please enter your password"))
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def torrent_recheck(self, widget):
|
def torrent_switch_recheck(self, widget=None, switch=False):
|
||||||
unique_ids = self.get_selected_torrent_rows()
|
unique_ids = self.get_selected_torrent_rows()
|
||||||
for uid in unique_ids:
|
for uid in unique_ids:
|
||||||
torrent_state = self.manager.get_torrent_state(uid)
|
torrent_state = self.manager.get_torrent_state(uid)
|
||||||
order = torrent_state['queue_pos']
|
order = torrent_state['queue_pos']
|
||||||
path = self.manager.unique_IDs[uid].filename
|
path = self.manager.unique_IDs[uid].filename
|
||||||
save_dir = self.manager.unique_IDs[uid].save_dir
|
if not switch:
|
||||||
trackerslist = self.manager.unique_IDs[uid].trackers
|
save_dir = self.manager.unique_IDs[uid].save_dir
|
||||||
try:
|
|
||||||
trackers_changed = self.manager.unique_IDs[uid].trackers_changed
|
|
||||||
except AttributeError:
|
|
||||||
trackers_changed = 0
|
|
||||||
self.manager.save_upmem()
|
|
||||||
uploaded_memory = self.manager.unique_IDs[uid].uploaded_memory
|
|
||||||
priorities = self.manager.get_priorities(uid)
|
|
||||||
save_info = [path, save_dir, order, trackerslist, \
|
|
||||||
uploaded_memory, priorities, trackers_changed]
|
|
||||||
try:
|
|
||||||
os.remove(self.manager.unique_IDs[uid].filename + ".fastresume")
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
self.manager.remove_torrent(uid, False, False)
|
|
||||||
self.torrent_model_remove(uid)
|
|
||||||
self.update()
|
|
||||||
unique_ID = self.manager.add_torrent(save_info[0], save_info[1], \
|
|
||||||
self.config.get("use_compact_storage"))
|
|
||||||
self.torrent_model_append(unique_ID)
|
|
||||||
self.update()
|
|
||||||
self.manager.prioritize_files(unique_ID, save_info[5], update_files_removed=False)
|
|
||||||
if save_info[4]:
|
|
||||||
self.manager.unique_IDs[unique_ID].initial_uploaded_memory = \
|
|
||||||
save_info[4]
|
|
||||||
self.manager.save_upmem()
|
|
||||||
if save_info[6]:
|
|
||||||
try:
|
|
||||||
self.manager.replace_trackers(unique_ID, save_info[3])
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
torrent_state = self.manager.get_torrent_state(unique_ID)
|
|
||||||
current_order = torrent_state['queue_pos']
|
|
||||||
if current_order > save_info[2]:
|
|
||||||
diff = current_order - save_info[2]
|
|
||||||
for x in range(diff):
|
|
||||||
self.manager.queue_up(unique_ID)
|
|
||||||
self.update()
|
|
||||||
else:
|
else:
|
||||||
diff = save_info[2] - current_order
|
save_dir = dialogs.show_directory_chooser_dialog(self.window, \
|
||||||
for x in range(diff):
|
_("Choose a directory to switch torrent source to" + " - %s" % \
|
||||||
self.manager.queue_down(unique_ID)
|
self.manager.get_torrent_state(uid)['name']))
|
||||||
|
if save_dir:
|
||||||
|
delete_old = dialogs.show_popup_question(self.window, \
|
||||||
|
_("Delete the old torrent source?"))
|
||||||
|
else:
|
||||||
|
delete_old = False
|
||||||
|
if save_dir:
|
||||||
|
trackerslist = self.manager.unique_IDs[uid].trackers
|
||||||
|
try:
|
||||||
|
trackers_changed = self.manager.unique_IDs[uid].trackers_changed
|
||||||
|
except AttributeError:
|
||||||
|
trackers_changed = 0
|
||||||
|
self.manager.save_upmem()
|
||||||
|
uploaded_memory = self.manager.unique_IDs[uid].uploaded_memory
|
||||||
|
priorities = self.manager.get_priorities(uid)
|
||||||
|
save_info = [path, save_dir, order, trackerslist, \
|
||||||
|
uploaded_memory, priorities, trackers_changed, \
|
||||||
|
delete_old]
|
||||||
|
try:
|
||||||
|
os.remove(self.manager.unique_IDs[uid].filename + ".fastresume")
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
if save_info[7]:
|
||||||
|
self.manager.remove_torrent(uid, True, False)
|
||||||
|
else:
|
||||||
|
self.manager.remove_torrent(uid, False, False)
|
||||||
|
self.torrent_model_remove(uid)
|
||||||
self.update()
|
self.update()
|
||||||
|
unique_ID = self.manager.add_torrent(save_info[0], save_info[1], \
|
||||||
|
self.config.get("use_compact_storage"))
|
||||||
|
self.torrent_model_append(unique_ID)
|
||||||
|
self.update()
|
||||||
|
self.manager.prioritize_files(unique_ID, save_info[5], update_files_removed=False)
|
||||||
|
if save_info[4]:
|
||||||
|
self.manager.unique_IDs[unique_ID].initial_uploaded_memory = \
|
||||||
|
save_info[4]
|
||||||
|
self.manager.save_upmem()
|
||||||
|
if save_info[6]:
|
||||||
|
try:
|
||||||
|
self.manager.replace_trackers(unique_ID, save_info[3])
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
torrent_state = self.manager.get_torrent_state(unique_ID)
|
||||||
|
current_order = torrent_state['queue_pos']
|
||||||
|
if current_order > save_info[2]:
|
||||||
|
diff = current_order - save_info[2]
|
||||||
|
for x in range(diff):
|
||||||
|
self.manager.queue_up(unique_ID)
|
||||||
|
self.update()
|
||||||
|
else:
|
||||||
|
diff = save_info[2] - current_order
|
||||||
|
for x in range(diff):
|
||||||
|
self.manager.queue_down(unique_ID)
|
||||||
|
self.update()
|
||||||
|
|
||||||
def tor_start(self, widget):
|
def tor_start(self, widget):
|
||||||
unique_ids = self.get_selected_torrent_rows()
|
unique_ids = self.get_selected_torrent_rows()
|
||||||
|
|
Loading…
Reference in New Issue