Убрал ненужный platform.py
parent
e2091338b7
commit
01e590c8e5
|
@ -12,7 +12,6 @@ import pyrrent2http
|
||||||
import mimetypes
|
import mimetypes
|
||||||
import xbmc
|
import xbmc
|
||||||
from error import Error
|
from error import Error
|
||||||
from platform import Platform
|
|
||||||
from . import SessionStatus, FileStatus, PeerInfo, MediaType, Encryption
|
from . import SessionStatus, FileStatus, PeerInfo, MediaType, Encryption
|
||||||
from util import can_bind, find_free_port, ensure_fs_encoding
|
from util import can_bind, find_free_port, ensure_fs_encoding
|
||||||
import threading
|
import threading
|
||||||
|
@ -26,74 +25,13 @@ class Engine:
|
||||||
SUBTITLES_FORMATS = ['.aqt', '.gsub', '.jss', '.sub', '.ttxt', '.pjs', '.psb', '.rt', '.smi', '.stl',
|
SUBTITLES_FORMATS = ['.aqt', '.gsub', '.jss', '.sub', '.ttxt', '.pjs', '.psb', '.rt', '.smi', '.stl',
|
||||||
'.ssf', '.srt', '.ssa', '.ass', '.usf', '.idx']
|
'.ssf', '.srt', '.ssa', '.ass', '.usf', '.idx']
|
||||||
|
|
||||||
__to_del = '''def _ensure_binary_executable(self, path):
|
|
||||||
st = os.stat(path)
|
|
||||||
if not st.st_mode & stat.S_IEXEC:
|
|
||||||
try:
|
|
||||||
self._log("%s is not executable, trying to change its mode..." % path)
|
|
||||||
os.chmod(path, st.st_mode | stat.S_IEXEC)
|
|
||||||
except Exception, e:
|
|
||||||
self._log("Failed! Exception: %s" % str(e))
|
|
||||||
return False
|
|
||||||
st = os.stat(path)
|
|
||||||
if st.st_mode & stat.S_IEXEC:
|
|
||||||
self._log("Succeeded")
|
|
||||||
return True
|
|
||||||
else:
|
|
||||||
self._log("Failed")
|
|
||||||
return False
|
|
||||||
return True
|
|
||||||
'''
|
|
||||||
def _log(self, message):
|
def _log(self, message):
|
||||||
if self.logger:
|
if self.logger:
|
||||||
self.logger(message)
|
self.logger(message)
|
||||||
else:
|
else:
|
||||||
xbmc.log("[pyrrent2http] %s" % message)
|
xbmc.log("[pyrrent2http] %s" % message)
|
||||||
|
|
||||||
__to_del = '''def _get_binary_path(self, binaries_path):
|
|
||||||
"""
|
|
||||||
Detects platform and returns corresponding pyrrent2http binary path
|
|
||||||
|
|
||||||
:param binaries_path:
|
|
||||||
:return: pyrrent2http binary path
|
|
||||||
"""
|
|
||||||
binary = "torrent2http" + (".exe" if self.platform.system == 'windows' else "")
|
|
||||||
binary_dir = os.path.join(binaries_path, "%s_%s" % (self.platform.system, self.platform.arch))
|
|
||||||
binary_path = os.path.join(binary_dir, binary)
|
|
||||||
lm=LibraryManager(binary_dir, "%s_%s" % (self.platform.system, self.platform.arch))
|
|
||||||
if not os.path.isfile(binary_path):
|
|
||||||
success=lm.download()
|
|
||||||
if not success:
|
|
||||||
raise Error("Can't find torrent2http or download binary for %s" % self.platform,
|
|
||||||
Error.UNKNOWN_PLATFORM, platform=str(self.platform))
|
|
||||||
#This is needed only if bin in folder that not deletes on update!
|
|
||||||
#else: lm.update()
|
|
||||||
|
|
||||||
if not self._ensure_binary_executable(binary_path):
|
|
||||||
if self.platform.system == "android":
|
|
||||||
self._log("Trying to copy torrent2http to ext4, since the sdcard is noexec...")
|
|
||||||
xbmc_home = os.environ.get('XBMC_HOME') or os.environ.get('KODI_HOME')
|
|
||||||
if not xbmc_home:
|
|
||||||
raise Error("Suppose we are running XBMC, but environment variable "
|
|
||||||
"XBMC_HOME or KODI_HOME is not found", Error.XBMC_HOME_NOT_DEFINED)
|
|
||||||
base_xbmc_path = dirname(dirname(dirname(xbmc_home)))
|
|
||||||
android_binary_dir = os.path.join(base_xbmc_path, "files")
|
|
||||||
if not os.path.exists(android_binary_dir):
|
|
||||||
os.makedirs(android_binary_dir)
|
|
||||||
android_binary_path = os.path.join(android_binary_dir, binary)
|
|
||||||
if not os.path.exists(android_binary_path) or \
|
|
||||||
int(os.path.getmtime(android_binary_path)) < int(os.path.getmtime(binary_path)):
|
|
||||||
import shutil
|
|
||||||
shutil.copy2(binary_path, android_binary_path)
|
|
||||||
if not self._ensure_binary_executable(android_binary_path):
|
|
||||||
raise Error("Can't make %s executable" % android_binary_path, Error.NOEXEC_FILESYSTEM)
|
|
||||||
binary_path = android_binary_path
|
|
||||||
else:
|
|
||||||
raise Error("Can't make %s executable, ensure it's placed on exec partition and "
|
|
||||||
"partition is in read/write mode" % binary_path, Error.NOEXEC_FILESYSTEM)
|
|
||||||
self._log("Selected %s as torrent2http binary" % binary_path)
|
|
||||||
return binary_path
|
|
||||||
'''
|
|
||||||
def __init__(self, uri=None, platform=None, download_path=".",
|
def __init__(self, uri=None, platform=None, download_path=".",
|
||||||
bind_host='127.0.0.1', bind_port=5001, connections_limit=None, download_kbps=None, upload_kbps=None,
|
bind_host='127.0.0.1', bind_port=5001, connections_limit=None, download_kbps=None, upload_kbps=None,
|
||||||
enable_dht=True, enable_lsd=True, enable_natpmp=True, enable_upnp=True, enable_scrape=False,
|
enable_dht=True, enable_lsd=True, enable_natpmp=True, enable_upnp=True, enable_scrape=False,
|
||||||
|
@ -164,7 +102,6 @@ class Engine:
|
||||||
self.platform = platform
|
self.platform = platform
|
||||||
self.bind_host = bind_host
|
self.bind_host = bind_host
|
||||||
self.bind_port = bind_port
|
self.bind_port = bind_port
|
||||||
# self.binaries_path = binaries_path or os.path.join(dirname(dirname(dirname(os.path.abspath(__file__)))), 'bin')
|
|
||||||
self.download_path = download_path
|
self.download_path = download_path
|
||||||
self.connections_limit = connections_limit
|
self.connections_limit = connections_limit
|
||||||
self.download_kbps = download_kbps
|
self.download_kbps = download_kbps
|
||||||
|
@ -196,8 +133,6 @@ class Engine:
|
||||||
self.debug_alerts = debug_alerts
|
self.debug_alerts = debug_alerts
|
||||||
self.logger = logger
|
self.logger = logger
|
||||||
self.uri = uri
|
self.uri = uri
|
||||||
self.logpipe = None
|
|
||||||
# self.process = None
|
|
||||||
self.started = False
|
self.started = False
|
||||||
|
|
||||||
|
|
||||||
|
@ -228,8 +163,6 @@ class Engine:
|
||||||
:param start_index: File index to start download instantly, if not specified, downloading will be paused, until
|
:param start_index: File index to start download instantly, if not specified, downloading will be paused, until
|
||||||
any file requested
|
any file requested
|
||||||
"""
|
"""
|
||||||
self.platform = self.platform or Platform()
|
|
||||||
# binary_path = self._get_binary_path(self.binaries_path)
|
|
||||||
download_path = self._validate_save_path(self.download_path)
|
download_path = self._validate_save_path(self.download_path)
|
||||||
if not can_bind(self.bind_host, self.bind_port):
|
if not can_bind(self.bind_host, self.bind_port):
|
||||||
port = find_free_port(self.bind_host)
|
port = find_free_port(self.bind_host)
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
from __future__ import absolute_import
|
|
||||||
from platform import uname
|
|
||||||
from .error import Error
|
|
||||||
import sys
|
|
||||||
import os
|
|
||||||
|
|
||||||
|
|
||||||
class Platform:
|
|
||||||
def __init__(self):
|
|
||||||
self.arch = self.arch()
|
|
||||||
self.system = self.system()
|
|
||||||
|
|
||||||
def __str__(self):
|
|
||||||
return "%s/%s" % (self.system, self.arch)
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def arch():
|
|
||||||
if sys.platform.lower().startswith('linux') and (uname()[4].lower().startswith('arm') or
|
|
||||||
uname()[4].lower().startswith('aarch')):
|
|
||||||
if uname()[4].lower().startswith('armv6'):
|
|
||||||
return "armv6"
|
|
||||||
return 'arm'
|
|
||||||
elif sys.maxsize > 2**32:
|
|
||||||
return 'x64'
|
|
||||||
else:
|
|
||||||
return 'x86'
|
|
||||||
|
|
||||||
@staticmethod
|
|
||||||
def system():
|
|
||||||
if sys.platform.startswith('linux'):
|
|
||||||
if 'ANDROID_DATA' in os.environ:
|
|
||||||
return 'android'
|
|
||||||
else:
|
|
||||||
return 'linux'
|
|
||||||
elif sys.platform.startswith('win'):
|
|
||||||
return 'windows'
|
|
||||||
elif sys.platform.startswith('darwin'):
|
|
||||||
return 'darwin'
|
|
||||||
else:
|
|
||||||
raise Error("Platform %s is unknown" % sys.platform, Error.UNKNOWN_PLATFORM,
|
|
||||||
platform=sys.platform)
|
|
Loading…
Reference in New Issue