pyrrent fixes
parent
f90db90730
commit
337de1c95f
|
@ -306,7 +306,7 @@ class AnteoPlayer(xbmc.Player):
|
||||||
if not self.next_play:
|
if not self.next_play:
|
||||||
xbmc.sleep(3000)
|
xbmc.sleep(3000)
|
||||||
if not xbmcgui.Dialog().yesno(
|
if not xbmcgui.Dialog().yesno(
|
||||||
self.localize('Torrent2HTTP'),
|
self.localize('[%sPlayer v%s] ' % (author, __version__)),
|
||||||
self.localize('Would you like to play next episode?')):
|
self.localize('Would you like to play next episode?')):
|
||||||
break
|
break
|
||||||
self.contentId = self.next_contentId
|
self.contentId = self.next_contentId
|
||||||
|
@ -386,7 +386,7 @@ class AnteoPlayer(xbmc.Player):
|
||||||
dht_routers = ["router.bittorrent.com:6881","router.utorrent.com:6881"]
|
dht_routers = ["router.bittorrent.com:6881","router.utorrent.com:6881"]
|
||||||
user_agent = 'uTorrent/2200(24683)'
|
user_agent = 'uTorrent/2200(24683)'
|
||||||
self.pre_buffer_bytes = int(self.__settings__.getSetting("pre_buffer_bytes"))*1024*1024
|
self.pre_buffer_bytes = int(self.__settings__.getSetting("pre_buffer_bytes"))*1024*1024
|
||||||
showMessage('[%sPlayer v%s] ' % (author, __version__), self.localize('Please Wait'))
|
#showMessage('[%sPlayer v%s] ' % (author, __version__), self.localize('Please Wait'))
|
||||||
|
|
||||||
self.engine = Engine(uri=file_url(self.torrentUrl), download_path=self.userStorageDirectory,
|
self.engine = Engine(uri=file_url(self.torrentUrl), download_path=self.userStorageDirectory,
|
||||||
connections_limit=connections_limit, download_kbps=download_limit, upload_kbps=upload_limit,
|
connections_limit=connections_limit, download_kbps=download_limit, upload_kbps=upload_limit,
|
||||||
|
|
|
@ -156,44 +156,6 @@ class InposLoader:
|
||||||
torrent = Libtorrent(self.storageDirectory, self.torrentFile)
|
torrent = Libtorrent(self.storageDirectory, self.torrentFile)
|
||||||
return torrent.getContentList()
|
return torrent.getContentList()
|
||||||
|
|
||||||
'''def getContentList_engine(self):
|
|
||||||
self.setup_engine()
|
|
||||||
files = []
|
|
||||||
filelist = []
|
|
||||||
try:
|
|
||||||
self.engine.start()
|
|
||||||
#media_types=[MediaType.VIDEO, MediaType.AUDIO, MediaType.SUBTITLES, MediaType.UNKNOWN]
|
|
||||||
|
|
||||||
iterator = 0
|
|
||||||
text = Localization.localize('Magnet-link is converting') if self.magnetLink\
|
|
||||||
else Localization.localize('Opening torrent file')
|
|
||||||
while not files and not xbmc.abortRequested and iterator < 100:
|
|
||||||
files = self.engine.list()
|
|
||||||
self.engine.check_torrent_error()
|
|
||||||
if iterator==4:
|
|
||||||
progressBar = xbmcgui.DialogProgress()
|
|
||||||
progressBar.create(Localization.localize('Please Wait'),
|
|
||||||
Localization.localize('Magnet-link is converting'))
|
|
||||||
elif iterator>4:
|
|
||||||
progressBar.update(iterator, Localization.localize('Please Wait'),text+'.' * (iterator % 4), ' ')
|
|
||||||
if progressBar.iscanceled():
|
|
||||||
progressBar.update(0)
|
|
||||||
progressBar.close()
|
|
||||||
return []
|
|
||||||
xbmc.sleep(500)
|
|
||||||
iterator += 1
|
|
||||||
|
|
||||||
for fs in files:
|
|
||||||
stringdata = {"title": ensure_str(fs.name), "size": fs.size, "ind": fs.index,
|
|
||||||
'offset': fs.offset}
|
|
||||||
filelist.append(stringdata)
|
|
||||||
except:
|
|
||||||
import traceback
|
|
||||||
log(traceback.format_exc())
|
|
||||||
finally:
|
|
||||||
self.engine.close()
|
|
||||||
return filelist'''
|
|
||||||
|
|
||||||
def saveTorrent(self, torrentUrl):
|
def saveTorrent(self, torrentUrl):
|
||||||
#if not xbmcvfs.exists(torrentUrl) or re.match("^http.+$", torrentUrl):
|
#if not xbmcvfs.exists(torrentUrl) or re.match("^http.+$", torrentUrl):
|
||||||
if re.match("^magnet\:.+$", torrentUrl):
|
if re.match("^magnet\:.+$", torrentUrl):
|
||||||
|
@ -284,10 +246,11 @@ class InposPlayer(xbmc.Player):
|
||||||
self.init()
|
self.init()
|
||||||
self.setup_engine()
|
self.setup_engine()
|
||||||
try:
|
try:
|
||||||
self.engine.start(self.contentId)
|
self.engine.start()
|
||||||
self.setup_nextep()
|
self.setup_nextep()
|
||||||
while True:
|
self.engine.activate_file(self.contentId)
|
||||||
if self.buffer():
|
if self.buffer():
|
||||||
|
while True:
|
||||||
log('['+author+'Player]: ************************************* GOING LOOP')
|
log('['+author+'Player]: ************************************* GOING LOOP')
|
||||||
if self.setup_play():
|
if self.setup_play():
|
||||||
self.setup_subs()
|
self.setup_subs()
|
||||||
|
@ -301,13 +264,13 @@ class InposPlayer(xbmc.Player):
|
||||||
if not self.next_play:
|
if not self.next_play:
|
||||||
xbmc.sleep(3000)
|
xbmc.sleep(3000)
|
||||||
if not xbmcgui.Dialog().yesno(
|
if not xbmcgui.Dialog().yesno(
|
||||||
self.localize('Torrent2HTTP'),
|
self.localize('[%sPlayer v%s] ' % (author, __version__)),
|
||||||
self.localize('Would you like to play next episode?')):
|
self.localize('Would you like to play next episode?')):
|
||||||
break
|
break
|
||||||
self.contentId = self.next_contentId
|
self.contentId = self.next_contentId
|
||||||
continue
|
continue
|
||||||
log('['+author+'Player]: ************************************* NO! break')
|
log('['+author+'Player]: ************************************* NO! break')
|
||||||
break
|
break
|
||||||
except:
|
except:
|
||||||
import traceback
|
import traceback
|
||||||
log(traceback.format_exc())
|
log(traceback.format_exc())
|
||||||
|
@ -381,7 +344,8 @@ class InposPlayer(xbmc.Player):
|
||||||
dht_routers = ["router.bittorrent.com:6881","router.utorrent.com:6881"]
|
dht_routers = ["router.bittorrent.com:6881","router.utorrent.com:6881"]
|
||||||
user_agent = 'uTorrent/2200(24683)'
|
user_agent = 'uTorrent/2200(24683)'
|
||||||
self.pre_buffer_bytes = int(self.__settings__.getSetting("pre_buffer_bytes"))*1024*1024
|
self.pre_buffer_bytes = int(self.__settings__.getSetting("pre_buffer_bytes"))*1024*1024
|
||||||
showMessage('[%sPlayer v%s] ' % (author, __version__), self.localize('Please Wait'))
|
if self.__settings__.getSetting('debug') == 'true':
|
||||||
|
showMessage('[%sPlayer v%s] ' % (author, __version__), self.localize('Please Wait'))
|
||||||
|
|
||||||
self.engine = Engine(uri=file_url(self.torrentUrl), download_path=self.userStorageDirectory,
|
self.engine = Engine(uri=file_url(self.torrentUrl), download_path=self.userStorageDirectory,
|
||||||
connections_limit=connections_limit, download_kbps=download_limit, upload_kbps=upload_limit,
|
connections_limit=connections_limit, download_kbps=download_limit, upload_kbps=upload_limit,
|
||||||
|
@ -476,6 +440,7 @@ class InposPlayer(xbmc.Player):
|
||||||
label = os.path.basename(file_status.name)
|
label = os.path.basename(file_status.name)
|
||||||
self.basename = label
|
self.basename = label
|
||||||
self.seeding_run = False
|
self.seeding_run = False
|
||||||
|
self.next_dling = False
|
||||||
listitem = xbmcgui.ListItem(label, path=url)
|
listitem = xbmcgui.ListItem(label, path=url)
|
||||||
|
|
||||||
if self.next_dl:
|
if self.next_dl:
|
||||||
|
@ -510,6 +475,7 @@ class InposPlayer(xbmc.Player):
|
||||||
if thumbnail:
|
if thumbnail:
|
||||||
listitem.setThumbnailImage(urllib.unquote_plus(thumbnail))
|
listitem.setThumbnailImage(urllib.unquote_plus(thumbnail))
|
||||||
self.display_name = label
|
self.display_name = label
|
||||||
|
log(self.display_name)
|
||||||
|
|
||||||
player = xbmc.Player()
|
player = xbmc.Player()
|
||||||
player.play(url, listitem)
|
player.play(url, listitem)
|
||||||
|
@ -551,7 +517,7 @@ class InposPlayer(xbmc.Player):
|
||||||
with nested(self.attach(overlay.show, self.on_playback_paused),
|
with nested(self.attach(overlay.show, self.on_playback_paused),
|
||||||
self.attach(overlay.hide, self.on_playback_resumed, self.on_playback_stopped)):
|
self.attach(overlay.hide, self.on_playback_resumed, self.on_playback_stopped)):
|
||||||
while not xbmc.abortRequested and self.isPlaying():
|
while not xbmc.abortRequested and self.isPlaying():
|
||||||
#self.print_fulldebug()
|
self.print_fulldebug()
|
||||||
status = self.engine.status()
|
status = self.engine.status()
|
||||||
file_status = self.engine.file_status(self.contentId)
|
file_status = self.engine.file_status(self.contentId)
|
||||||
self.watchedTime = xbmc.Player().getTime()
|
self.watchedTime = xbmc.Player().getTime()
|
||||||
|
@ -571,11 +537,16 @@ class InposPlayer(xbmc.Player):
|
||||||
xbmc.Player().pause()
|
xbmc.Player().pause()
|
||||||
xbmc.sleep(1000)
|
xbmc.sleep(1000)
|
||||||
|
|
||||||
#if not self.seeding_run and self.iterator == 100 and self.seeding:
|
if self.iterator == 100 and self.next_dl and not self.next_dling and isinstance(self.next_contentId,
|
||||||
#self.seeding_run = True
|
int) and self.next_contentId != False:
|
||||||
#self.seed(self.contentId)
|
self.engine.activate_file(self.next_contentId)
|
||||||
#self.seeding_status = True
|
showMessage(self.localize('Torrent Downloading'),
|
||||||
# xbmc.sleep(7000)
|
self.localize('Starting download next episode!'), forced=True)
|
||||||
|
log('[loop]: next_contentId '+str(self.next_contentId)+str(isinstance(self.next_contentId, int)))
|
||||||
|
file_status = self.engine.file_status(self.next_contentId)
|
||||||
|
self.basename = self.display_name = os.path.basename(file_status.name)
|
||||||
|
|
||||||
|
self.next_dling = True
|
||||||
|
|
||||||
def onPlayBackStarted(self):
|
def onPlayBackStarted(self):
|
||||||
for f in self.on_playback_started:
|
for f in self.on_playback_started:
|
||||||
|
@ -607,7 +578,7 @@ class InposPlayer(xbmc.Player):
|
||||||
|
|
||||||
def _get_status_lines(self, s, f):
|
def _get_status_lines(self, s, f):
|
||||||
return [
|
return [
|
||||||
encode_msg(self.display_name),
|
self.display_name.encode('utf-8'),
|
||||||
"%.2f%% %s" % (f.progress * 100, self.localize(STATE_STRS[s.state])),
|
"%.2f%% %s" % (f.progress * 100, self.localize(STATE_STRS[s.state])),
|
||||||
"D:%.2f%s U:%.2f%s S:%d P:%d" % (s.download_rate, self.localize('kb/s'),
|
"D:%.2f%s U:%.2f%s S:%d P:%d" % (s.download_rate, self.localize('kb/s'),
|
||||||
s.upload_rate, self.localize('kb/s'),
|
s.upload_rate, self.localize('kb/s'),
|
||||||
|
|
|
@ -2053,7 +2053,11 @@ def uri2path(uri):
|
||||||
|
|
||||||
def localize_path(path):
|
def localize_path(path):
|
||||||
import chardet
|
import chardet
|
||||||
if not isinstance(path, unicode): path = path.decode(chardet.detect(path)['encoding'])
|
if not isinstance(path, unicode):
|
||||||
|
try:
|
||||||
|
path = path.decode(chardet.detect(path).get('encoding') or 'utf-8')
|
||||||
|
except:
|
||||||
|
pass
|
||||||
if not sys.platform.startswith('win'):
|
if not sys.platform.startswith('win'):
|
||||||
path = encode_msg(path)
|
path = encode_msg(path)
|
||||||
return path
|
return path
|
||||||
|
|
Loading…
Reference in New Issue