本文整理汇总了Python中xmlrpclib.ServerProxy.append方法的典型用法代码示例。如果您正苦于以下问题:Python ServerProxy.append方法的具体用法?Python ServerProxy.append怎么用?Python ServerProxy.append使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xmlrpclib.ServerProxy
的用法示例。
在下文中一共展示了ServerProxy.append方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: tonzbget
# 需要导入模块: from xmlrpclib import ServerProxy [as 别名]
# 或者: from xmlrpclib.ServerProxy import append [as 别名]
def tonzbget(self, args, hname):
if ('data' not in args):
return 0
if ('nzbget_url' in self.cgen):
if (len(self.cgen['nzbget_url'])):
rq_url = 'http://' + self.cgen['nzbget_user'] + ':' + self.cgen['nzbget_pwd'] + '@' + self.cgen[
'nzbget_url'] + '/xmlrpc'
print rq_url
try:
server = ServerProxy(rq_url)
except Exception as e:
print 'Error contacting NZBGET ' + str(e)
return 0
try:
myrq = args['data'].replace("warp?", "")
pulrlparse = dict(urlparse.parse_qsl(myrq))
if ('m' in args):
pulrlparse['m'] = args['m']
# ~ print pulrlparse
res = self.wrp.beam(pulrlparse)
# ~ print res.headers
if ('Location' in res.headers):
# ~ for redirect
log.info('tonzbget: Warp is treated as 302 redirector')
geturl_rq = res.headers['Location']
r = requests.get(geturl_rq, verify=False)
nzbname = 'nzbfromNZBmegasearcH'
if ('content-disposition' in r.headers):
rheaders = r.headers['content-disposition']
idxsfind = rheaders.find('=')
if (idxsfind != -1):
nzbname = rheaders[idxsfind + 1:len(rheaders)].replace('"', '')
nzbcontent64 = standard_b64encode(r.content)
server.append(nzbname, '', False, nzbcontent64)
else:
# ~ for downloaded
log.info('tonzbget: Warp gets full content')
nzbname = 'nzbfromNZBmegasearcH'
if ('content-disposition' in res.headers):
rheaders = res.headers['content-disposition']
idxsfind = rheaders.find('=')
if (idxsfind != -1):
nzbname = rheaders[idxsfind + 1:len(rheaders)].replace('"', '')
# ~ print res.data
nzbcontent64 = standard_b64encode(res.data)
server.append(nzbname, '', False, nzbcontent64)
except Exception as e:
# ~ print 'Error connecting server or downloading nzb '+str(e)
log.info('Error connecting server or downloading nzb: ' + str(e))
return 0
return 1
示例2: tonzbget
# 需要导入模块: from xmlrpclib import ServerProxy [as 别名]
# 或者: from xmlrpclib.ServerProxy import append [as 别名]
def tonzbget(self, args, hname):
if ('data' not in args):
return 0
if ('nzbget_url' in self.cgen):
if (len(self.cgen['nzbget_url'])):
rq_url = self.cgen['nzbget_scheme'] + '://' + self.cgen['nzbget_user'] + ':' + self.cgen['nzbget_pwd'] + '@' + self.cgen['nzbget_url_port'] + '/xmlrpc'
print rq_url
try:
server = ServerProxy(rq_url)
except Exception as e:
print 'Error contacting NZBGET ' + str(e)
return 0
try:
# ~ print args
NZBFilename = 'nzbFromNZNMegaSearch'
urlToFetch = args['data']
print 'Fetching URL preStrip: "' + urlToFetch + '"'
urlToFetch = urlToFetch.strip()
print 'Fetching URL: "' + urlToFetch + '"'
# Download file to send to NZBGet
nzbFileRequest = requests.get(urlToFetch, verify=False)
nzbcontent64 = standard_b64encode(nzbFileRequest.content)
# Get Filename from file header
rheaders = nzbFileRequest.headers['content-disposition']
idxsfind = rheaders.find('=')
NZBFilename = rheaders[idxsfind + 1:len(rheaders)].replace('"', '')
# Send to NZBGet
sendToServer = server.append(NZBFilename, nzbcontent64,'',0,False,False,'',0,'SCORE')
print 'Send to Server code: ' + str(sendToServer)
#myrq = args['data'].replace("warp?", "")
#pulrlparse = dict(urlparse.parse_qsl(myrq))
#if ('m' in args):
# pulrlparse['m'] = args['m']
#print pulrlparse
#res = self.wrp.beam(pulrlparse)
# ~ print res.headers
#if ('Location' in res.headers):
# # ~ for redirect
# log.info('tonzbget: Warp is treated as 302 redirector')
# geturl_rq = res.headers['Location']
# r = requests.get(geturl_rq, verify=False)
# nzbname = 'nzbfromNZBmegasearcH'
# if ('content-disposition' in r.headers):
# rheaders = r.headers['content-disposition']
# idxsfind = rheaders.find('=')
# if (idxsfind != -1):
# nzbname = rheaders[idxsfind + 1:len(rheaders)].replace('"', '')
# nzbcontent64 = standard_b64encode(r.content)
# server.append(nzbname, '', False, nzbcontent64)
#else:
# # ~ for downloaded
# log.info('tonzbget: Warp gets full content')
# nzbname = 'nzbfromNZBmegasearcH'
# if ('content-disposition' in res.headers):
# rheaders = res.headers['content-disposition']
# idxsfind = rheaders.find('=')
# if (idxsfind != -1):
# nzbname = rheaders[idxsfind + 1:len(rheaders)].replace('"', '')
# # ~ print res.data
# nzbcontent64 = standard_b64encode(res.data)
# server.append(nzbname, '', False, nzbcontent64)
except Exception as e:
# ~ print 'Error connecting server or downloading nzb '+str(e)
log.info('Error connecting server or downloading nzb: ' + str(e))
return 0
return 1
示例3: __init__
# 需要导入模块: from xmlrpclib import ServerProxy [as 别名]
# 或者: from xmlrpclib.ServerProxy import append [as 别名]
class Nzbget:
def __init__(self, options, session):
self.options = options
self.session = session
self.api = ServerProxy(nzbget_rpcurl)
self.prepare_session()
self.process = subprocess.Popen([nzbget_bin, '-c', nzbget_configfile, '-s', '-o', 'outputmode=log'])
self.wait_until_started()
def finalize(self):
if pytest.config.getoption("--hold"):
print('\nNZBGet is still running, press Ctrl+C to quit')
time.sleep(100000)
self.process.kill()
if not has_failures:
self.remove_tempdir()
def remove_tempdir(self):
attempt = 1
completed = False
while not completed:
try:
if os.path.exists(nzbget_maindir + '.old'):
shutil.rmtree(nzbget_maindir + '.old')
if os.path.exists(nzbget_maindir):
os.rename(nzbget_maindir, nzbget_maindir + '.old')
shutil.rmtree(nzbget_maindir + '.old')
completed = True
except Exception:
if attempt > 20:
raise
attempt += 1
time.sleep(0.2)
def prepare_session(self):
self.remove_tempdir()
os.makedirs(nzbget_maindir)
config = open(nzbget_configfile, 'w')
config.write('MainDir=' + nzbget_maindir + '\n')
config.write('DestDir=${MainDir}/complete\n')
config.write('InterDir=${MainDir}/intermediate\n')
config.write('TempDir=${MainDir}/temp\n')
config.write('QueueDir=${MainDir}/queue\n')
config.write('NzbDir=${MainDir}/nzb\n')
config.write('LogFile=${MainDir}/nzbget.log\n')
config.write('SevenZipCmd=' + sevenzip_bin + '\n')
config.write('WriteLog=append\n')
config.write('DetailTarget=log\n')
config.write('InfoTarget=log\n')
config.write('WarningTarget=log\n')
config.write('ErrorTarget=log\n')
config.write('DebugTarget=none\n')
config.write('CrashTrace=no\n')
config.write('CrashDump=yes\n')
config.write('ContinuePartial=no\n')
config.write('DirectWrite=yes\n')
config.write('ArticleCache=500\n')
config.write('WriteBuffer=1024\n')
config.write('NzbDirInterval=0\n')
config.write('FlushQueue=no\n')
config.write('WebDir=' + nzbget_srcdir + '/webui\n')
config.write('ConfigTemplate=' + nzbget_srcdir + '/nzbget.conf\n')
config.write('ControlUsername=\n')
config.write('ControlPassword=\n')
config.write('ControlIP=127.0.0.1\n')
config.write('Server1.host=127.0.0.1\n')
config.write('Server1.port=6791\n')
config.write('Server1.connections=10\n')
config.write('Server1.level=0\n')
config.write('Server2.host=127.0.0.1\n')
config.write('Server2.port=6792\n')
config.write('Server2.connections=10\n')
config.write('Server2.level=1\n')
config.write('Server2.active=no\n')
for opt in self.options:
config.write(opt + '\n')
def wait_until_started(self):
print('Waiting for nzbget to start')
stat = None
for x in range(0, 3):
try:
stat = self.api.status()
except Exception:
time.sleep(0.5)
if stat is None:
raise Exception('Could not start nzbget')
print('Started')
def append_nzb(self, nzb_name, nzb_content, unpack = None, dupekey = '', dupescore = 0, dupemode = 'FORCE', params = None):
nzbcontent64 = base64.standard_b64encode(nzb_content)
if params is None:
params = []
if unpack == True:
params.append(('*unpack:', 'yes'))
elif unpack == False:
params.append(('*unpack:', 'no'))
return self.api.append(nzb_name, nzbcontent64, 'test', 0, False, False, dupekey, dupescore, dupemode, params)
#.........这里部分代码省略.........
示例4: __init__
# 需要导入模块: from xmlrpclib import ServerProxy [as 别名]
# 或者: from xmlrpclib.ServerProxy import append [as 别名]
#.........这里部分代码省略.........
result['DownloadRateFormated']=self.get_format_size(result['DownloadRate'])
result['RemainingSizeLoFormated']=self.get_format_size(result['RemainingSizeMB']*1024*1024)
result['DownloadedSizeLoFormated']=self.get_format_size(result['DownloadedSizeMB']*1024*1024)
#| bug with DownloadedSizeLo that does not show the correct value???
result['AverageDownloadRateFormated']=self.get_format_size(result['AverageDownloadRate'])
return (0,result)
def get_url_queue(self):
try:
result=self._server.urlqueue()
except:
return (1,None)
return (0,result)
def get_list_groups(self):
try:
result=self._server.listgroups()
except:
return (1,None)
for i in range(len(result)):
result[i]['RemainingSizeLoFormated']=self.get_format_size(result[i]['RemainingSizeLo'])
result[i]['FileSizeLoFormated']=self.get_format_size(result[i]['FileSizeMB']*1024*1024)
result[i]['DownloadedFormated']=self.get_format_size((result[i]['FileSizeMB']-result[i]['RemainingSizeMB'])*1024*1024)
return (0,result)
def get_history(self):
try:
result=self._server.history()
except:
return (1,None)
for i in range(min(len(result),10)):
result[i]['FileSizeLoFormated']=self.get_format_size(result[i]['FileSizeMB']*1024*1024)
if result[i]['UnpackStatus']=="SUCCESS":
status="Success"
color="green"
else:
if result[i]['DeleteStatus']!='None':
status="Deleted"
color="orange"
else:
status="Failed"
color="red"
result[i]['status']=status
result[i]['color']=color
result[i]['DestDir']=result[i]['DestDir'].split('/')[-1]
if len(result)>10:
result=result[0:10]
return (0,result)
def get_post_queue(self):
try:
result=self._server.postqueue(10)
except:
return (1,None)
for i in range(len(result)):
result[i]['StageProgress']=int(result[i]['StageProgress']/10)
return (0,result)
def add_nzb(self,filename,category,addtotop):
try:
in_file = open(filename, "r")
nzbcontent = in_file.read()
in_file.close()
nzbcontent64=standard_b64encode(nzbcontent)
self._server.append(filename,category,addtotop,nzbcontent64)
except:
return (1,None)
return (0,None)
def delete_package(self,id):
try:
result=self._server.editqueue('GroupDelete',0,'',[int(id)])
except:
return (1,None)
if result:
return 0
return 11
def get_error_str(self,error):
errorstr={0:'No Error',1:'Connexion to nzbget api failed',11:'Deletion failed'}
if error in errorstr.keys():
return errorstr[error]
return 'Unknown error'
def start_process(self):
return process.execute(self._start)
def stop_process(self):
return process.execute(self._stop)