Исправил resume
parent
dbba38b27d
commit
e98f85d43c
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<addon id="script.module.pyrrent2http" name="pyrrent2http" version="0.8.2" provider-name="inpos">
|
<addon id="script.module.pyrrent2http" name="pyrrent2http" version="0.8.3" provider-name="inpos">
|
||||||
<requires>
|
<requires>
|
||||||
<import addon="xbmc.python" version="2.14.0"/>
|
<import addon="xbmc.python" version="2.14.0"/>
|
||||||
<import addon="script.module.libtorrent" />
|
<import addon="script.module.libtorrent" />
|
||||||
|
|
|
@ -1,2 +1,5 @@
|
||||||
|
[B]Version 0.8.3[/B]
|
||||||
|
+ Исправил быстрый запуск (fix fast resume)
|
||||||
|
|
||||||
[B]Version 0.5.0[/B]
|
[B]Version 0.5.0[/B]
|
||||||
+ Initial release
|
+ Initial release
|
||||||
|
|
|
@ -163,6 +163,7 @@ class TorrentFile(object):
|
||||||
if self.filePtr is None:
|
if self.filePtr is None:
|
||||||
while not os.path.exists(self.save_path):
|
while not os.path.exists(self.save_path):
|
||||||
logging.info('Waiting for file: %s' % (self.save_path,))
|
logging.info('Waiting for file: %s' % (self.save_path,))
|
||||||
|
self.tfs.handle.flush_cache()
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
self.filePtr = io.open(self.save_path, 'rb')
|
self.filePtr = io.open(self.save_path, 'rb')
|
||||||
return self.filePtr
|
return self.filePtr
|
||||||
|
@ -606,7 +607,8 @@ class Pyrrent2http(object):
|
||||||
logging.info('Loading resume file: %s' % (self.config.resumeFile,))
|
logging.info('Loading resume file: %s' % (self.config.resumeFile,))
|
||||||
try:
|
try:
|
||||||
with open(self.config.resumeFile, 'rb') as f:
|
with open(self.config.resumeFile, 'rb') as f:
|
||||||
torrentParams['resume_data'] = lt.bencode(f.read())
|
torrentParams["auto_managed"] = True
|
||||||
|
torrentParams['resume_data'] = f.read()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
strerror = e.args
|
strerror = e.args
|
||||||
logging.error(strerror)
|
logging.error(strerror)
|
||||||
|
@ -863,10 +865,10 @@ class Pyrrent2http(object):
|
||||||
def consumeAlerts(self):
|
def consumeAlerts(self):
|
||||||
alerts = self.session.pop_alerts()
|
alerts = self.session.pop_alerts()
|
||||||
for alert in alerts:
|
for alert in alerts:
|
||||||
if isinstance(alert, lt.save_resume_data_alert):
|
if type(alert) == lt.save_resume_data_alert:
|
||||||
self.processSaveResumeDataAlert(alert)
|
self.processSaveResumeDataAlert(alert)
|
||||||
break
|
break
|
||||||
def waitForAlert(self, alertClass, timeout):
|
def waitForAlert(self, alert_type, timeout):
|
||||||
start = time.time()
|
start = time.time()
|
||||||
while True:
|
while True:
|
||||||
alert = self.session.wait_for_alert(100)
|
alert = self.session.wait_for_alert(100)
|
||||||
|
@ -874,7 +876,7 @@ class Pyrrent2http(object):
|
||||||
return None
|
return None
|
||||||
if alert is not None:
|
if alert is not None:
|
||||||
alert = self.session.pop_alert()
|
alert = self.session.pop_alert()
|
||||||
if isinstance(alert, alertClass):
|
if type(alert) == alert_type:
|
||||||
return alert
|
return alert
|
||||||
def loop(self):
|
def loop(self):
|
||||||
self.statsTicker = Ticker(30)
|
self.statsTicker = Ticker(30)
|
||||||
|
@ -910,7 +912,7 @@ class Pyrrent2http(object):
|
||||||
def saveResumeData(self, async = False):
|
def saveResumeData(self, async = False):
|
||||||
if not self.torrentHandle.status().need_save_resume or self.config.resumeFile == '':
|
if not self.torrentHandle.status().need_save_resume or self.config.resumeFile == '':
|
||||||
return False
|
return False
|
||||||
self.torrentHandle.save_resume_data(3)
|
self.torrentHandle.save_resume_data(lt.save_resume_flags_t.flush_disk_cache)
|
||||||
if not async:
|
if not async:
|
||||||
alert = self.waitForAlert(lt.save_resume_data_alert, 5)
|
alert = self.waitForAlert(lt.save_resume_data_alert, 5)
|
||||||
if alert == None:
|
if alert == None:
|
||||||
|
@ -957,7 +959,6 @@ class Pyrrent2http(object):
|
||||||
files = []
|
files = []
|
||||||
flag = 0
|
flag = 0
|
||||||
state = self.torrentHandle.status().state
|
state = self.torrentHandle.status().state
|
||||||
#if state != state.checking_files and state != state.queued_for_checking and not self.config.keepFiles:
|
|
||||||
if state != state.checking_files and not self.config.keepFiles:
|
if state != state.checking_files and not self.config.keepFiles:
|
||||||
if not self.config.keepComplete and not self.config.keepIncomplete:
|
if not self.config.keepComplete and not self.config.keepIncomplete:
|
||||||
flag = int(lt.options_t.delete_files)
|
flag = int(lt.options_t.delete_files)
|
||||||
|
@ -975,7 +976,6 @@ class Pyrrent2http(object):
|
||||||
self.statsTicker.stop()
|
self.statsTicker.stop()
|
||||||
self.saveResumeDataTicker.stop()
|
self.saveResumeDataTicker.stop()
|
||||||
self.httpListener.shutdown()
|
self.httpListener.shutdown()
|
||||||
#self.main_alive.clear()
|
|
||||||
self.TorrentFS.Shutdown()
|
self.TorrentFS.Shutdown()
|
||||||
if self.session != None:
|
if self.session != None:
|
||||||
self.session.pause()
|
self.session.pause()
|
||||||
|
|
Loading…
Reference in New Issue