import sys
import os
import wx
from ABC.Actions.actionbase import ABCAction
from Utility.constants import *#IGNORE:W0611
################################
#
################################
class PauseAll(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
'pauseall.bmp',
'pauseall',
kind = wx.ITEM_CHECK)
def action(self, event = None, release = True):
#Force All active to on-hold state
####################################
if (event is None or event.IsChecked()):
release = False
list = self.utility.window.getSelectedList()
self.utility.actionhandler.procPAUSE(release = release)
list.SetFocus()
################################
#
################################
class StopAll(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
'stopall.bmp',
'stopall',
menudesc = 'menu_stopall')
def action(self, event = None):
list = self.utility.window.getSelectedList()
self.utility.actionhandler.procSTOP()
list.SetFocus()
################################
#
################################
class UnStopAll(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
'unstopall.bmp',
'unstopall',
menudesc = 'menu_unstopall')
def action(self, event = None):
list = self.utility.window.getSelectedList()
self.utility.actionhandler.procUNSTOP()
list.SetFocus()
################################
#
################################
class Resume(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
'resume.bmp',
'tb_resume_short',
menudesc = 'rResume')
def action(self, event = None):
list = self.utility.window.getSelectedList()
self.utility.actionhandler.procRESUME(list.getTorrentSelected())
list.SetFocus()
################################
#
################################
#class ReseedResume(ABCAction):
# def __init__(self, utility):
# ABCAction.__init__(self,
# utility,
# 'reseedresume.bmp',
# 'tb_reseedresume_short',
# longdesc = 'tb_reseedresume_long',
# menudesc = 'tb_reseedresume_short')
#
# def action(self, event = None):
# list = self.utility.window.getSelectedList()
# self.utility.actionhandler.procRESUME(list.getTorrentSelected(), skipcheck = True)
# list.SetFocus()
################################
#
################################
class Pause(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
'pause.bmp',
'tb_pause_short',
longdesc = 'tb_pause_long',
menudesc = 'rPause')
def action(self, event = None):
list = self.utility.window.getSelectedList()
self.utility.actionhandler.procPAUSE(list.getTorrentSelected())
list.SetFocus()
################################
#
################################
class Stop(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
'stop.bmp',
'tb_stop_short',
longdesc = 'tb_stop_long',
menudesc = 'rStop')
def action(self, event = None):
list = self.utility.window.getSelectedList()
self.utility.actionhandler.procSTOP(list.getTorrentSelected())
list.SetFocus()
################################
#
################################
class Queue(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
'queue.bmp',
'tb_queue_short',
longdesc = 'tb_queue_long',
menudesc = 'rQueue')
def action(self, event = None):
list = self.utility.window.getSelectedList()
self.utility.actionhandler.procQUEUE(list.getTorrentSelected())
list.SetFocus()
################################
#
################################
class Scrape(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
'currentseedpeer.bmp',
'tb_spy_short',
longdesc = 'tb_spy_long',
menudesc = 'rcurrentseedpeer')
def action(self, event = None):
list = self.utility.window.getSelectedList()
# Multi-selected torrent scraping
for ABCTorrentTemp in list.getTorrentSelected():
ABCTorrentTemp.actions.scrape(faildialog = True, manualscrape = True)
################################
#
################################
class SuperSeed(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
menudesc = 'rsuperseedmode')
def action(self, event = None):
list = self.utility.window.getSelectedList()
for ABCTorrentTemp in list.getTorrentSelected():
ABCTorrentTemp.connection.superSeed()
################################
#
################################
class HashCheck(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
menudesc = 'rHashCheck')
def action(self, event = None):
list = self.utility.window.getSelectedList()
self.utility.actionhandler.procHASHCHECK(list.getTorrentSelected())
list.SetFocus()
################################
#
################################
class ClearMessage(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
menudesc = 'rclearmessage')
def action(self, event = None):
list = self.utility.window.getSelectedList()
selected = list.getTorrentSelected()
for ABCTorrentTemp in selected:
# For all torrents, active and inactive, we erase both the list and the message from the engine.
# This is to avoid active torrent to be erased with a little delay (up to 2 seconds) in the list
# by the refresh routine.
ABCTorrentTemp.changeMessage(type = "clear")
list.SetFocus()
################################
#
################################
class ChangePriority(ABCAction):
def __init__(self, utility):
ABCAction.__init__(self,
utility,
menudesc = 'rpriosetting')
self.priorities = [ self.utility.lang.get('rhighest'),
self.utility.lang.get('rhigh'),
self.utility.lang.get('rnormal'),
self.utility.lang.get('rlow'),
self.utility.lang.get('rlowest') ]
self.prioID = {}
for prio in self.priorities:
self.prioID[prio] = wx.NewId()
def action(self, event = None):
list = self.utility.window.getSelectedList()
selected = list.getTorrentSelected()
newprio = None
for prio in self.priorities:
id = self.prioID[prio]
if id == event.GetId():
newprio = self.priorities.index(prio)
for ABCTorrentTemp in selected:
ABCTorrentTemp.changePriority(newprio)
list.SetFocus()
def getCurrentPrio(self, prio = None):
list = self.utility.window.getSelectedList()
selected = list.getTorrentSelected(firstitemonly = True)
if not selected:
return None
ABCTorrentTemp = selected[0]
prio = ABCTorrentTemp.prio
if prio is None:
prio = self.utility.config.Read('defaultpriority')
return self.priorities[prio]
def addToMenu(self, menu, bindto = None):
if bindto is None:
bindto = menu
currentprio = self.getCurrentPrio()
if currentprio is None:
return
priomenu = wx.Menu()
for prio in self.priorities:
id = self.prioID[prio]
bindto.Bind(wx.EVT_MENU, self.action, id = id)
priomenu.Append(id, prio, prio, wx.ITEM_RADIO)
priomenu.Check(self.prioID[currentprio], True)
menu.AppendMenu(self.id, self.menudesc, priomenu)
return self.id
|