diff --git a/channels/polpotv.py b/channels/polpotv.py index 5b813251..096013ea 100644 --- a/channels/polpotv.py +++ b/channels/polpotv.py @@ -18,13 +18,21 @@ list_quality = ['1080p','720p','480p','360p'] @support.menu def mainlist(item): - menu = [ - ('Ultimi Film aggiunti', ['/api/movies', 'peliculas', '']), - ('Ultime Serie TV aggiunte', ['/api/shows', 'peliculas', '']), - ('Generi', ['/api/genres', 'search_movie_by_genre', '']), - ('Anni {film}', ['', 'search_movie_by_year', '']), - ('Cerca... bold', ['', 'search', '']) - ] + # menu = [ + # ('Ultimi Film aggiunti', ['/api/movies', 'peliculas', '']), + # ('Ultime Serie TV aggiunte', ['/api/shows', 'peliculas', '']), + # ('Generi', ['/api/genres', 'search_movie_by_genre', '']), + # ('Anni {film}', ['', 'search_movie_by_year', '']), + # ('Cerca... bold', ['', 'search', '']) + # ] + film = ['/api/movies', + ('Generi', ['/api/genres', 'search_movie_by_genre', '']), + ('Anni', ['', 'search_movie_by_year', '']),] + + tvshow=['/api/shows'] + + search='' + return locals() def newest(categoria): diff --git a/core/channeltools.py b/core/channeltools.py index d42cc7ce..b9209ef1 100644 --- a/core/channeltools.py +++ b/core/channeltools.py @@ -261,7 +261,7 @@ def get_channel_setting(name, channel, default=None): Devuelve el valor del parametro 'name' en la configuracion propia del canal 'channel'. - Busca en la ruta \addon_data\plugin.video.alfa\settings_channels el archivo channel_data.json y lee + Busca en la ruta \addon_data\plugin.video.kod\settings_channels el archivo channel_data.json y lee el valor del parametro 'name'. Si el archivo channel_data.json no existe busca en la carpeta channels el archivo channel.json y crea un archivo channel_data.json antes de retornar el valor solicitado. Si el parametro 'name' tampoco existe en el el archivo channel.json se devuelve el parametro default. @@ -320,7 +320,7 @@ def set_channel_setting(name, value, channel): Establece 'value' como el valor del parametro 'name' en la configuracion propia del canal 'channel'. Devuelve el valor cambiado o None si la asignacion no se ha podido completar. - Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.alfa\settings_channels el + Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.kod\settings_channels el archivo channel_data.json y establece el parametro 'name' al valor indicado por 'value'. Si el parametro 'name' no existe lo añade, con su valor, al archivo correspondiente. diff --git a/core/item.py b/core/item.py index 0c93a18e..1476af22 100644 --- a/core/item.py +++ b/core/item.py @@ -353,7 +353,7 @@ class Item(object): def fromurl(self, url): """ Genera un item a partir de una cadena de texto. La cadena puede ser creada por la funcion tourl() o tener - el formato antiguo: plugin://plugin.video.alfa/?channel=... (+ otros parametros) + el formato antiguo: plugin://plugin.video.kod/?channel=... (+ otros parametros) Uso: item.fromurl("cadena") @param url: url diff --git a/core/support.py b/core/support.py index f8fba51f..adfdf4cb 100755 --- a/core/support.py +++ b/core/support.py @@ -727,62 +727,45 @@ def typo(string, typography=''): kod_color = '0xFF65B3DA' #'0xFF0081C2' try: string = str(string) except: string = str(string.encode('utf8')) - - typography2 = match(string, patron=r'\{([^\}]+)\}').match - # Check if the typographic attributes are in the string or outside - if typography2: - string = re.sub(r'(\s*\{[^\}]+\})', '', string) - typography += ' ' + typography2 + if typography: string = string + ' ' + typography if config.get_localized_string(30992) in string: string = string + ' >' # If there are no attributes, it applies the default ones - attribute = ['[]','()','{}','submenu','color','bold','italic','_','--','[B]','[I]','[COLOR]'] - - # movie_word_list = ['film', 'serie', 'tv', 'anime', 'cinema', 'sala'] - # search_word_list = ['cerca'] - # categories_word_list = ['genere', 'categoria', 'categorie', 'ordine', 'lettera', 'anno', 'alfabetico', 'a-z', 'menu'] - - # if not any(word in string for word in attribute): - # if any(word in string.lower() for word in search_word_list): - # string = '[COLOR '+ kod_color +']' + string + '[/COLOR]' - # elif any(word in string.lower() for word in categories_word_list): - # string = ' > ' + string - # elif any(word in string.lower() for word in movie_word_list): - # string = '[B]' + string + '[/B]' + attribute = ['[]','()','submenu','color','bold','italic','_','--','[B]','[I]','[COLOR]'] # Otherwise it uses the typographical attributes of the string # else: if '[]' in string: - string = '[' + re.sub(r'\s\[\]','',string) + ']' + string = '[' + re.sub(r'\s*\[\]','',string) + ']' if '()' in string: - string = '(' + re.sub(r'\s\(\)','',string) + ')' - if '{}' in string: - string = '{' + re.sub(r'\s\{\}','',string) + '}' + string = '(' + re.sub(r'\s*\(\)','',string) + ')' if 'submenu' in string: - string = "•• " + re.sub(r'\ssubmenu','',string) + string = "•• " + re.sub(r'\s*submenu','',string) if 'color' in string: color = scrapertools.find_single_match(string, 'color ([a-z]+)') if color == 'kod' or '': color = kod_color string = '[COLOR '+ color +']' + re.sub(r'\scolor\s([a-z]+)','',string) + '[/COLOR]' if 'bold' in string: - string = '[B]' + re.sub(r'\sbold','',string) + '[/B]' + string = '[B]' + re.sub(r'\s*bold','',string) + '[/B]' if 'italic' in string: - string = '[I]' + re.sub(r'\sitalic','',string) + '[/I]' + string = '[I]' + re.sub(r'\s*italic','',string) + '[/I]' if '_' in string: - string = ' ' + re.sub(r'\s_','',string) + string = ' ' + re.sub(r'\s*_','',string) if '--' in string: - string = ' - ' + re.sub(r'\s--','',string) + string = ' - ' + re.sub(r'\s*--','',string) if 'bullet' in string: - string = '[B]' + "•" + '[/B] ' + re.sub(r'\sbullet','',string) + string = '[B]' + "•" + '[/B] ' + re.sub(r'\s*bullet','',string) if 'capitalize' in string.lower(): - string = re.sub(r'\scapitalize','',string).capitalize() + string = re.sub(r'\s*capitalize','',string).capitalize() if 'uppercase' in string.lower(): - string = re.sub(r'\suppercase','',string).upper() + string = re.sub(r'\s*uppercase','',string).upper() if 'lowercase' in string.lower(): - string = re.sub(r'\slowercase','',string).lower() + string = re.sub(r'\s*lowercase','',string).lower() + if '{}' in string: + string = re.sub(r'\s*\{\}','',string) return string diff --git a/lib/btserver/cache.py b/lib/btserver/cache.py index a1ab9586..81605bdb 100644 --- a/lib/btserver/cache.py +++ b/lib/btserver/cache.py @@ -7,13 +7,18 @@ import base64 import os.path import re +import traceback try: - from python_libtorrent import get_libtorrent + import xbmc, xbmcgui +except: + pass - lt = get_libtorrent() -except Exception, e: - import libtorrent as lt +from platformcode import config +LIBTORRENT_PATH = config.get_setting("libtorrent_path", server="torrent", default='') + +from servers import torrent as torr +lt, e, e1, e2 = torr.import_libtorrent(LIBTORRENT_PATH) class Cache(object): diff --git a/lib/btserver/client.py b/lib/btserver/client.py index cc8d478f..3233dfaf 100644 --- a/lib/btserver/client.py +++ b/lib/btserver/client.py @@ -1,27 +1,40 @@ # -*- coding: utf-8 -*- -try: - from python_libtorrent import get_libtorrent, get_platform - - lt = get_libtorrent() -except Exception, e: - import libtorrent as lt - import os import pickle import random import time import urllib +try: + import xbmc, xbmcgui +except: + pass + +from platformcode import config, logger +LIBTORRENT_PATH = config.get_setting("libtorrent_path", server="torrent", default='') + +from servers import torrent as torr +lt, e, e1, e2 = torr.import_libtorrent(LIBTORRENT_PATH) + from cache import Cache from dispatcher import Dispatcher from file import File from handler import Handler from monitor import Monitor -from platformcode import logger from resume_data import ResumeData from server import Server +try: + BUFFER = int(config.get_setting("bt_buffer", server="torrent", default="50")) +except: + BUFFER = 50 + config.set_setting("bt_buffer", "50", server="torrent") +DOWNLOAD_PATH = config.get_setting("bt_download_path", server="torrent", default=config.get_setting("downloadpath")) +BACKGROUND = config.get_setting("mct_background_download", server="torrent", default=True) +RAR = config.get_setting("mct_rar_unpack", server="torrent", default=True) +msg_header = 'Client Torrent BT' + class Client(object): INITIAL_TRACKERS = ['udp://tracker.openbittorrent.com:80', @@ -30,11 +43,29 @@ class Client(object): 'udp://tracker.coppersurfer.tk:80', 'udp://tracker.leechers-paradise.org:6969', 'udp://exodus.desync.com:6969', - 'udp://tracker.publicbt.com:80'] + 'udp://tracker.publicbt.com:80', + 'http://tracker.torrentbay.to:6969/announce', + 'http://tracker.pow7.com/announce', + 'udp://tracker.ccc.de:80/announce', + 'udp://open.demonii.com:1337', + 'http://9.rarbg.com:2710/announce', + 'http://bt.careland.com.cn:6969/announce', + 'http://explodie.org:6969/announce', + 'http://mgtracker.org:2710/announce', + 'http://tracker.best-torrents.net:6969/announce', + 'http://tracker.tfile.me/announce', + 'http://tracker1.wasabii.com.tw:6969/announce', + 'udp://9.rarbg.com:2710/announce', + 'udp://9.rarbg.me:2710/announce', + 'udp://coppersurfer.tk:6969/announce', + 'http://www.spanishtracker.com:2710/announce', + 'http://www.todotorrents.com:2710/announce' + ] ### Added some trackers from MCT VIDEO_EXTS = {'.avi': 'video/x-msvideo', '.mp4': 'video/mp4', '.mkv': 'video/x-matroska', '.m4v': 'video/mp4', '.mov': 'video/quicktime', '.mpg': 'video/mpeg', '.ogv': 'video/ogg', - '.ogg': 'video/ogg', '.webm': 'video/webm', '.ts': 'video/mp2t', '.3gp': 'video/3gpp'} + '.ogg': 'video/ogg', '.webm': 'video/webm', '.ts': 'video/mp2t', '.3gp': 'video/3gpp', + '.rar': 'video/unrar'} def __init__(self, url=None, port=None, ip=None, auto_shutdown=True, wait_time=20, timeout=5, auto_delete=True, temp_path=None, is_playing_fnc=None, print_status=False): @@ -54,16 +85,26 @@ class Client(object): if temp_path: self.temp_path = temp_path else: - self.temp_path = os.path.join(os.path.dirname(__file__), "tmp") + self.temp_path = DOWNLOAD_PATH self.is_playing_fnc = is_playing_fnc self.timeout = timeout self.auto_delete = auto_delete self.wait_time = wait_time self.auto_shutdown = auto_shutdown - self.buffer_size = 15 + self.buffer_size = BUFFER + self.first_pieces_priorize = BUFFER self.last_pieces_priorize = 5 self.state_file = "state" - self.torrent_paramss = {'save_path': self.temp_path, 'storage_mode': lt.storage_mode_t.storage_mode_sparse} + try: + self.torrent_paramss = {'save_path': self.temp_path, 'storage_mode': lt.storage_mode_t.storage_mode_allocate} + except Exception as e: + try: + do = xbmcgui.Dialog() + e = e1 or e2 + do.ok(config.get_localized_string(30035) + 'BT Libtorrent', config.get_localized_string(30036), config.get_localized_string(60015), str(e)) + except: + pass + return # State self.has_meta = False @@ -75,12 +116,15 @@ class Client(object): self.file = None self.files = None self._th = None + self.seleccion = 0 + self.index = 0 # Sesion self._cache = Cache(self.temp_path) self._ses = lt.session() - self._ses.listen_on(0, 0) - # Cargamos el archivo de estado (si esxiste) + #self._ses.listen_on(0, 0) ### ALFA: it blocks repro of some .torrents + # Cargamos el archivo de estado (si existe) + """ ### ALFA: it blocks repro of some .torrents if os.path.exists(os.path.join(self.temp_path, self.state_file)): try: f = open(os.path.join(self.temp_path, self.state_file), "rb") @@ -89,6 +133,7 @@ class Client(object): f.close() except: pass + """ self._start_services() @@ -111,6 +156,15 @@ class Client(object): if url: self.start_url(url) + def set_speed_limits(self, download=0, upload=0): + """ + Función encargada de poner límites a la velocidad de descarga o subida + """ + if isinstance(download, int) and download > 0: + self._th.set_download_limit(download * 1024) + if isinstance(upload, int) and download > 0: + self._th.set_upload_limit(upload * 1024) + def get_play_list(self): """ Función encargada de generar el playlist @@ -150,12 +204,14 @@ class Client(object): """ Función encargada de buscar los archivos reproducibles del torrent """ + self.total_size = 0 # Obtenemos los archivos que la extension este en la lista videos = filter(lambda f: self.VIDEO_EXTS.has_key(os.path.splitext(f.path)[1]), files) if not videos: raise Exception('No video files in torrent') for v in videos: + self.total_size += v.size ### ALFA videos[videos.index(v)].index = files.index(v) return videos @@ -166,6 +222,10 @@ class Client(object): # Seleccionamos el archivo que vamos a servir fmap = self.meta.map_file(f.index, 0, 1) self.file = File(f.path, self.temp_path, f.index, f.size, fmap, self.meta.piece_length(), self) + if self.seleccion < 0: ### ALFA + self.file.first_piece = 0 ### ALFA + self.file.last_piece = self.meta.num_pieces() ### ALFA + self.file.size = self.total_size ### ALFA self.prioritize_file() def prioritize_piece(self, pc, idx): @@ -175,7 +235,12 @@ class Client(object): piece_duration = 1000 min_deadline = 2000 dl = idx * piece_duration + min_deadline - self._th.set_piece_deadline(pc, dl, lt.deadline_flags.alert_when_available) + """ ### ALFA + try: + self._th.set_piece_deadline(pc, dl, lt.deadline_flags.alert_when_available) + except: + pass + """ if idx == 0: tail_pieces = 9 @@ -187,6 +252,7 @@ class Client(object): # Piezas siguientes a la primera se activan for i in xrange(pc + 1, self.file.last_piece + 1): + #self._th.piece_priority(i, 0) self._th.piece_priority(i, 1) def prioritize_file(self): @@ -198,8 +264,19 @@ class Client(object): if i >= self.file.first_piece and i <= self.file.last_piece: priorities.append(1) else: - priorities.append(0) + if self.index < 0: + priorities.append(1) ### ALFA + else: + priorities.append(0) ### ALFA + self._th.prioritize_pieces(priorities) + + x = 0 + for i, _set in enumerate(self._th.piece_priorities()): + if _set > 0: x += 1 + #logger.info("***** Nº Pieza: %s: %s" % (i, str(_set))) + logger.info("***** Piezas %s : Activas: %s" % (str(i+1), str(x))) + logger.info("***** first_piece %s : last_piece: %s" % (str(self.file.first_piece), str(self.file.last_piece))) def download_torrent(self, url): """ @@ -279,6 +356,12 @@ class Client(object): self._ses.remove_torrent(self._th, self.auto_delete) del self._ses self.closed = True + + def pause(self): + """ + Función encargada de de pausar el torrent + """ + self._ses.pause() def _start_services(self): """ @@ -287,6 +370,7 @@ class Client(object): self._ses.add_dht_router("router.bittorrent.com", 6881) self._ses.add_dht_router("router.bitcomet.com", 554) self._ses.add_dht_router("router.utorrent.com", 6881) + self._ses.add_dht_router("dht.transmissionbt.com",6881) ### from MCT self._ses.start_dht() self._ses.start_lsd() self._ses.start_upnp() @@ -323,19 +407,29 @@ class Client(object): if self._th: s = self._th.status() # Download Rate - s._download_rate = s.download_rate / 1000 + s._download_rate = s.download_rate / 1024 # Progreso del archivo if self.file: - pieces = s.pieces[self.file.first_piece:self.file.last_piece] + pieces = s.pieces[self.file.first_piece:self.file.last_piece] ### ALFA progress = float(sum(pieces)) / len(pieces) + s.pieces_len = len(pieces) ### ALFA + s.pieces_sum = sum(pieces) ### ALFA + #logger.info('***** Estado piezas: %s' % pieces) else: progress = 0 + s.pieces_len = 0 ### ALFA + s.pieces_sum = 0 ### ALFA s.progress_file = progress * 100 # Tamaño del archivo + s.file_name = '' ### ALFA + s.seleccion = '' ### ALFA + if self.file: + s.seleccion = self.seleccion ### ALFA + s.file_name = self.file.path ### ALFA s.file_size = self.file.size / 1048576.0 else: s.file_size = 0 @@ -355,14 +449,14 @@ class Client(object): # El tamaño del buffer de inicio es el tamaño del buffer menos el tamaño del buffer del final first_pieces_priorize = self.buffer_size - self.last_pieces_priorize - # Comprobamos que partes del buffer del inicio estan disponibles + # Comprobamos qué partes del buffer del inicio estan disponibles for x in range(first_pieces_priorize): if self._th.have_piece(self.file.first_piece + x): bp.append(True) else: bp.append(False) - # Comprobamos que partes del buffer del final estan disponibles + # Comprobamos qué partes del buffer del final estan disponibles for x in range(self.last_pieces_priorize): if self._th.have_piece(self.file.last_piece - x): bp.append(True) @@ -395,8 +489,8 @@ class Client(object): s.timeout = "Off" # Estado de la descarga - STATE_STR = ['En cola', 'Comprobando', 'Descargando metadata', \ - 'Descargando', 'Finalizado', 'Seeding', 'Allocating', 'Comprobando fastresume'] + STATE_STR = ['Queued', 'Checking', 'Downloading Metadata', \ + 'Downloading', 'Finalized', 'Seeding', 'Allocating', 'Checking Fastresume'] s.str_state = STATE_STR[s.state] # Estado DHT @@ -468,7 +562,7 @@ class Client(object): Servicio encargado de anunciar el torrent """ self._th.force_reannounce() - self._th.force_dht_announce() + self._th.force_dht_announce() def save_state(self): """ @@ -504,14 +598,33 @@ class Client(object): # Guardamos la lista de archivos self.files = self._find_files(files) + + # Si hay varios vídeos (no RAR), se selecciona el vídeo o "todos" + lista = [] + seleccion = 0 + for file in self.files: + if '.rar' in str(file.path): + seleccion = -9 + lista += [os.path.split(str(file.path))[1]] + if len(lista) > 1 and seleccion >= 0: + d = xbmcgui.Dialog() + seleccion = d.select(msg_header + config.get_localized_string(30034), lista) + + if seleccion < 0: + index = 0 + self.index = seleccion + else: + index = seleccion + self.index = self.files[index].index + self.seleccion = seleccion # Marcamos el primer archivo como activo - self.set_file(self.files[0]) + self.set_file(self.files[index]) # Damos por iniciada la descarga self.start_time = time.time() - # Guardamos el .torrent en el cahce + # Guardamos el .torrent en el cache self._cache.file_complete(self._th.get_torrent_info()) self.has_meta = True @@ -522,7 +635,7 @@ class Client(object): ''' if self.file and not self.file.cursor: num_start_pieces = self.buffer_size - self.last_pieces_priorize # Cantidad de piezas a priorizar al inicio - num_end_pieces = self.last_pieces_priorize # Canridad de piezas a priorizar al final + num_end_pieces = self.last_pieces_priorize # Cantidad de piezas a priorizar al final pieces_count = 0 # Priorizamos las ultimas piezas @@ -543,13 +656,14 @@ class Client(object): ''' Servicio encargado de mostrar en el log el estado de la descarga ''' - s = self.status - if self.file: - archivo = self.file.index + s = self.status ### ALFA + if self.seleccion >= 0: + archivo = self.seleccion + 1 else: - archivo = "N/D" + archivo = self.seleccion + logger.info( - '%.2f%% de %.1fMB %s | %.1f kB/s | #%s %d%% | AutoClose: %s | S: %d(%d) P: %d(%d)) | TRK: %d DHT: %d PEX: %d LSD %d | DHT:%s (%d) | Trakers: %d' % \ + '%.2f%% de %.1fMB %s | %.1f kB/s | #%s %d%% | AutoClose: %s | S: %d(%d) P: %d(%d)) | TRK: %d DHT: %d PEX: %d LSD %d | DHT:%s (%d) | Trakers: %d | Pieces: %d (%d)' % \ (s.progress_file, s.file_size, s.str_state, s._download_rate, archivo, s.buffer, s.timeout, s.num_seeds, \ s.num_complete, s.num_peers, s.num_incomplete, s.trk_peers, s.dht_peers, s.pex_peers, s.lsd_peers, - s.dht_state, s.dht_nodes, s.trackers)) + s.dht_state, s.dht_nodes, s.trackers, s.pieces_sum, s.pieces_len)) ### ALFA diff --git a/lib/btserver/dispatcher.py b/lib/btserver/dispatcher.py index c457d3f7..c0edfa01 100644 --- a/lib/btserver/dispatcher.py +++ b/lib/btserver/dispatcher.py @@ -2,12 +2,18 @@ from monitor import Monitor -try: - from python_libtorrent import get_libtorrent +import traceback - lt = get_libtorrent() -except Exception, e: - import libtorrent as lt +try: + import xbmc, xbmcgui +except: + pass + +from platformcode import config +LIBTORRENT_PATH = config.get_setting("libtorrent_path", server="torrent", default='') + +from servers import torrent as torr +lt, e, e1, e2 = torr.import_libtorrent(LIBTORRENT_PATH) class Dispatcher(Monitor): diff --git a/lib/generictools.py b/lib/generictools.py index 8c61e20d..e93a1b1e 100644 --- a/lib/generictools.py +++ b/lib/generictools.py @@ -1226,9 +1226,10 @@ def post_tmdb_findvideos(item, itemlist): return (item, itemlist) -def get_torrent_size(url, referer=None, post=None, data_torrent=False, timeout=5): +def get_torrent_size(url, referer=None, post=None, torrents_path=None, data_torrent=False, \ + timeout=5, file_list=False, lookup=True, local_torr=None, headers={}, short_pad=False): logger.info() - from core import videolibrarytools + from servers import torrent """ @@ -1243,7 +1244,8 @@ def get_torrent_size(url, referer=None, post=None, data_torrent=False, timeout=5 Entrada: post: contenido del post en caso de llamada con post Entrada: data_torrent: Flag por si se quiere el contenido del .torretn de vuelta Salida: size: str con el tamaño y tipo de medida ( MB, GB, etc) - Salida: torrent: dict() con el contenido del .torrent (opcional) + Salida: torrent_f: dict() con el contenido del .torrent (opcional) + Salida: files: dict() con los nombres de los archivos del torrent y su tamaño (opcional) """ @@ -1251,17 +1253,21 @@ def get_torrent_size(url, referer=None, post=None, data_torrent=False, timeout=5 import math if (size == 0): return '0B' - size_name = ("B", "KB", "M B", "G B", "TB", "PB", "EB", "ZB", "YB") + size_name = ("B", "KB", "M·B", "G·B", "TB", "PB", "EB", "ZB", "YB") i = int(math.floor(math.log(size, 1024))) p = math.pow(1024, i) - s = round(size / p, 2) + #s = round(size / p, 2) + s = round(old_div(size, p), 2) return '%s %s' % (s, size_name[i]) def decode(text): try: src = tokenize(text) - data = decode_item(src.next, src.next()) - for token in src: # look for more tokens + if not PY3: + data = decode_item(src.next, src.next()) #Py2 + else: + data = decode_item(src.__next__, next(src)) #Py3 + for token in src: # look for more tokens raise SyntaxError("trailing junk") except (AttributeError, ValueError, StopIteration): try: @@ -1301,15 +1307,18 @@ def get_torrent_size(url, referer=None, post=None, data_torrent=False, timeout=5 data.append(decode_item(next, tok)) tok = next() if token == "d": - data = dict(zip(data[0::2], data[1::2])) + #data = dict(zip(data[0::2], data[1::2])) + data = dict(list(zip(data[0::2], data[1::2]))) else: raise ValueError return data #Móludo principal - size = "" - torrent = '' + size = '' + torrent_f = '' + torrent_file = '' + files = {} try: #torrents_path = config.get_videolibrary_path() + '/torrents' #path para dejar el .torrent @@ -1319,32 +1328,56 @@ def get_torrent_size(url, referer=None, post=None, data_torrent=False, timeout=5 #urllib.URLopener.version = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 SE 2.X MetaSr 1.0' #urllib.urlretrieve(url, torrents_path + "/generictools.torrent") #desacargamos el .torrent a la carpeta #torrent_file = open(torrents_path + "/generictools.torrent", "rb").read() #leemos el .torrent - - torrents_path, torrent_file = videolibrarytools.caching_torrents(url, referer=referer, post=post, timeout=timeout, lookup=True, data_torrent=True) + + if ((url and not local_torr) or url.startswith('magnet')): + torrents_path, torrent_file = torrent.caching_torrents(url, \ + referer=referer, post=post, torrents_path=torrents_path, \ + timeout=timeout, lookup=lookup, data_torrent=True, headers=headers) + elif local_torr: + torrent_file = filetools.read(local_torr) if not torrent_file: - if data_torrent: - return (size, torrent) + if not lookup: + return (size, torrents_path, torrent_f, files) + elif file_list and data_torrent: + return (size, torrent_f, files) + elif file_list: + return (size, files) + elif data_torrent: + return (size, torrent_f) return size #Si hay un error, devolvemos el "size" y "torrent" vacíos - torrent = decode(torrent_file) #decodificamos el .torrent + torrent_f = decode(torrent_file) #decodificamos el .torrent #si sólo tiene un archivo, tomamos la longitud y la convertimos a una unidad legible, si no dará error try: - sizet = torrent["info"]['length'] + sizet = torrent_f["info"]['length'] size = convert_size(sizet) + + files = torrent_f["info"].copy() + if 'path' not in files: files.update({'path': ['']}) + if 'piece length' in files: del files['piece length'] + if 'pieces' in files: del files['pieces'] + if 'name' in files: del files['name'] + files = [files] + files.append({"__name": torrent_f["info"]["name"], 'length': 0}) except: pass #si tiene múltiples archivos sumamos la longitud de todos if not size: try: - check_video = scrapertools.find_multiple_matches(str(torrent["info"]["files"]), "'length': (\d+).*?}") + check_video = scrapertools.find_multiple_matches(str(torrent_f["info"]["files"]), "'length': (\d+).*?}") sizet = sum([int(i) for i in check_video]) size = convert_size(sizet) + + files = torrent_f["info"]["files"][:] + files.append({"__name": torrent_f["info"]["name"], 'length': 0}) + except: - pass + size = 'ERROR' except: + size = 'ERROR' logger.error('ERROR al buscar el tamaño de un .Torrent: ' + str(url)) logger.error(traceback.format_exc()) @@ -1352,13 +1385,22 @@ def get_torrent_size(url, referer=None, post=None, data_torrent=False, timeout=5 # os.remove(torrents_path + "/generictools.torrent") #borramos el .torrent #except: # pass + + if '.rar' in str(files): + size = '[COLOR magenta][B]RAR-[/B][/COLOR]%s' % size #logger.debug(str(url)) logger.info(str(size)) - if data_torrent: - return (size, torrent) - return size + if not lookup: + return (size, torrents_path, torrent_f, files) + elif file_list and data_torrent: + return (size, torrent_f, files) + elif file_list: + return (size, files) + elif data_torrent: + return (size, torrent_f) + return size def get_field_from_kodi_DB(item, from_fields='*', files='file'): diff --git a/lib/python_libtorrent/__init__.py b/lib/python_libtorrent/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_armv7/0.16.19/__init__.py b/lib/python_libtorrent/android_armv7/0.16.19/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_armv7/0.16.19/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_armv7/0.16.19/libtorrent.so.size.txt b/lib/python_libtorrent/android_armv7/0.16.19/libtorrent.so.size.txt new file mode 100644 index 00000000..84e6fea8 --- /dev/null +++ b/lib/python_libtorrent/android_armv7/0.16.19/libtorrent.so.size.txt @@ -0,0 +1 @@ +6804840 \ No newline at end of file diff --git a/lib/python_libtorrent/android_armv7/1.0.6/__init__.py b/lib/python_libtorrent/android_armv7/1.0.6/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.0.6/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_armv7/1.0.6/libtorrent.so.size.txt b/lib/python_libtorrent/android_armv7/1.0.6/libtorrent.so.size.txt new file mode 100644 index 00000000..6de27f94 --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.0.6/libtorrent.so.size.txt @@ -0,0 +1 @@ +6545732 \ No newline at end of file diff --git a/lib/python_libtorrent/android_armv7/1.0.7/__init__.py b/lib/python_libtorrent/android_armv7/1.0.7/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.0.7/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_armv7/1.0.7/libtorrent.so.size.txt b/lib/python_libtorrent/android_armv7/1.0.7/libtorrent.so.size.txt new file mode 100644 index 00000000..2f7afd24 --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.0.7/libtorrent.so.size.txt @@ -0,0 +1 @@ +6519704 \ No newline at end of file diff --git a/lib/python_libtorrent/android_armv7/1.0.8/__init__.py b/lib/python_libtorrent/android_armv7/1.0.8/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.0.8/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_armv7/1.0.8/libtorrent.so.size.txt b/lib/python_libtorrent/android_armv7/1.0.8/libtorrent.so.size.txt new file mode 100644 index 00000000..fce8b958 --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.0.8/libtorrent.so.size.txt @@ -0,0 +1 @@ +6513752 \ No newline at end of file diff --git a/lib/python_libtorrent/android_armv7/1.0.9/__init__.py b/lib/python_libtorrent/android_armv7/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_armv7/1.0.9/libtorrent.so.size.txt b/lib/python_libtorrent/android_armv7/1.0.9/libtorrent.so.size.txt new file mode 100644 index 00000000..36119234 --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.0.9/libtorrent.so.size.txt @@ -0,0 +1 @@ +6518156 \ No newline at end of file diff --git a/lib/python_libtorrent/android_armv7/1.1.0/__init__.py b/lib/python_libtorrent/android_armv7/1.1.0/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.1.0/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_armv7/1.1.0/libtorrent.so.size.txt b/lib/python_libtorrent/android_armv7/1.1.0/libtorrent.so.size.txt new file mode 100644 index 00000000..5610ac18 --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.1.0/libtorrent.so.size.txt @@ -0,0 +1 @@ +4608320 \ No newline at end of file diff --git a/lib/python_libtorrent/android_armv7/1.1.1/__init__.py b/lib/python_libtorrent/android_armv7/1.1.1/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.1.1/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_armv7/1.1.1/libtorrent.so.size.txt b/lib/python_libtorrent/android_armv7/1.1.1/libtorrent.so.size.txt new file mode 100644 index 00000000..cc84d962 --- /dev/null +++ b/lib/python_libtorrent/android_armv7/1.1.1/libtorrent.so.size.txt @@ -0,0 +1 @@ +4628960 \ No newline at end of file diff --git a/lib/python_libtorrent/android_armv7/__init__.py b/lib/python_libtorrent/android_armv7/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_armv7/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_x86/0.16.19/__init__.py b/lib/python_libtorrent/android_x86/0.16.19/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_x86/0.16.19/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_x86/0.16.19/libtorrent.so.size.txt b/lib/python_libtorrent/android_x86/0.16.19/libtorrent.so.size.txt new file mode 100644 index 00000000..559db63b --- /dev/null +++ b/lib/python_libtorrent/android_x86/0.16.19/libtorrent.so.size.txt @@ -0,0 +1 @@ +7145572 \ No newline at end of file diff --git a/lib/python_libtorrent/android_x86/1.0.6/__init__.py b/lib/python_libtorrent/android_x86/1.0.6/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.0.6/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_x86/1.0.6/libtorrent.so.size.txt b/lib/python_libtorrent/android_x86/1.0.6/libtorrent.so.size.txt new file mode 100644 index 00000000..4f5d95fc --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.0.6/libtorrent.so.size.txt @@ -0,0 +1 @@ +6921524 \ No newline at end of file diff --git a/lib/python_libtorrent/android_x86/1.0.7/__init__.py b/lib/python_libtorrent/android_x86/1.0.7/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.0.7/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_x86/1.0.7/libtorrent.so.size.txt b/lib/python_libtorrent/android_x86/1.0.7/libtorrent.so.size.txt new file mode 100644 index 00000000..623c5ec5 --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.0.7/libtorrent.so.size.txt @@ -0,0 +1 @@ +6890380 \ No newline at end of file diff --git a/lib/python_libtorrent/android_x86/1.0.8/__init__.py b/lib/python_libtorrent/android_x86/1.0.8/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.0.8/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_x86/1.0.8/libtorrent.so.size.txt b/lib/python_libtorrent/android_x86/1.0.8/libtorrent.so.size.txt new file mode 100644 index 00000000..4ae02ffd --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.0.8/libtorrent.so.size.txt @@ -0,0 +1 @@ +6889512 \ No newline at end of file diff --git a/lib/python_libtorrent/android_x86/1.0.9/__init__.py b/lib/python_libtorrent/android_x86/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_x86/1.0.9/libtorrent.so.size.txt b/lib/python_libtorrent/android_x86/1.0.9/libtorrent.so.size.txt new file mode 100644 index 00000000..ebea3968 --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.0.9/libtorrent.so.size.txt @@ -0,0 +1 @@ +6889548 \ No newline at end of file diff --git a/lib/python_libtorrent/android_x86/1.1.0/__init__.py b/lib/python_libtorrent/android_x86/1.1.0/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.1.0/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_x86/1.1.0/libtorrent.so.size.txt b/lib/python_libtorrent/android_x86/1.1.0/libtorrent.so.size.txt new file mode 100644 index 00000000..e29817fc --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.1.0/libtorrent.so.size.txt @@ -0,0 +1 @@ +5369280 \ No newline at end of file diff --git a/lib/python_libtorrent/android_x86/1.1.1/__init__.py b/lib/python_libtorrent/android_x86/1.1.1/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.1.1/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/android_x86/1.1.1/libtorrent.so.size.txt b/lib/python_libtorrent/android_x86/1.1.1/libtorrent.so.size.txt new file mode 100644 index 00000000..87c887ad --- /dev/null +++ b/lib/python_libtorrent/android_x86/1.1.1/libtorrent.so.size.txt @@ -0,0 +1 @@ +5393984 \ No newline at end of file diff --git a/lib/python_libtorrent/android_x86/__init__.py b/lib/python_libtorrent/android_x86/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/android_x86/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/darwin/0.16.19/__init__.py b/lib/python_libtorrent/darwin/0.16.19/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/darwin/0.16.19/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/darwin/0.16.19/libtorrent.so.size.txt b/lib/python_libtorrent/darwin/0.16.19/libtorrent.so.size.txt new file mode 100644 index 00000000..f36331b7 --- /dev/null +++ b/lib/python_libtorrent/darwin/0.16.19/libtorrent.so.size.txt @@ -0,0 +1 @@ +10425648 \ No newline at end of file diff --git a/lib/python_libtorrent/darwin/1.0.9/__init__.py b/lib/python_libtorrent/darwin/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/darwin/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/darwin/1.0.9/libtorrent.so.size.txt b/lib/python_libtorrent/darwin/1.0.9/libtorrent.so.size.txt new file mode 100644 index 00000000..39bbc11f --- /dev/null +++ b/lib/python_libtorrent/darwin/1.0.9/libtorrent.so.size.txt @@ -0,0 +1 @@ +3578388 \ No newline at end of file diff --git a/lib/python_libtorrent/darwin/1.1.0/__init__.py b/lib/python_libtorrent/darwin/1.1.0/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/darwin/1.1.0/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/darwin/1.1.0/libtorrent.so.size.txt b/lib/python_libtorrent/darwin/1.1.0/libtorrent.so.size.txt new file mode 100644 index 00000000..ffcb02f5 --- /dev/null +++ b/lib/python_libtorrent/darwin/1.1.0/libtorrent.so.size.txt @@ -0,0 +1 @@ +5292640 \ No newline at end of file diff --git a/lib/python_libtorrent/darwin/1.1.1/__init__.py b/lib/python_libtorrent/darwin/1.1.1/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/darwin/1.1.1/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/darwin/1.1.1/libtorrent.so.size.txt b/lib/python_libtorrent/darwin/1.1.1/libtorrent.so.size.txt new file mode 100644 index 00000000..8b51a1f3 --- /dev/null +++ b/lib/python_libtorrent/darwin/1.1.1/libtorrent.so.size.txt @@ -0,0 +1 @@ +5331516 \ No newline at end of file diff --git a/lib/python_libtorrent/darwin/__init__.py b/lib/python_libtorrent/darwin/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/darwin/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/ios_arm/1.0.7/__init__.py b/lib/python_libtorrent/ios_arm/1.0.7/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/ios_arm/1.0.7/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/ios_arm/1.0.7/libtorrent.so.size.txt b/lib/python_libtorrent/ios_arm/1.0.7/libtorrent.so.size.txt new file mode 100644 index 00000000..7ab22f29 --- /dev/null +++ b/lib/python_libtorrent/ios_arm/1.0.7/libtorrent.so.size.txt @@ -0,0 +1 @@ +8834480 \ No newline at end of file diff --git a/lib/python_libtorrent/ios_arm/1.0.8/__init__.py b/lib/python_libtorrent/ios_arm/1.0.8/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/ios_arm/1.0.8/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/ios_arm/1.0.8/libtorrent.so.size.txt b/lib/python_libtorrent/ios_arm/1.0.8/libtorrent.so.size.txt new file mode 100644 index 00000000..7fc5097b --- /dev/null +++ b/lib/python_libtorrent/ios_arm/1.0.8/libtorrent.so.size.txt @@ -0,0 +1 @@ +8779608 \ No newline at end of file diff --git a/lib/python_libtorrent/ios_arm/1.0.9/__init__.py b/lib/python_libtorrent/ios_arm/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/ios_arm/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/ios_arm/1.0.9/libtorrent.so.size.txt b/lib/python_libtorrent/ios_arm/1.0.9/libtorrent.so.size.txt new file mode 100644 index 00000000..3fdc1bf1 --- /dev/null +++ b/lib/python_libtorrent/ios_arm/1.0.9/libtorrent.so.size.txt @@ -0,0 +1 @@ +8831856 \ No newline at end of file diff --git a/lib/python_libtorrent/ios_arm/1.1.1/__init__.py b/lib/python_libtorrent/ios_arm/1.1.1/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/ios_arm/1.1.1/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/ios_arm/1.1.1/libtorrent.so.size.txt b/lib/python_libtorrent/ios_arm/1.1.1/libtorrent.so.size.txt new file mode 100644 index 00000000..bee1908e --- /dev/null +++ b/lib/python_libtorrent/ios_arm/1.1.1/libtorrent.so.size.txt @@ -0,0 +1 @@ +3439420 \ No newline at end of file diff --git a/lib/python_libtorrent/ios_arm/__init__.py b/lib/python_libtorrent/ios_arm/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/ios_arm/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_aarch64_ucs2/1.1.0/__init__.py b/lib/python_libtorrent/linux_aarch64_ucs2/1.1.0/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_aarch64_ucs2/1.1.0/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_aarch64_ucs2/1.1.0/libtorrent.so.size.txt b/lib/python_libtorrent/linux_aarch64_ucs2/1.1.0/libtorrent.so.size.txt new file mode 100644 index 00000000..8bf018bb --- /dev/null +++ b/lib/python_libtorrent/linux_aarch64_ucs2/1.1.0/libtorrent.so.size.txt @@ -0,0 +1 @@ +5191944 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_aarch64_ucs2/__init__.py b/lib/python_libtorrent/linux_aarch64_ucs2/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_aarch64_ucs2/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_aarch64_ucs4/1.1.0/__init__.py b/lib/python_libtorrent/linux_aarch64_ucs4/1.1.0/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_aarch64_ucs4/1.1.0/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_aarch64_ucs4/1.1.0/libtorrent.so.size.txt b/lib/python_libtorrent/linux_aarch64_ucs4/1.1.0/libtorrent.so.size.txt new file mode 100644 index 00000000..8bf018bb --- /dev/null +++ b/lib/python_libtorrent/linux_aarch64_ucs4/1.1.0/libtorrent.so.size.txt @@ -0,0 +1 @@ +5191944 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_aarch64_ucs4/1.1.1/__init__.py b/lib/python_libtorrent/linux_aarch64_ucs4/1.1.1/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_aarch64_ucs4/1.1.1/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_aarch64_ucs4/1.1.1/libtorrent.so.size.txt b/lib/python_libtorrent/linux_aarch64_ucs4/1.1.1/libtorrent.so.size.txt new file mode 100644 index 00000000..ef8c5644 --- /dev/null +++ b/lib/python_libtorrent/linux_aarch64_ucs4/1.1.1/libtorrent.so.size.txt @@ -0,0 +1 @@ +2884768 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_aarch64_ucs4/__init__.py b/lib/python_libtorrent/linux_aarch64_ucs4/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_aarch64_ucs4/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv6/0.16.19/__init__.py b/lib/python_libtorrent/linux_armv6/0.16.19/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/0.16.19/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv6/0.16.19/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv6/0.16.19/libtorrent.so.size.txt new file mode 100644 index 00000000..9d285b23 --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/0.16.19/libtorrent.so.size.txt @@ -0,0 +1 @@ +2133072 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv6/1.0.11/__init__.py b/lib/python_libtorrent/linux_armv6/1.0.11/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.0.11/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv6/1.0.11/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv6/1.0.11/libtorrent.so.size.txt new file mode 100644 index 00000000..9a1d6002 --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.0.11/libtorrent.so.size.txt @@ -0,0 +1 @@ +2286476 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv6/1.0.6/__init__.py b/lib/python_libtorrent/linux_armv6/1.0.6/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.0.6/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv6/1.0.6/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv6/1.0.6/libtorrent.so.size.txt new file mode 100644 index 00000000..62a4af3f --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.0.6/libtorrent.so.size.txt @@ -0,0 +1 @@ +1979232 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv6/1.0.7/__init__.py b/lib/python_libtorrent/linux_armv6/1.0.7/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.0.7/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv6/1.0.7/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv6/1.0.7/libtorrent.so.size.txt new file mode 100644 index 00000000..5ff46c86 --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.0.7/libtorrent.so.size.txt @@ -0,0 +1 @@ +2286424 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv6/1.0.9/__init__.py b/lib/python_libtorrent/linux_armv6/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv6/1.0.9/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv6/1.0.9/libtorrent.so.size.txt new file mode 100644 index 00000000..5ff46c86 --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.0.9/libtorrent.so.size.txt @@ -0,0 +1 @@ +2286424 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv6/1.1.0/__init__.py b/lib/python_libtorrent/linux_armv6/1.1.0/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.1.0/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv6/1.1.0/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv6/1.1.0/libtorrent.so.size.txt new file mode 100644 index 00000000..56d0afee --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.1.0/libtorrent.so.size.txt @@ -0,0 +1 @@ +2388664 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv6/1.1.1/__init__.py b/lib/python_libtorrent/linux_armv6/1.1.1/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.1.1/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv6/1.1.1/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv6/1.1.1/libtorrent.so.size.txt new file mode 100644 index 00000000..e97c6282 --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.1.1/libtorrent.so.size.txt @@ -0,0 +1 @@ +2577640 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv6/1.1.6/__init__.py b/lib/python_libtorrent/linux_armv6/1.1.6/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.1.6/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv6/1.1.6/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv6/1.1.6/libtorrent.so.size.txt new file mode 100644 index 00000000..8df81141 --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.1.6/libtorrent.so.size.txt @@ -0,0 +1 @@ +3630144 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv6/1.1.7/__init__.py b/lib/python_libtorrent/linux_armv6/1.1.7/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.1.7/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv6/1.1.7/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv6/1.1.7/libtorrent.so.size.txt new file mode 100644 index 00000000..0e905c96 --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/1.1.7/libtorrent.so.size.txt @@ -0,0 +1 @@ +3634324 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv6/__init__.py b/lib/python_libtorrent/linux_armv6/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv6/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv7/0.16.19/__init__.py b/lib/python_libtorrent/linux_armv7/0.16.19/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/0.16.19/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv7/0.16.19/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv7/0.16.19/libtorrent.so.size.txt new file mode 100644 index 00000000..375fc94c --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/0.16.19/libtorrent.so.size.txt @@ -0,0 +1 @@ +1892840 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv7/1.0.6/__init__.py b/lib/python_libtorrent/linux_armv7/1.0.6/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/1.0.6/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv7/1.0.6/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv7/1.0.6/libtorrent.so.size.txt new file mode 100644 index 00000000..98acdd6d --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/1.0.6/libtorrent.so.size.txt @@ -0,0 +1 @@ +2048268 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv7/1.0.7/__init__.py b/lib/python_libtorrent/linux_armv7/1.0.7/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/1.0.7/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv7/1.0.7/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv7/1.0.7/libtorrent.so.size.txt new file mode 100644 index 00000000..7cdb4776 --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/1.0.7/libtorrent.so.size.txt @@ -0,0 +1 @@ +2093128 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv7/1.0.9/__init__.py b/lib/python_libtorrent/linux_armv7/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv7/1.0.9/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv7/1.0.9/libtorrent.so.size.txt new file mode 100644 index 00000000..bb85f14f --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/1.0.9/libtorrent.so.size.txt @@ -0,0 +1 @@ +2043172 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv7/1.1.0/__init__.py b/lib/python_libtorrent/linux_armv7/1.1.0/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/1.1.0/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv7/1.1.0/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv7/1.1.0/libtorrent.so.size.txt new file mode 100644 index 00000000..0866378e --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/1.1.0/libtorrent.so.size.txt @@ -0,0 +1 @@ +2662156 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv7/1.1.1/__init__.py b/lib/python_libtorrent/linux_armv7/1.1.1/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/1.1.1/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_armv7/1.1.1/libtorrent.so.size.txt b/lib/python_libtorrent/linux_armv7/1.1.1/libtorrent.so.size.txt new file mode 100644 index 00000000..4a58671f --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/1.1.1/libtorrent.so.size.txt @@ -0,0 +1 @@ +2674612 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_armv7/__init__.py b/lib/python_libtorrent/linux_armv7/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_armv7/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_mips/1.0.9/__init__.py b/lib/python_libtorrent/linux_mips/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_mips/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_mips/1.0.9/libtorrent.so.size.txt b/lib/python_libtorrent/linux_mips/1.0.9/libtorrent.so.size.txt new file mode 100644 index 00000000..476b9bff --- /dev/null +++ b/lib/python_libtorrent/linux_mips/1.0.9/libtorrent.so.size.txt @@ -0,0 +1 @@ +4598636 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_mips/__init__.py b/lib/python_libtorrent/linux_mips/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_mips/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_mipsel_ucs2/1.0.9/__init__.py b/lib/python_libtorrent/linux_mipsel_ucs2/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_mipsel_ucs2/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_mipsel_ucs2/1.0.9/libtorrent.so.size.txt b/lib/python_libtorrent/linux_mipsel_ucs2/1.0.9/libtorrent.so.size.txt new file mode 100644 index 00000000..314f7bd9 --- /dev/null +++ b/lib/python_libtorrent/linux_mipsel_ucs2/1.0.9/libtorrent.so.size.txt @@ -0,0 +1 @@ +4596396 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_mipsel_ucs2/1.1.0/__init__.py b/lib/python_libtorrent/linux_mipsel_ucs2/1.1.0/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_mipsel_ucs2/1.1.0/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_mipsel_ucs2/1.1.0/libtorrent.so.size.txt b/lib/python_libtorrent/linux_mipsel_ucs2/1.1.0/libtorrent.so.size.txt new file mode 100644 index 00000000..faeab6c5 --- /dev/null +++ b/lib/python_libtorrent/linux_mipsel_ucs2/1.1.0/libtorrent.so.size.txt @@ -0,0 +1 @@ +6325240 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_mipsel_ucs2/__init__.py b/lib/python_libtorrent/linux_mipsel_ucs2/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_mipsel_ucs2/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_mipsel_ucs4/1.0.9/__init__.py b/lib/python_libtorrent/linux_mipsel_ucs4/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_mipsel_ucs4/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_mipsel_ucs4/1.0.9/libtorrent.so.size.txt b/lib/python_libtorrent/linux_mipsel_ucs4/1.0.9/libtorrent.so.size.txt new file mode 100644 index 00000000..476b9bff --- /dev/null +++ b/lib/python_libtorrent/linux_mipsel_ucs4/1.0.9/libtorrent.so.size.txt @@ -0,0 +1 @@ +4598636 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_mipsel_ucs4/1.1.0/__init__.py b/lib/python_libtorrent/linux_mipsel_ucs4/1.1.0/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_mipsel_ucs4/1.1.0/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_mipsel_ucs4/1.1.0/libtorrent.so.size.txt b/lib/python_libtorrent/linux_mipsel_ucs4/1.1.0/libtorrent.so.size.txt new file mode 100644 index 00000000..faeab6c5 --- /dev/null +++ b/lib/python_libtorrent/linux_mipsel_ucs4/1.1.0/libtorrent.so.size.txt @@ -0,0 +1 @@ +6325240 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_mipsel_ucs4/__init__.py b/lib/python_libtorrent/linux_mipsel_ucs4/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_mipsel_ucs4/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86/0.16.19/__init__.py b/lib/python_libtorrent/linux_x86/0.16.19/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86/0.16.19/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86/0.16.19/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86/0.16.19/libtorrent.so.size.txt new file mode 100644 index 00000000..a346659a --- /dev/null +++ b/lib/python_libtorrent/linux_x86/0.16.19/libtorrent.so.size.txt @@ -0,0 +1 @@ +6257605 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_x86/1.0.6/__init__.py b/lib/python_libtorrent/linux_x86/1.0.6/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86/1.0.6/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86/1.0.6/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86/1.0.6/libtorrent.so.size.txt new file mode 100644 index 00000000..3e74d111 --- /dev/null +++ b/lib/python_libtorrent/linux_x86/1.0.6/libtorrent.so.size.txt @@ -0,0 +1 @@ +3517944 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_x86/1.0.7/__init__.py b/lib/python_libtorrent/linux_x86/1.0.7/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86/1.0.7/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86/1.0.7/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86/1.0.7/libtorrent.so.size.txt new file mode 100644 index 00000000..c7e345be --- /dev/null +++ b/lib/python_libtorrent/linux_x86/1.0.7/libtorrent.so.size.txt @@ -0,0 +1 @@ +3544068 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_x86/1.0.9/__init__.py b/lib/python_libtorrent/linux_x86/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86/1.0.9/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86/1.0.9/libtorrent.so.size.txt new file mode 100644 index 00000000..5b7c9ab3 --- /dev/null +++ b/lib/python_libtorrent/linux_x86/1.0.9/libtorrent.so.size.txt @@ -0,0 +1 @@ +3239792 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_x86/1.1.0/__init__.py b/lib/python_libtorrent/linux_x86/1.1.0/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86/1.1.0/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86/1.1.0/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86/1.1.0/libtorrent.so.size.txt new file mode 100644 index 00000000..18303722 --- /dev/null +++ b/lib/python_libtorrent/linux_x86/1.1.0/libtorrent.so.size.txt @@ -0,0 +1 @@ +4601280 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_x86/1.1.1/__init__.py b/lib/python_libtorrent/linux_x86/1.1.1/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86/1.1.1/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86/1.1.1/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86/1.1.1/libtorrent.so.size.txt new file mode 100644 index 00000000..9f9b66e9 --- /dev/null +++ b/lib/python_libtorrent/linux_x86/1.1.1/libtorrent.so.size.txt @@ -0,0 +1 @@ +6652780 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_x86/__init__.py b/lib/python_libtorrent/linux_x86/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86_64/0.16.19/__init__.py b/lib/python_libtorrent/linux_x86_64/0.16.19/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/0.16.19/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86_64/0.16.19/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86_64/0.16.19/libtorrent.so.size.txt new file mode 100644 index 00000000..4b476b5b --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/0.16.19/libtorrent.so.size.txt @@ -0,0 +1 @@ +6620181 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_x86_64/1.0.6/__init__.py b/lib/python_libtorrent/linux_x86_64/1.0.6/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/1.0.6/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86_64/1.0.6/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86_64/1.0.6/libtorrent.so.size.txt new file mode 100644 index 00000000..bd538ff2 --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/1.0.6/libtorrent.so.size.txt @@ -0,0 +1 @@ +3514688 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_x86_64/1.0.7/__init__.py b/lib/python_libtorrent/linux_x86_64/1.0.7/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/1.0.7/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86_64/1.0.7/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86_64/1.0.7/libtorrent.so.size.txt new file mode 100644 index 00000000..bea17883 --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/1.0.7/libtorrent.so.size.txt @@ -0,0 +1 @@ +3576128 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_x86_64/1.0.9/__init__.py b/lib/python_libtorrent/linux_x86_64/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86_64/1.0.9/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86_64/1.0.9/libtorrent.so.size.txt new file mode 100644 index 00000000..24691028 --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/1.0.9/libtorrent.so.size.txt @@ -0,0 +1 @@ +3290600 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_x86_64/1.1.0/__init__.py b/lib/python_libtorrent/linux_x86_64/1.1.0/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/1.1.0/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86_64/1.1.0/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86_64/1.1.0/libtorrent.so.size.txt new file mode 100644 index 00000000..c66f5c33 --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/1.1.0/libtorrent.so.size.txt @@ -0,0 +1 @@ +4246184 \ No newline at end of file diff --git a/lib/python_libtorrent/linux_x86_64/1.1.1/__init__.py b/lib/python_libtorrent/linux_x86_64/1.1.1/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/1.1.1/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/linux_x86_64/1.1.1/libtorrent.so.size.txt b/lib/python_libtorrent/linux_x86_64/1.1.1/libtorrent.so.size.txt new file mode 100644 index 00000000..53ec69f8 --- /dev/null +++ b/lib/python_libtorrent/linux_x86_64/1.1.1/libtorrent.so.size.txt @@ -0,0 +1 @@ +4263000 \ No newline at end of file diff --git a/lib/python_libtorrent/platform_pulsar.py b/lib/python_libtorrent/platform_pulsar.py new file mode 100644 index 00000000..db827cac --- /dev/null +++ b/lib/python_libtorrent/platform_pulsar.py @@ -0,0 +1,198 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' + +import sys +import os +try: + import xbmc, xbmcaddon + #__settings__ = xbmcaddon.Addon(id='script.module.libtorrent') ### Alfa + #__version__ = __settings__.getAddonInfo('version') ### Alfa + #__plugin__ = __settings__.getAddonInfo('name') + " v." + __version__ ### Alfa + __settings__ = xbmcaddon.Addon(id='plugin.video.kod') ### Alfa + __version__ = '1.1.17' ### Alfa + __plugin__ = "python-libtorrent v.1.1.7" ### Alfa +except: + __plugin__ = "python-libtorrent v.1.1.7" ### Alfa + pass + +def log(msg): + try: + xbmc.log("### [%s]: %s" % (__plugin__,msg,), level=xbmc.LOGNOTICE ) + except UnicodeEncodeError: + xbmc.log("### [%s]: %s" % (__plugin__,msg.encode("utf-8", "ignore"),), level=xbmc.LOGNOTICE ) + except: + try: + xbmc.log("### [%s]: %s" % (__plugin__,'ERROR LOG',), level=xbmc.LOGNOTICE ) + except: + print msg + +def get_libname(platform): + libname=[] + if platform['system'] in ['darwin', 'linux_x86', 'linux_arm', 'linux_armv6', + 'linux_armv7', 'linux_x86_64', 'ios_arm', + 'linux_mipsel_ucs2', 'linux_mipsel_ucs4', 'linux_aarch64_ucs2', 'linux_aarch64_ucs4']: + libname=['libtorrent.so'] + elif platform['system'] == 'windows': + libname=['libtorrent.pyd'] + elif platform['system'] in ['android_armv7', 'android_x86']: + libname=['libtorrent.so', 'liblibtorrent.so'] + return libname + +def get_platform(): + #__settings__ = xbmcaddon.Addon(id='script.module.libtorrent') + #__version__ = __settings__.getAddonInfo('version') + #__plugin__ = __settings__.getAddonInfo('name') + " v." + __version__ + __language__ = __settings__.getLocalizedString + + if __settings__.getSetting('custom_system').lower() == "true": + system = int(__settings__.getSetting('set_system')) + log('USE CUSTOM SYSTEM: '+__language__(1100+system)) + + ret={} + + if system==0: + ret["os"] = "windows" + ret["arch"] = "x86" + elif system==1: + ret["os"] = "linux" + ret["arch"] = "x86" + elif system==2: + ret["os"] = "linux" + ret["arch"] = "x64" + elif system==3: + ret["os"] = "linux" + ret["arch"] = "armv7" + elif system==4: + ret["os"] = "linux" + ret["arch"] = "armv6" + elif system==5: + ret["os"] = "android" + ret["arch"] = "arm" + elif system==6: + ret["os"] = "android" + ret["arch"] = "x86" + elif system==7: + ret["os"] = "darwin" + ret["arch"] = "x64" + elif system==8: + ret["os"] = "ios" + ret["arch"] = "arm" + elif system==9: + ret["os"] = "ios" + ret["arch"] = "arm" + elif system==10: + ret["os"] = "linux" + ret["arch"] = "mipsel_ucs2" + elif system==11: + ret["os"] = "linux" + ret["arch"] = "mipsel_ucs4" + elif system == 12: + ret["os"] = "linux" + ret["arch"] = "linux_aarch64_ucs2" + elif system == 13: + ret["os"] = "linux" + ret["arch"] = "linux_aarch64_ucs4" + else: + + ret = { + "arch": sys.maxsize > 2 ** 32 and "x64" or "x86", + } + if xbmc.getCondVisibility("system.platform.android"): + ret["os"] = "android" + if "arm" in os.uname()[4] or "aarch64" in os.uname()[4]: + ret["arch"] = "arm" + elif xbmc.getCondVisibility("system.platform.linux"): + ret["os"] = "linux" + uname=os.uname()[4] + if "arm" in uname: + if "armv7" in uname: + ret["arch"] = "armv7" + else: + ret["arch"] = "armv6" + elif "mips" in uname: + if sys.maxunicode > 65536: + ret["arch"] = 'mipsel_ucs4' + else: + ret["arch"] = 'mipsel_ucs2' + elif "aarch64" in uname: + if sys.maxint > 2147483647: #is_64bit_system + if sys.maxunicode > 65536: + ret["arch"] = 'aarch64_ucs4' + else: + ret["arch"] = 'aarch64_ucs2' + else: + ret["arch"] = "armv7" #32-bit userspace + elif xbmc.getCondVisibility("system.platform.windows"): + ret["os"] = "windows" + elif xbmc.getCondVisibility("system.platform.osx"): + ret["os"] = "darwin" + elif xbmc.getCondVisibility("system.platform.ios"): + ret["os"] = "ios" + ret["arch"] = "arm" + + ret=get_system(ret) + return ret + +def get_system(ret): + ret["system"] = '' + ret["message"] = ['', ''] + + if ret["os"] == 'windows': + ret["system"] = 'windows' + ret["message"] = ['Windows has static compiled python-libtorrent included.', + 'You should install "script.module.libtorrent" from "MyShows.me Kodi Repo"'] + elif ret["os"] == "linux" and ret["arch"] == "x64": + ret["system"] = 'linux_x86_64' + ret["message"] = ['Linux x64 has not static compiled python-libtorrent included.', + 'You should install it by "sudo apt-get install python-libtorrent"'] + elif ret["os"] == "linux" and ret["arch"] == "x86": + ret["system"] = 'linux_x86' + ret["message"] = ['Linux has static compiled python-libtorrent included but it didn\'t work.', + 'You should install it by "sudo apt-get install python-libtorrent"'] + elif ret["os"] == "linux" and "aarch64" in ret["arch"]: + ret["system"] = 'linux_' + ret["arch"] + ret["message"] = ['Linux has static compiled python-libtorrent included but it didn\'t work.', + 'You should install it by "sudo apt-get install python-libtorrent"'] + elif ret["os"] == "linux" and ("arm" or "mips" in ret["arch"]): + ret["system"] = 'linux_'+ret["arch"] + ret["message"] = ['As far as I know you can compile python-libtorrent for ARMv6-7.', + 'You should search for "OneEvil\'s OpenELEC libtorrent" or use Ace Stream.'] + elif ret["os"] == "android": + if ret["arch"]=='arm': + ret["system"] = 'android_armv7' + else: + ret["system"] = 'android_x86' + ret["message"] = ['Please contact DiMartino on kodi.tv forum. We compiled python-libtorrent for Android,', + 'but we need your help with some tests on different processors.'] + elif ret["os"] == "darwin": + ret["system"] = 'darwin' + ret["message"] = ['It is possible to compile python-libtorrent for OS X.', + 'But you would have to do it by yourself, there is some info on github.com.'] + elif ret["os"] == "ios" and ret["arch"] == "arm": + ret["system"] = 'ios_arm' + ret["message"] = ['It is probably NOT possible to compile python-libtorrent for iOS.', + 'But you can use torrent-client control functions.'] + + return ret \ No newline at end of file diff --git a/lib/python_libtorrent/public.py b/lib/python_libtorrent/public.py new file mode 100644 index 00000000..46afdf0c --- /dev/null +++ b/lib/python_libtorrent/public.py @@ -0,0 +1,83 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' + +import os + +from platform_pulsar import get_libname + +class Public: + def __init__( self ): + self.platforms=[] + self.root=os.path.dirname(__file__) + for dir in os.listdir(self.root): + if os.path.isdir(os.path.join(self.root,dir)): + for subdir in os.listdir(os.path.join(self.root,dir)): + if os.path.isdir(os.path.join(self.root,dir,subdir)): + self.platforms.append({'system':dir, 'version':subdir}) + self._generate_size_file() + + def _generate_size_file( self ): + for platform in self.platforms: + for libname in get_libname(platform): + self.libname=libname + self.platform=platform + self.libdir = os.path.join(self.root, self.platform['system'], self.platform['version']) + self.libpath = os.path.join(self.libdir, self.libname) + self.sizepath=self.libpath+'.size.txt' + self.zipname=self.libname+'.zip' + zippath=os.path.join(self.libdir, self.zipname) + system=platform['system']+'/'+platform['version']+'/' + if os.path.exists(self.libpath): + if not os.path.exists(self.sizepath): + print system+self.libname+' NO SIZE' + self._makezip() + elif not os.path.exists(zippath): + print system+self.libname+' NO ZIP' + self._makezip() + else: + size=str(os.path.getsize(self.libpath)) + size_old=open( self.sizepath, "r" ).read() + if size_old!=size: + print system+self.libname+' NOT EQUAL' + self._makezip() + else: + print system+self.libname+' NO ACTION' + else: + print system+self.libname+' NO LIB' + + def _makezip(self): + open( self.sizepath, "w" ).write( str(os.path.getsize(self.libpath)) ) + os.chdir(self.libdir) + os.system('del %s' % (self.zipname)) + os.system('"C:\\Program Files\\7-Zip\\7z.exe" a %s.zip %s' % + (self.libname, self.libname)) + os.chdir(self.root) + #os.system('"C:\\Program Files\\7-Zip\\7z.exe" a %s.zip %s' % + # (self.platform['system']+os.sep+self.libname, self.platform['system']+os.sep+self.libname)) + +if ( __name__ == "__main__" ): + # start + #TODO: publicate + Public() \ No newline at end of file diff --git a/lib/python_libtorrent/python_libtorrent/__init__.py b/lib/python_libtorrent/python_libtorrent/__init__.py new file mode 100644 index 00000000..d916ebd7 --- /dev/null +++ b/lib/python_libtorrent/python_libtorrent/__init__.py @@ -0,0 +1,258 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' +from __future__ import absolute_import +#from builtins import str +import sys +PY3 = False +if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int + +from .functions import * +import xbmc, xbmcaddon +import sys +import os +import traceback ### Alfa + + +#__settings__ = xbmcaddon.Addon(id='script.module.libtorrent') ### Alfa +#__version__ = __settings__.getAddonInfo('version') ### Alfa +#__plugin__ = __settings__.getAddonInfo('name') + " v." + __version__ ### Alfa +#__settings__ = xbmcaddon.Addon(id='plugin.video.kod') ### Alfa +__version__ = '1.1.17' ### Alfa +__plugin__ = "python-libtorrent v.1.1.7" ### Alfa +#__language__ = __settings__.getLocalizedString ### Alfa +__root__ = os.path.dirname(os.path.dirname(__file__)) + +libtorrent=None +platform = get_platform() +#set_dirname=__settings__.getSetting('dirname') ### Alfa +#set_dirname=os.path.join(__settings__.getAddonInfo('Path'),'lib', 'python_libtorrent') ### Alfa +set_dirname=__root__ ### Alfa +if getSettingAsBool('custom_dirname') and set_dirname: + log('set_dirname:' +str(set_dirname)) + dirname=set_dirname +else: + #dirname = os.path.join(xbmc.translatePath('special://temp'), 'xbmcup', 'script.module.libtorrent', + # 'python_libtorrent') + dirname=set_dirname ### Alfa + +log('dirname: ' +str(dirname)) + +#versions = ['0.16.19', '1.0.6', '1.0.7', '1.0.8', '1.0.9', '1.0.11', '1.1.0', '1.1.1', '1.1.6', '1.1.7', '1.2.2', '1.2.3'] ### Alfa +versions = ['0.16.19', '1.0.6', '1.0.7', '1.0.8', '1.0.9', '1.0.11', '1.1.0', '1.1.1', '1.1.6', '1.1.7', '1.2.2'] ### Alfa +default_path = versions[-1] +#set_version = int(__settings__.getSetting('set_version')) ### Alfa +set_version = 0 ### Alfa +if getSettingAsBool('custom_version'): + log('set_version:' +str(set_version)+' '+versions[set_version]) + platform['version'] = versions[set_version] +else: + platform['version'] = default_path + +sizefile_path = os.path.join(__root__, platform['system'], platform['version']) +if not os.path.exists(sizefile_path): + log('set_version: no sizefile at %s back to default %s' % (sizefile_path, default_path)) + platform['version'] = default_path + sizefile_path = os.path.join(__root__, platform['system'], platform['version']) + if not os.path.exists(sizefile_path): + log('set_version: no default at %s searching for any version' % sizefile_path) + try: + versions = sorted(os.listdir(os.path.join(__root__, platform['system']))) + except: + versions = [] + for ver in versions: + if not os.path.isdir(os.path.join(__root__, platform['system'], ver)): + versions.remove(ver) + + if len(versions)>0: + platform['version'] = versions[-1] + log('set_version: chose %s out of %s' % (platform['version'], str(versions))) + else: + e = 'die because the folder is empty' + log(e) + raise Exception(e) +dest_path = os.path.join(dirname, platform['system'], platform['version']) +sys.path.insert(0, dest_path) + +lm=LibraryManager(dest_path, platform) +if not lm.check_exist(): + ok=lm.download() + xbmc.sleep(2000) + + +#if __settings__.getSetting('plugin_name')!=__plugin__: ### Alfa +# __settings__.setSetting('plugin_name', __plugin__) ### Alfa +# lm.update() ### Alfa + +log('platform: ' + str(platform)) +if platform['system'] not in ['windows', 'windows_x64']: ### Alfa + log('os: '+str(os.uname())) + log_text = 'ucs4' if sys.maxunicode > 65536 else 'ucs2' + log_text += ' x64' if sys.maxsize > 2147483647 else ' x86' + log(log_text) + +try: + fp = '' + pathname = '' + description = '' + libtorrent = '' + from platformcode import config + + if platform['system'] in ['linux_x86', 'windows', 'windows_x64', 'linux_armv6', 'linux_armv7', + 'linux_x86_64', 'linux_mipsel_ucs2', 'linux_mipsel_ucs4', + 'linux_aarch64_ucs2', 'linux_aarch64_ucs4']: ### Alfa + import libtorrent + + elif PY3 and platform['system'] not in ['android_armv7', 'android_x86']: + import libtorrent ### Alfa + + elif platform['system'] in ['darwin', 'ios_arm']: + import imp + + path_list = [dest_path] + log('path_list = ' + str(path_list)) + fp, pathname, description = imp.find_module('libtorrent', path_list) + log('fp = ' + str(fp)) + log('pathname = ' + str(pathname)) + log('description = ' + str(description)) + try: + libtorrent = imp.load_module('libtorrent', fp, pathname, description) + finally: + if fp: fp.close() + + elif platform['system'] in ['android_armv7', 'android_x86']: + try: + import imp + from ctypes import CDLL + + dest_path=lm.android_workaround(os.path.join(xbmc.translatePath('special://xbmc/'), 'files').replace('/cache/apk/assets', '')) + dll_path=os.path.join(dest_path, 'liblibtorrent.so') + log('CDLL path = ' + dll_path) + liblibtorrent=CDLL(dll_path) + log('CDLL = ' + str(liblibtorrent)) + path_list = [dest_path] + log('path_list = ' + str(path_list)) + fp, pathname, description = imp.find_module('libtorrent', path_list) + log('fp = ' + str(fp)) + log('pathname = ' + str(pathname)) + log('description = ' + str(description)) + try: + libtorrent = imp.load_module('libtorrent', fp, pathname, description) + finally: + if fp: fp.close() + except Exception as e: + if not PY3: + e = unicode(str(e), "utf8", errors="replace").encode("utf8") + config.set_setting("libtorrent_path", "", server="torrent") ### Alfa + config.set_setting("libtorrent_error", str(e), server="torrent") ### Alfa + log(traceback.format_exc(1)) + log('fp = ' + str(fp)) + log('pathname = ' + str(pathname)) + log('description = ' + str(description)) + log('Error importing libtorrent from "' + dest_path + '". Exception: ' + str(e)) + if fp: fp.close() + + # If no permission in dest_path we need to go deeper on root! + try: ### Alfa START + sys_path = '/data/app/' + fp = '' + pathname = sys_path + dest_path = sys_path + description = '' + libtorrent = '' + LIBTORRENT_MSG = config.get_setting("libtorrent_msg", server="torrent", default='') + if not LIBTORRENT_MSG: + dialog = xbmcgui.Dialog() + dialog.notification('KoD: '+ config.get_localizad_string(70766), config.get_localizad_string(70767), time=15000) + config.set_setting("libtorrent_msg", 'OK', server="torrent") + + from core import scrapertools + kodi_app = xbmc.translatePath('special://xbmc') + kodi_app = scrapertools.find_single_match(kodi_app, '\/\w+\/\w+\/.*?\/(.*?)\/') + kodi_dir = '%s-1' % kodi_app + dir_list = '' + try: + dir_list = os.listdir(sys_path).split() + except: + import subprocess + command = ['su', '-c', 'ls', sys_path] + p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + output_cmd, error_cmd = p.communicate() + log('Comando ROOT: %s' % str(command)) + dir_list = output_cmd.split() + + if not dir_list: + raise + + for file in dir_list: + if kodi_app in file: + kodi_dir = file + break + + bits = sys.maxsize > 2 ** 32 and "64" or "" + dest_path = os.path.join(sys_path, kodi_dir, 'lib', platform['arch'] + bits) + dest_path=lm.android_workaround(new_dest_path=dest_path) + sys.path.insert(0, dest_path) + dll_path=os.path.join(dest_path, 'liblibtorrent.so') + log('NEW CDLL path = ' + dll_path) + if not PY3: + liblibtorrent=CDLL(dll_path) + log('CDLL = ' + str(liblibtorrent)) + path_list = [dest_path] + log('path_list = ' + str(path_list)) + fp, pathname, description = imp.find_module('libtorrent', path_list) + try: + libtorrent = imp.load_module('libtorrent', fp, pathname, description) + finally: + if fp: fp.close() + else: + import libtorrent + + except Exception as e: + log('ERROR Comando ROOT: %s, %s' % (str(command), str(dest_path))) + if not PY3: + e = unicode(str(e), "utf8", errors="replace").encode("utf8") + log(traceback.format_exc(1)) ### Alfa + log('fp = ' + str(fp)) + log('pathname = ' + str(pathname)) + log('description = ' + str(description)) + log('Error importing libtorrent from "' + dest_path + '". Exception: ' + str(e)) + if fp: fp.close() + + if libtorrent: + config.set_setting("libtorrent_path", dest_path, server="torrent") ### Alfa + config.set_setting("libtorrent_error", "", server="torrent") ### Alfa + log('Imported libtorrent v' + libtorrent.version + ' from "' + dest_path + '"') + +except Exception as e: + if not PY3: + e = unicode(str(e), "utf8", errors="replace").encode("utf8") + config.set_setting("libtorrent_path", "", server="torrent") ### Alfa + config.set_setting("libtorrent_error", str(e), server="torrent") ### Alfa + log('Error importing libtorrent from "' + dest_path + '". Exception: ' + str(e)) + if fp: fp.close() + + +def get_libtorrent(): + return libtorrent diff --git a/lib/python_libtorrent/python_libtorrent/functions.py b/lib/python_libtorrent/python_libtorrent/functions.py new file mode 100644 index 00000000..da479591 --- /dev/null +++ b/lib/python_libtorrent/python_libtorrent/functions.py @@ -0,0 +1,187 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' +from __future__ import absolute_import +#from builtins import str +import sys +PY3 = False +if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int +from builtins import object + +import os +import xbmc, xbmcgui, xbmcaddon + +from .net import HTTP +from core import filetools ### Alfa + +__libbaseurl__ = "https://github.com/DiMartinoXBMC/script.module.libtorrent/raw/master/python_libtorrent" +#__settings__ = xbmcaddon.Addon(id='script.module.libtorrent') +#__version__ = __settings__.getAddonInfo('version') +#__plugin__ = __settings__.getAddonInfo('name') + " v." + __version__ +#__icon__=os.path.join(xbmc.translatePath('special://home'), 'addons', +# 'script.module.libtorrent', 'icon.png') +#__settings__ = xbmcaddon.Addon(id='plugin.video.kod') ### Alfa +__version__ = '1.1.17' ### Alfa +__plugin__ = "python-libtorrent v.1.1.7" ### Alfa +__icon__=os.path.join(xbmc.translatePath('special://home'), 'addons', + 'plugin.video.kod', 'icon.png') ### Alfa +#__language__ = __settings__.getLocalizedString ### Alfa + +#from python_libtorrent.platform_pulsar import get_platform, get_libname ### Alfa +from lib.python_libtorrent.python_libtorrent.platform_pulsar import get_platform, get_libname ### Alfa + +def log(msg): + try: + xbmc.log("### [%s]: %s" % (__plugin__,msg,), level=xbmc.LOGNOTICE ) + except UnicodeEncodeError: + xbmc.log("### [%s]: %s" % (__plugin__,msg.encode("utf-8", "ignore"),), level=xbmc.LOGNOTICE ) + except: + xbmc.log("### [%s]: %s" % (__plugin__,'ERROR LOG',), level=xbmc.LOGNOTICE ) + +def getSettingAsBool(setting): + __settings__ = xbmcaddon.Addon(id='plugin.video.kod') ### Alfa + return __settings__.getSetting(setting).lower() == "true" + +class LibraryManager(object): + def __init__(self, dest_path, platform): + self.dest_path = dest_path + self.platform = platform + self.root=os.path.dirname(os.path.dirname(__file__)) + ver1, ver2, ver3 = platform['version'].split('.') ### Alfa: resto método + try: + ver1 = int(ver1) + ver2 = int(ver2) + except: + pass + if ver1 >= 1 and ver2 >= 2: + global __libbaseurl__ + #__libbaseurl__ = 'https://github.com/alfa-addon/alfa-repo/raw/master/downloads/libtorrent' + __libbaseurl__ = 'https://bitbucket.org/alfa_addon/alfa-repo/raw/master/downloads/libtorrent' + + def check_exist(self): + for libname in get_libname(self.platform): + if not filetools.exists(os.path.join(self.dest_path,libname)): + return False + return True + + def check_update(self): + need_update=False + for libname in get_libname(self.platform): + if libname!='liblibtorrent.so': + self.libpath = os.path.join(self.dest_path, libname) + self.sizepath=os.path.join(self.root, self.platform['system'], self.platform['version'], libname+'.size.txt') + size=str(os.path.getsize(self.libpath)) + size_old=open( self.sizepath, "r" ).read() + if size_old!=size: + need_update=True + return need_update + + def update(self): + if self.check_update(): + for libname in get_libname(self.platform): + self.libpath = os.path.join(self.dest_path, libname) + filetools.remove(self.libpath) + self.download() + + def download(self): + __settings__ = xbmcaddon.Addon(id='plugin.video.kod') ### Alfa + filetools.mkdir(self.dest_path) + for libname in get_libname(self.platform): + dest = os.path.join(self.dest_path, libname) + log("try to fetch %s" % libname) + url = "%s/%s/%s/%s.zip" % (__libbaseurl__, self.platform['system'], self.platform['version'], libname) + if libname!='liblibtorrent.so': + try: + self.http = HTTP() + self.http.fetch(url, download=dest + ".zip", progress=False) ### Alfa + log("%s -> %s" % (url, dest)) + xbmc.executebuiltin('XBMC.Extract("%s.zip","%s")' % (dest, self.dest_path), True) + filetools.remove(dest + ".zip") + except: + text = 'Failed download %s!' % libname + xbmc.executebuiltin("XBMC.Notification(%s,%s,%s,%s)" % (__plugin__,text,750,__icon__)) + else: + filetools.copy(os.path.join(self.dest_path, 'libtorrent.so'), dest, silent=True) ### Alfa + dest_alfa = os.path.join(xbmc.translatePath(__settings__.getAddonInfo('Path')), \ + 'lib', libname) ### Alfa + filetools.copy(dest, dest_alfa, silent=True) ### Alfa + dest_alfa = os.path.join(xbmc.translatePath(__settings__.getAddonInfo('Profile')), \ + 'custom_code', 'lib', libname) ### Alfa + filetools.copy(dest, dest_alfa, silent=True) ### Alfa + return True + + def android_workaround(self, new_dest_path): ### Alfa (entera) + import subprocess + + for libname in get_libname(self.platform): + libpath=os.path.join(self.dest_path, libname) + size=str(os.path.getsize(libpath)) + new_libpath=os.path.join(new_dest_path, libname) + + if filetools.exists(new_libpath): + new_size=str(os.path.getsize(new_libpath)) + if size != new_size: + filetools.remove(new_libpath) + if filetools.exists(new_libpath): + try: + command = ['su', '-c', 'rm', '%s' % new_libpath] + p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + output_cmd, error_cmd = p.communicate() + log('Comando ROOT: %s' % str(command)) + except: + log('Sin PERMISOS ROOT: %s' % str(command)) + + if not filetools.exists(new_libpath): + log('Deleted: (%s) %s -> (%s) %s' %(size, libpath, new_size, new_libpath)) + + if not filetools.exists(new_libpath): + filetools.copy(libpath, new_libpath, silent=True) ### ALFA + log('Copying... %s -> %s' %(libpath, new_libpath)) + + if not filetools.exists(new_libpath): + try: + command = ['su', '-c', 'cp', '%s' % libpath, '%s' % new_libpath] + p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + output_cmd, error_cmd = p.communicate() + log('Comando ROOT: %s' % str(command)) + + command = ['su', '-c', 'chmod', '777', '%s' % new_libpath] + p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + output_cmd, error_cmd = p.communicate() + log('Comando ROOT: %s' % str(command)) + except: + log('Sin PERMISOS ROOT: %s' % str(command)) + + if not filetools.exists(new_libpath): + log('ROOT Copy Failed!') + + else: + command = ['chmod', '777', '%s' % new_libpath] + p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + output_cmd, error_cmd = p.communicate() + log('Comando: %s' % str(command)) + else: + log('Module exists. Not copied... %s' % new_libpath) ### ALFA + + return new_dest_path diff --git a/lib/python_libtorrent/python_libtorrent/net.py b/lib/python_libtorrent/python_libtorrent/net.py new file mode 100644 index 00000000..68519899 --- /dev/null +++ b/lib/python_libtorrent/python_libtorrent/net.py @@ -0,0 +1,332 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' +from __future__ import division +from future import standard_library +standard_library.install_aliases() +#from builtins import str +import sys +PY3 = False +if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int +from builtins import object +from past.utils import old_div + +import os +import time +import re +import urllib.request, urllib.parse, urllib.error +# import http.cookiejar +import future.backports.http.cookiejar as http_cookiejar +import base64 + +import xbmc +import xbmcgui +#import xbmcvfs ### Alfa + +RE = { + 'content-disposition': re.compile('attachment;\sfilename="*([^"\s]+)"|\s') +} + +# ################################ +# +# HTTP +# +# ################################ + +class HTTP(object): + def __init__(self): + #self._dirname = xbmc.translatePath('special://temp') ### Alfa + #for subdir in ('xbmcup', 'script.module.libtorrent'): ### Alfa + self._dirname = os.path.dirname(os.path.dirname(__file__)) ### Alfa + #for subdir in ('lib', 'python_libtorrent'): ### Alfa + # self._dirname = os.path.join(self._dirname, subdir) ### Alfa + # if not xbmcvfs.exists(self._dirname): ### Alfa + # xbmcvfs.mkdir(self._dirname) ### Alfa + + def fetch(self, request, **kwargs): + self.con, self.fd, self.progress, self.cookies, self.request = None, None, None, None, request + + if not isinstance(self.request, HTTPRequest): + self.request = HTTPRequest(url=self.request, **kwargs) + + self.response = HTTPResponse(self.request) + + xbmc.log('XBMCup: HTTP: request: ' + str(self.request), xbmc.LOGDEBUG) + + try: + self._opener() + self._fetch() + except Exception as e: + xbmc.log('XBMCup: HTTP: ' + str(e), xbmc.LOGERROR) + if isinstance(e, urllib.error.HTTPError): + self.response.code = e.code + self.response.error = e + else: + self.response.code = 200 + + if self.fd: + self.fd.close() + self.fd = None + + if self.con: + self.con.close() + self.con = None + + if self.progress: + self.progress.close() + self.progress = None + + self.response.time = time.time() - self.response.time + + xbmc.log('XBMCup: HTTP: response: ' + str(self.response), xbmc.LOGDEBUG) + + return self.response + + def _opener(self): + + build = [urllib.request.HTTPHandler()] + + if self.request.redirect: + build.append(urllib.request.HTTPRedirectHandler()) + + if self.request.proxy_host and self.request.proxy_port: + build.append(urllib.request.ProxyHandler( + {self.request.proxy_protocol: self.request.proxy_host + ':' + str(self.request.proxy_port)})) + + if self.request.proxy_username: + proxy_auth_handler = urllib.request.ProxyBasicAuthHandler() + proxy_auth_handler.add_password('realm', 'uri', self.request.proxy_username, + self.request.proxy_password) + build.append(proxy_auth_handler) + + if self.request.cookies: + self.request.cookies = os.path.join(self._dirname, self.request.cookies) + self.cookies = http_cookiejar.MozillaCookieJar() + if os.path.isfile(self.request.cookies): + self.cookies.load(self.request.cookies) + build.append(urllib.request.HTTPCookieProcessor(self.cookies)) + + urllib.request.install_opener(urllib.request.build_opener(*build)) + + def _fetch(self): + params = {} if self.request.params is None else self.request.params + + if self.request.upload: + boundary, upload = self._upload(self.request.upload, params) + req = urllib.request.Request(self.request.url) + req.add_data(upload) + else: + + if self.request.method == 'POST': + if isinstance(params, dict) or isinstance(params, list): + params = urllib.parse.urlencode(params) + req = urllib.request.Request(self.request.url, params) + else: + req = urllib.request.Request(self.request.url) + + for key, value in self.request.headers.items(): + req.add_header(key, value) + + if self.request.upload: + req.add_header('Content-type', 'multipart/form-data; boundary=%s' % boundary) + req.add_header('Content-length', len(upload)) + + if self.request.auth_username and self.request.auth_password: + req.add_header('Authorization', 'Basic %s' % base64.encodestring( + ':'.join([self.request.auth_username, self.request.auth_password])).strip()) + + self.con = urllib.request.urlopen(req, timeout=self.request.timeout) + # self.con = urllib2.urlopen(req) + self.response.headers = self._headers(self.con.info()) + + if self.request.download: + self._download() + else: + self.response.body = self.con.read() + + if self.request.cookies: + self.cookies.save(self.request.cookies) + + def _download(self): + fd = open(self.request.download, 'wb') + if self.request.progress: + self.progress = xbmcgui.DialogProgress() + self.progress.create(u'Download') + + bs = 1024 * 8 + size = -1 + read = 0 + name = None + + if self.request.progress: + if 'content-length' in self.response.headers: + size = int(self.response.headers['content-length']) + if 'content-disposition' in self.response.headers: + r = RE['content-disposition'].search(self.response.headers['content-disposition']) + if r: + name = urllib.parse.unquote(r.group(1)) + + while 1: + buf = self.con.read(bs) + if not buf: + break + read += len(buf) + fd.write(buf) + + if self.request.progress: + self.progress.update(*self._progress(read, size, name)) + + self.response.filename = self.request.download + + def _upload(self, upload, params): + import mimetools + import itertools + + res = [] + boundary = mimetools.choose_boundary() + part_boundary = '--' + boundary + + if params: + for name, value in params.items(): + res.append([part_boundary, 'Content-Disposition: form-data; name="%s"' % name, '', value]) + + if isinstance(upload, dict): + upload = [upload] + + for obj in upload: + name = obj.get('name') + filename = obj.get('filename', 'default') + content_type = obj.get('content-type') + try: + body = obj['body'].read() + except AttributeError: + body = obj['body'] + + if content_type: + res.append([part_boundary, + 'Content-Disposition: file; name="%s"; filename="%s"' % (name, urllib.parse.quote(filename)), + 'Content-Type: %s' % content_type, '', body]) + else: + res.append([part_boundary, + 'Content-Disposition: file; name="%s"; filename="%s"' % (name, urllib.parse.quote(filename)), '', + body]) + + result = list(itertools.chain(*res)) + result.append('--' + boundary + '--') + result.append('') + return boundary, '\r\n'.join(result) + + def _headers(self, raw): + headers = {} + for line in str(raw).split('\n'): + pair = line.split(':', 1) + if len(pair) == 2: + tag = pair[0].lower().strip() + value = pair[1].strip() + if tag and value: + headers[tag] = value + return headers + + def _progress(self, read, size, name): + res = [] + if size < 0: + res.append(1) + else: + res.append(int(float(read) / (float(size) / 100.0))) + if name: + res.append(u'File: ' + name) + if size != -1: + res.append(u'Size: ' + self._human(size)) + res.append(u'Load: ' + self._human(read)) + return res + + def _human(self, size): + human = None + for h, f in (('KB', 1024), ('MB', 1024 * 1024), ('GB', 1024 * 1024 * 1024), ('TB', 1024 * 1024 * 1024 * 1024)): + if old_div(size, f) > 0: + human = h + factor = f + else: + break + if human is None: + return (u'%10.1f %s' % (size, u'byte')).replace(u'.0', u'') + else: + return u'%10.2f %s' % (float(size) / float(factor), human) + + +class HTTPRequest(object): + def __init__(self, url, method='GET', headers=None, cookies=None, params=None, upload=None, download=None, + progress=False, auth_username=None, auth_password=None, proxy_protocol='http', proxy_host=None, + proxy_port=None, proxy_username=None, proxy_password='', timeout=20.0, redirect=True, gzip=False): + if headers is None: + headers = {} + + self.url = url + self.method = method + self.headers = headers + + self.cookies = cookies + + self.params = params + + self.upload = upload + self.download = download + self.progress = progress + + self.auth_username = auth_username + self.auth_password = auth_password + + self.proxy_protocol = proxy_protocol + self.proxy_host = proxy_host + self.proxy_port = proxy_port + self.proxy_username = proxy_username + self.proxy_password = proxy_password + + self.timeout = timeout + + self.redirect = redirect + + self.gzip = gzip + + def __repr__(self): + return '%s(%s)' % (self.__class__.__name__, ','.join('%s=%r' % i for i in self.__dict__.items())) + + +class HTTPResponse(object): + def __init__(self, request): + self.request = request + self.code = None + self.headers = {} + self.error = None + self.body = None + self.filename = None + self.time = time.time() + + def __repr__(self): + args = ','.join('%s=%r' % i for i in self.__dict__.items() if i[0] != 'body') + if self.body: + args += ',body=' + else: + args += ',body=None' + return '%s(%s)' % (self.__class__.__name__, args) diff --git a/lib/python_libtorrent/python_libtorrent/platform_pulsar.py b/lib/python_libtorrent/python_libtorrent/platform_pulsar.py new file mode 100644 index 00000000..1153b44b --- /dev/null +++ b/lib/python_libtorrent/python_libtorrent/platform_pulsar.py @@ -0,0 +1,208 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' +from __future__ import print_function +import sys +PY3 = False +if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int + +import os +try: + import xbmc, xbmcaddon + #__settings__ = xbmcaddon.Addon(id='script.module.libtorrent') ### Alfa + #__version__ = __settings__.getAddonInfo('version') ### Alfa + #__plugin__ = __settings__.getAddonInfo('name') + " v." + __version__ ### Alfa + __settings__ = xbmcaddon.Addon(id='plugin.video.kod') ### Alfa + __version__ = '1.1.17' ### Alfa + __plugin__ = "python-libtorrent v.1.1.7" ### Alfa +except: + __plugin__ = "python-libtorrent v.1.1.7" ### Alfa + pass + +def log(msg): + try: + xbmc.log("### [%s]: %s" % (__plugin__,msg,), level=xbmc.LOGNOTICE ) + except UnicodeEncodeError: + xbmc.log("### [%s]: %s" % (__plugin__,msg.encode("utf-8", "ignore"),), level=xbmc.LOGNOTICE ) + except: + try: + xbmc.log("### [%s]: %s" % (__plugin__,'ERROR LOG',), level=xbmc.LOGNOTICE ) + except: + print(msg) + +def get_libname(platform): + libname=[] + if platform['system'] in ['darwin', 'linux_x86', 'linux_arm', 'linux_armv6', + 'linux_armv7', 'linux_x86_64', 'ios_arm', + 'linux_mipsel_ucs2', 'linux_mipsel_ucs4', 'linux_aarch64_ucs2', 'linux_aarch64_ucs4']: + libname=['libtorrent.so'] + elif platform['system'] in ['windows', 'windows_x64']: ### Alfa + libname=['libtorrent.pyd'] + elif platform['system'] in ['android_armv7', 'android_x86']: + libname=['libtorrent.so', 'liblibtorrent.so'] + return libname + +def get_platform(): + #__settings__ = xbmcaddon.Addon(id='script.module.libtorrent') ### Alfa + #__version__ = __settings__.getAddonInfo('version') ### Alfa + #__plugin__ = __settings__.getAddonInfo('name') + " v." + __version__ ### Alfa + __settings__ = xbmcaddon.Addon(id='plugin.video.kod') ### Alfa + __version__ = '1.1.17' ### Alfa + __plugin__ = "python-libtorrent v.1.1.7" ### Alfa + __language__ = __settings__.getLocalizedString + + if __settings__.getSetting('custom_system').lower() == "true": + system = int(__settings__.getSetting('set_system')) + log('USE CUSTOM SYSTEM: '+__language__(1100+system)) + + ret={} + + if system==0: + ret["os"] = "windows" + ret["arch"] = "x86" + elif system==1: + ret["os"] = "linux" + ret["arch"] = "x86" + elif system==2: + ret["os"] = "linux" + ret["arch"] = "x64" + elif system==3: + ret["os"] = "linux" + ret["arch"] = "armv7" + elif system==4: + ret["os"] = "linux" + ret["arch"] = "armv6" + elif system==5: + ret["os"] = "android" + ret["arch"] = "arm" + elif system==6: + ret["os"] = "android" + ret["arch"] = "x86" + elif system==7: + ret["os"] = "darwin" + ret["arch"] = "x64" + elif system==8: + ret["os"] = "ios" + ret["arch"] = "arm" + elif system==9: + ret["os"] = "ios" + ret["arch"] = "arm" + elif system==10: + ret["os"] = "linux" + ret["arch"] = "mipsel_ucs2" + elif system==11: + ret["os"] = "linux" + ret["arch"] = "mipsel_ucs4" + elif system == 12: + ret["os"] = "linux" + ret["arch"] = "linux_aarch64_ucs2" + elif system == 13: + ret["os"] = "linux" + ret["arch"] = "linux_aarch64_ucs4" + else: + + ret = { + "arch": sys.maxsize > 2 ** 32 and "x64" or "x86", + } + if xbmc.getCondVisibility("system.platform.android"): + ret["os"] = "android" + if "arm" in os.uname()[4] or "aarch64" in os.uname()[4]: + ret["arch"] = "arm" + elif xbmc.getCondVisibility("system.platform.linux"): + ret["os"] = "linux" + uname=os.uname()[4] + if "arm" in uname: + if "armv7" in uname: + ret["arch"] = "armv7" + else: + ret["arch"] = "armv6" + elif "mips" in uname: + if sys.maxunicode > 65536: + ret["arch"] = 'mipsel_ucs4' + else: + ret["arch"] = 'mipsel_ucs2' + elif "aarch64" in uname: + if sys.maxsize > 2147483647: #is_64bit_system + if sys.maxunicode > 65536: + ret["arch"] = 'aarch64_ucs4' + else: + ret["arch"] = 'aarch64_ucs2' + else: + ret["arch"] = "armv7" #32-bit userspace + elif xbmc.getCondVisibility("system.platform.windows"): + ret["os"] = "windows" + elif xbmc.getCondVisibility("system.platform.osx"): + ret["os"] = "darwin" + elif xbmc.getCondVisibility("system.platform.ios"): + ret["os"] = "ios" + ret["arch"] = "arm" + + ret=get_system(ret) + return ret + +def get_system(ret): + ret["system"] = '' + ret["message"] = ['', ''] + + if ret["os"] == 'windows' and ret["arch"] != "x64": ### Alfa + ret["system"] = 'windows' + ret["message"] = ['Windows has static compiled python-libtorrent included.', + 'You should install "script.module.libtorrent" from "MyShows.me Kodi Repo"'] + elif ret["os"] == 'windows' and ret["arch"] == "x64": ### Alfa + ret["system"] = 'windows_x64' ### Alfa + ret["message"] = ['Windows x64 has static compiled python-libtorrent included.', ### Alfa + 'You should install "script.module.libtorrent" from "MyShows.me Kodi Repo"'] ### Alfa + elif ret["os"] == "linux" and ret["arch"] == "x64": + ret["system"] = 'linux_x86_64' + ret["message"] = ['Linux x64 has not static compiled python-libtorrent included.', + 'You should install it by "sudo apt-get install python-libtorrent"'] + elif ret["os"] == "linux" and ret["arch"] == "x86": + ret["system"] = 'linux_x86' + ret["message"] = ['Linux has static compiled python-libtorrent included but it didn\'t work.', + 'You should install it by "sudo apt-get install python-libtorrent"'] + elif ret["os"] == "linux" and "aarch64" in ret["arch"]: + ret["system"] = 'linux_' + ret["arch"] + ret["message"] = ['Linux has static compiled python-libtorrent included but it didn\'t work.', + 'You should install it by "sudo apt-get install python-libtorrent"'] + elif ret["os"] == "linux" and ("arm" or "mips" in ret["arch"]): + ret["system"] = 'linux_'+ret["arch"] + ret["message"] = ['As far as I know you can compile python-libtorrent for ARMv6-7.', + 'You should search for "OneEvil\'s OpenELEC libtorrent" or use Ace Stream.'] + elif ret["os"] == "android": + if ret["arch"]=='arm': + ret["system"] = 'android_armv7' + else: + ret["system"] = 'android_x86' + ret["message"] = ['Please contact DiMartino on kodi.tv forum. We compiled python-libtorrent for Android,', + 'but we need your help with some tests on different processors.'] + elif ret["os"] == "darwin": + ret["system"] = 'darwin' + ret["message"] = ['It is possible to compile python-libtorrent for OS X.', + 'But you would have to do it by yourself, there is some info on github.com.'] + elif ret["os"] == "ios" and ret["arch"] == "arm": + ret["system"] = 'ios_arm' + ret["message"] = ['It is probably NOT possible to compile python-libtorrent for iOS.', + 'But you can use torrent-client control functions.'] + + return ret \ No newline at end of file diff --git a/lib/python_libtorrent/windows/0.16.19/__init__.py b/lib/python_libtorrent/windows/0.16.19/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/windows/0.16.19/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/windows/0.16.19/libtorrent.pyd.size.txt b/lib/python_libtorrent/windows/0.16.19/libtorrent.pyd.size.txt new file mode 100644 index 00000000..f7b7ca56 --- /dev/null +++ b/lib/python_libtorrent/windows/0.16.19/libtorrent.pyd.size.txt @@ -0,0 +1 @@ +2363904 \ No newline at end of file diff --git a/lib/python_libtorrent/windows/1.0.6/__init__.py b/lib/python_libtorrent/windows/1.0.6/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/windows/1.0.6/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/windows/1.0.6/libtorrent.pyd.size.txt b/lib/python_libtorrent/windows/1.0.6/libtorrent.pyd.size.txt new file mode 100644 index 00000000..3c2fa282 --- /dev/null +++ b/lib/python_libtorrent/windows/1.0.6/libtorrent.pyd.size.txt @@ -0,0 +1 @@ +2281472 \ No newline at end of file diff --git a/lib/python_libtorrent/windows/1.0.8/__init__.py b/lib/python_libtorrent/windows/1.0.8/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/windows/1.0.8/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/windows/1.0.8/libtorrent.pyd.size.txt b/lib/python_libtorrent/windows/1.0.8/libtorrent.pyd.size.txt new file mode 100644 index 00000000..d073a9fc --- /dev/null +++ b/lib/python_libtorrent/windows/1.0.8/libtorrent.pyd.size.txt @@ -0,0 +1 @@ +2426368 \ No newline at end of file diff --git a/lib/python_libtorrent/windows/1.0.9/__init__.py b/lib/python_libtorrent/windows/1.0.9/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/windows/1.0.9/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/windows/1.0.9/libtorrent.pyd.size.txt b/lib/python_libtorrent/windows/1.0.9/libtorrent.pyd.size.txt new file mode 100644 index 00000000..117a8649 --- /dev/null +++ b/lib/python_libtorrent/windows/1.0.9/libtorrent.pyd.size.txt @@ -0,0 +1 @@ +2427392 \ No newline at end of file diff --git a/lib/python_libtorrent/windows/1.1.1/__init__.py b/lib/python_libtorrent/windows/1.1.1/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/windows/1.1.1/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/windows/1.1.1/libtorrent.pyd.size.txt b/lib/python_libtorrent/windows/1.1.1/libtorrent.pyd.size.txt new file mode 100644 index 00000000..9f5f81bd --- /dev/null +++ b/lib/python_libtorrent/windows/1.1.1/libtorrent.pyd.size.txt @@ -0,0 +1 @@ +2671616 \ No newline at end of file diff --git a/lib/python_libtorrent/windows/1.2.2/__init__.py b/lib/python_libtorrent/windows/1.2.2/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/windows/1.2.2/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/windows/1.2.2/libtorrent.pyd.size.txt b/lib/python_libtorrent/windows/1.2.2/libtorrent.pyd.size.txt new file mode 100644 index 00000000..1b2e3d2c --- /dev/null +++ b/lib/python_libtorrent/windows/1.2.2/libtorrent.pyd.size.txt @@ -0,0 +1 @@ +2996736 \ No newline at end of file diff --git a/lib/python_libtorrent/windows/1.2.3/__init__.py b/lib/python_libtorrent/windows/1.2.3/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/windows/1.2.3/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/windows/1.2.3/libtorrent.pyd.size.txt b/lib/python_libtorrent/windows/1.2.3/libtorrent.pyd.size.txt new file mode 100644 index 00000000..8d654ae7 --- /dev/null +++ b/lib/python_libtorrent/windows/1.2.3/libtorrent.pyd.size.txt @@ -0,0 +1 @@ +3049472 \ No newline at end of file diff --git a/lib/python_libtorrent/windows/__init__.py b/lib/python_libtorrent/windows/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/windows/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/windows_x64/1.2.2/__init__.py b/lib/python_libtorrent/windows_x64/1.2.2/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/windows_x64/1.2.2/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/windows_x64/1.2.2/libtorrent.pyd b/lib/python_libtorrent/windows_x64/1.2.2/libtorrent.pyd new file mode 100644 index 00000000..eb0bf80f Binary files /dev/null and b/lib/python_libtorrent/windows_x64/1.2.2/libtorrent.pyd differ diff --git a/lib/python_libtorrent/windows_x64/1.2.2/libtorrent.pyd.size.txt b/lib/python_libtorrent/windows_x64/1.2.2/libtorrent.pyd.size.txt new file mode 100644 index 00000000..449c75d2 --- /dev/null +++ b/lib/python_libtorrent/windows_x64/1.2.2/libtorrent.pyd.size.txt @@ -0,0 +1 @@ +4290048 \ No newline at end of file diff --git a/lib/python_libtorrent/windows_x64/1.2.3/__init__.py b/lib/python_libtorrent/windows_x64/1.2.3/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/windows_x64/1.2.3/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/lib/python_libtorrent/windows_x64/1.2.3/libtorrent.pyd.size.txt b/lib/python_libtorrent/windows_x64/1.2.3/libtorrent.pyd.size.txt new file mode 100644 index 00000000..2a4790d3 --- /dev/null +++ b/lib/python_libtorrent/windows_x64/1.2.3/libtorrent.pyd.size.txt @@ -0,0 +1 @@ +3797504 \ No newline at end of file diff --git a/lib/python_libtorrent/windows_x64/__init__.py b/lib/python_libtorrent/windows_x64/__init__.py new file mode 100644 index 00000000..e0aed70e --- /dev/null +++ b/lib/python_libtorrent/windows_x64/__init__.py @@ -0,0 +1,24 @@ +#-*- coding: utf-8 -*- +''' + python-libtorrent for Kodi (script.module.libtorrent) + Copyright (C) 2015-2016 DiMartino, srg70, RussakHH, aisman + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +''' diff --git a/platformcode/config.py b/platformcode/config.py index 0a511e47..8a725ae9 100644 --- a/platformcode/config.py +++ b/platformcode/config.py @@ -311,7 +311,7 @@ def set_setting(name, value, channel="", server=""): canal 'channel'. Devuelve el valor cambiado o None si la asignacion no se ha podido completar. - Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.alfa\settings_channels el + Si se especifica el nombre del canal busca en la ruta \addon_data\plugin.video.kod\settings_channels el archivo channel_data.json y establece el parametro 'name' al valor indicado por 'value'. Si el archivo channel_data.json no existe busca en la carpeta channels el archivo channel.json y crea un archivo channel_data.json antes de modificar el parametro 'name'. diff --git a/platformcode/custom_code.py b/platformcode/custom_code.py index 17381cf6..4bbde9bc 100644 --- a/platformcode/custom_code.py +++ b/platformcode/custom_code.py @@ -29,7 +29,7 @@ def init(): """ Todo el código añadido al add-on se borra con cada actualización. Esta función permite restaurarlo automáticamente con cada actualización. Esto permite al usuario tener su propio código, bajo su responsabilidad, y restaurarlo al add-on cada vez que se actualiza. - El mecanismo funciona copiando el contenido de la carpeta-arbol "./userdata/addon_data/plugin.video.alfa/custom_code/..." sobre + El mecanismo funciona copiando el contenido de la carpeta-arbol "./userdata/addon_data/plugin.video.kod/custom_code/..." sobre las carpetas de código del add-on. No verifica el contenido, solo vuelca(reemplaza) el contenido de "custom_code". El usuario almacenará en las subcarpetas de "custom_code" su código actualizado y listo para ser copiado en cualquier momento. @@ -42,7 +42,7 @@ def init(): from platformcode import custom_code custom_code.init() - 2.- En el inicio de Kodi, comprueba si existe la carpeta "custom_code" en "./userdata/addon_data/plugin.video.alfa/". + 2.- En el inicio de Kodi, comprueba si existe la carpeta "custom_code" en "./userdata/addon_data/plugin.video.kod/". Si no existe, la crea y sale sin más, dando al ususario la posibilidad de copiar sobre esa estructura su código, y que la función la vuelque sobre el add-on en el próximo inicio de Kodi. @@ -63,7 +63,7 @@ def init(): try: #Borra el .zip de instalación de Alfa de la carpeta Packages, por si está corrupto, y que así se pueda descargar de nuevo - version = 'plugin.video.alfa-%s.zip' % config.get_addon_version(with_fix=False) + version = 'plugin.video.kod-%s.zip' % config.get_addon_version(with_fix=False) filetools.remove(filetools.join(xbmc.translatePath('special://home'), 'addons', 'packages', version), True) #Verifica si Kodi tiene algún achivo de Base de Datos de Vídeo de versiones anteriores, entonces los borra @@ -329,6 +329,7 @@ def update_libtorrent(): config.get_setting("libtorrent_path", server="torrent", default="") : return + try: from lib.python_libtorrent.python_libtorrent import get_libtorrent except Exception as e: diff --git a/platformcode/launcher.py b/platformcode/launcher.py index 1d3e2427..dbc9fbb3 100644 --- a/platformcode/launcher.py +++ b/platformcode/launcher.py @@ -490,7 +490,7 @@ def play_from_library(item): check_next_ep = nextep.check(item) - window_type = 1 if check_next_ep else config.get_setting("window_type", "videolibrary") + window_type = config.get_setting("window_type", "videolibrary") # y volvemos a lanzar kodi if xbmc.getCondVisibility('Window.IsMedia') and not window_type == 1: diff --git a/platformcode/mct.py b/platformcode/mct.py index b7d00b44..bf940e40 100644 --- a/platformcode/mct.py +++ b/platformcode/mct.py @@ -70,7 +70,7 @@ if DOWNLOAD_LIMIT: else: DOWNLOAD_LIMIT = 0 UPLOAD_LIMIT = 100 * 1024 -msg_header = 'Alfa MCT Cliente Torrent' +msg_header = 'KoD Client Torrent MCT' def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): @@ -93,7 +93,7 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): url = decode_adfly(data) except: ddd = xbmcgui.Dialog() - ddd.ok( msg_header + ": Sin soporte adf.ly", "El script no tiene soporte para el acortador de urls adf.ly.", "", "url: " + url ) + ddd.ok( msg_header + ": No adf.ly support "," The script has no support for the adf.ly url shortener.", "", "url: " + url ) return """ @@ -153,10 +153,9 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): except Exception as e: do = xbmcgui.Dialog() e = e1 or e2 - do.ok('ERROR en el cliente MCT Libtorrent', 'Módulo no encontrado o imcompatible con el dispositivo.', - 'Reporte el fallo adjuntando un "log".', str(e)) + do.ok(config.get_localized_string(30035) + 'MCT Libtorrent', config.get_localized_string(30036), config.get_localized_string(60015), str(e)) return - + log("XXX libtorrent version: %s" % lt.version) log("##### Torrent file: %s ##" % torrent_file) @@ -221,7 +220,7 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): dp = xbmcgui.DialogProgress() dp.create(msg_header) while not h.has_metadata(): - message, porcent, msg_file, s, download = getProgress(h, "Creando torrent desde magnet") + message, porcent, msg_file, s, download = getProgress(h, "Creating torrent from magnet") dp.update(porcent, message, msg_file) if s.state == 1: download = 1 if dp.iscanceled(): @@ -257,7 +256,7 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): # -- Prioritarizar/Seleccionar archivo----------------------- _index, video_file, video_size, len_files = get_video_files_sizes( info ) if len_files == 0: - dp = xbmcgui.Dialog().ok("No se puede reproducir", "El torrent no contiene ningún archivo de vídeo") + dp = xbmcgui.Dialog().ok(config.get_localized_string(20000), config.get_localized_string(60339)) if _index < 0: log("##### parts = %s #########" % str(video_file)) @@ -280,21 +279,18 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): extracted_rar = False global erase_file_path erase_file_path = '' - + if _video_file_ext == ".rar": rar = True filename = video_file if "/" in filename: filename = filename.split("/")[1] if RAR and BACKGROUND: - xbmcgui.Dialog().notification("Encontrado archivo .RAR de %.2f MB" % (video_size / 1048576.0), - "Puedes realizar otras tareas en Kodi mientrastanto. " + \ - "Te informaremos...", time=10000) + xbmcgui.Dialog().notification(config.get_localized_string(70768) % (video_size / 1048576.0), config.get_localized_string(70769), time=10000) dialog = True else: - dialog = xbmcgui.Dialog().yesno("Encontrado archivo .RAR...", "Nombre: %s" % filename, - "Tamaño: %.2f MB" % (video_size / 1048576.0), - "¿Descargar en segundo plano? Cancelar en menú Descargas") + dialog = xbmcgui.Dialog().yesno(config.get_localized_string(70770), config.get_localized_string(70771) % filename, + config.get_localized_string(70772) % (video_size / 1048576.0), config.get_localized_string(70773)) if dialog: dp_cerrado = False dp = xbmcgui.DialogProgressBG() @@ -365,7 +361,7 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): dp_cerrado = True dp = xbmcgui.DialogProgress() dp.create(msg_header) - + # -- Recuperar los datos del progreso ------------------- message, porcent, msg_file, s, download = getProgress(h, video_file, _pf=_pieces_info) @@ -381,12 +377,12 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): video_file, rar, play_file, erase_path = torr.extract_files(video_file, \ save_path_videos, password, dp, item=item, torr_client='MCT') # ... extraemos el vídeo del RAR dp.close() - + erase_file_path = erase_path ren_video_file = erase_file_path extracted_rar = rar if not play_file: - remove_files( download, torrent_file, erase_file_path, ses, h, ren_video_file ) + remove_files( download, torrent_file, erase_file_path, ses, h, ren_video_file, erase_file_path ) return is_view = "Ok" save_path_videos = play_file @@ -421,14 +417,14 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): if not bkg_user: is_view = "Ok" else: - remove_files( download, torrent_file, video_file, ses, h, ren_video_file ) + remove_files( download, torrent_file, video_file, ses, h, ren_video_file, erase_file_path ) return if is_view == "Ok": # -- Esperando a que termine otra reproducción -------------------------- while xbmc.Player().isPlaying(): xbmc.sleep(3000) - + # -- Player - Ver el vídeo -------------------------- playlist = xbmc.PlayList( xbmc.PLAYLIST_VIDEO ) playlist.clear() @@ -533,7 +529,7 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): message, porcent, msg_file, s, download = getProgress(h, video_file, _pf=_pieces_info) dp.update(porcent, message, '[CR]' + message + '[CR]' + msg_file) else: - dp.update(100, "Descarga completa: " + video_file) + dp.update(100, "Download complete: " + video_file) # -- Se canceló el progreso en el visionado - # -- Continuar - @@ -556,26 +552,25 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): player.pause() is_greater_num_pieces_pause = False is_greater_num_pieces_canceled = 0 - + # -- El usuario cancelo el visionado -------- # -- Terminar - if player.ended: # -- Diálogo eliminar archivos ---------- - remove_files( download, torrent_file, video_file, ses, h, ren_video_file ) + remove_files( download, torrent_file, video_file, ses, h, ren_video_file, erase_file_path ) return - + xbmc.sleep(1000) - + # -- Kodi - Se cerró el visionado ----------------------- # -- Continuar | Terminar - if is_view == "Ok" and not xbmc.Player().isPlaying(): dp.close() - + if h.status().num_pieces < tot_piece_set: # -- Diálogo continuar o terminar --------------- # Preguntamos si el usuario quiere pasar a backgroung - ok = xbmcgui.Dialog().yesno(msg_header, "¿Borramos los archivo descargados? (incompletos)", - "Selecciona NO para seguir descargando en segundo plano") + ok = xbmcgui.Dialog().yesno(msg_header, config.get_localized_string(30031), config.get_localized_string(30032)) else: ok = True # -- NO --------------------------------------------- if not ok: @@ -584,12 +579,12 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): dp_cerrado = False dp = xbmcgui.DialogProgressBG() dp.create(msg_header) - + else: # -- Terminar: ---------------------------------- # -- Comprobar si el vídeo pertenece a una ------ # -- lista de archivos - - remove_files( download, torrent_file, video_file, ses, h, ren_video_file ) + remove_files( download, torrent_file, video_file, ses, h, ren_video_file, erase_file_path ) dp.close() return """ @@ -597,7 +592,7 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): if _index < 0 or len_files == 1: # -- Diálogo eliminar archivos -------------- #video_file = _video_file - remove_files( download, torrent_file, video_file, ses, h, ren_video_file ) + remove_files( download, torrent_file, video_file, ses, h, ren_video_file, erase_file_path ) dp.close() return else: @@ -618,18 +613,17 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): if not bkg_user and dp_cerrado and dp.iscanceled(): dp.close() # Preguntamos si el usuario quiere pasar a backgroung - dialog = xbmcgui.Dialog().yesno(msg_header, "¿Borramos los archivo descargados? (incompletos)", - "Seleccione NO para seguir descargando en segundo plano") + dialog = xbmcgui.Dialog().yesno(msg_header, config.get_localized_string(30031), config.get_localized_string(30032)) if not dialog: bkg_user = True dp_cerrado = False dp = xbmcgui.DialogProgressBG() dp.create(msg_header) if ses_lt: h.set_download_limit(DOWNLOAD_LIMIT) - + else: - - remove_files( download, torrent_file, video_file, ses, h, ren_video_file ) + + remove_files( download, torrent_file, video_file, ses, h, ren_video_file, erase_file_path ) return # -- Comprobar si el vídeo pertenece a una lista de - # -- archivos - @@ -637,7 +631,7 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): if _index < 0 or len_files == 1: # -- Diálogo eliminar archivos ------------------ #video_file = _video_file - remove_files( download, torrent_file, video_file, ses, h, ren_video_file ) + remove_files( download, torrent_file, video_file, ses, h, ren_video_file, erase_file_path ) return else: # -- Lista de archivos. Diálogo de opciones ----- @@ -651,7 +645,7 @@ def play(url, xlistitem={}, is_view=None, subtitle="", password="", item=None): if is_view == "Ok" and not xbmc.Player().isPlaying(): dp.close() # -- Diálogo eliminar archivos -------------------------- - remove_files( download, torrent_file, video_file, ses, h, ren_video_file ) + remove_files( download, torrent_file, video_file, ses, h, ren_video_file, erase_file_path) return @@ -764,7 +758,7 @@ def get_video_files_sizes( info ): if "/" in _file_name: _file_name = _file_name.split('/')[1] _file_ext = os.path.splitext( _title )[1] - + if '.rar' in _file_ext or '.zip' in _file_ext: rar_parts += 1 rar_size += _size @@ -791,7 +785,7 @@ def get_video_files_sizes( info ): return index, rar_parts, rar_size, len(opciones) else: d = xbmcgui.Dialog() - seleccion = d.select(msg_header + ": Selecciona el vídeo, o 'Cancelar' para todos", list(opciones.values())) + seleccion = d.select(msg_header + config.get_localized_string(30034), list(opciones.values())) else: seleccion = 0 index = list(opciones.keys())[seleccion] @@ -803,7 +797,7 @@ def get_video_files_sizes( info ): return index, vfile_name[seleccion], vfile_size[seleccion], len(opciones) # -- Preguntar si se desea borrar lo descargado ----------------- -def remove_files( download, torrent_file, video_file, ses, h, ren_video_file="" ): +def remove_files( download, torrent_file, video_file, ses, h, ren_video_file="", erase_file_path='' ): dialog_view = False torrent = False @@ -815,21 +809,18 @@ def remove_files( download, torrent_file, video_file, ses, h, ren_video_file="" dialog_view = True if bkg_user and not extracted_rar: dialog_view = False - - if erase_file_path and erase_file_path != \ - os.path.join( DOWNLOAD_PATH , "MCT-torrent-videos" ): + + if erase_file_path and erase_file_path != os.path.join( DOWNLOAD_PATH , "MCT-torrent-videos" ): ren_video_file = erase_file_path - if filetools.isfile(ren_video_file) and filetools.split(ren_video_file)[0] != \ - os.path.join( DOWNLOAD_PATH , "MCT-torrent-videos" ): + if filetools.isfile(ren_video_file) and filetools.split(ren_video_file)[0] != os.path.join( DOWNLOAD_PATH , "MCT-torrent-videos" ): ren_video_file = filetools.split(ren_video_file)[0] - elif filetools.isdir(ren_video_file) and ren_video_file == \ - os.path.join( DOWNLOAD_PATH , "MCT-torrent-videos" ): + elif filetools.isdir(ren_video_file) and ren_video_file == os.path.join( DOWNLOAD_PATH , "MCT-torrent-videos" ): ren_video_file = '' if dialog_view and ren_video_file: if h.status().num_pieces >= tot_piece_set: d = xbmcgui.Dialog() - ok = d.yesno(msg_header, '¿Borrarmos los archivos descargados? (completos)', video_file) + ok = d.yesno(msg_header, config.get_localized_string(30031), video_file) else: ok = True @@ -850,7 +841,7 @@ def remove_files( download, torrent_file, video_file, ses, h, ren_video_file="" try: if os.path.isdir(ren_video_file): filetools.rmdirtree(ren_video_file, silent=True) - elif os.path.exists(ren_video_file) and os.path.isfile(ren_video_file): + elif os.path.exists(ren_video_file) and os.path.isfile(ren_video_file): os.remove(ren_video_file) log("##### erase_file_path: %s" % ren_video_file) except: @@ -880,7 +871,7 @@ def remove_files( download, torrent_file, video_file, ses, h, ren_video_file="" pass log("### End session #########") - return + return # -- Descargar de la web los datos para crear el torrent -------- diff --git a/platformcode/platformtools.py b/platformcode/platformtools.py index 5188f01a..5889e07d 100644 --- a/platformcode/platformtools.py +++ b/platformcode/platformtools.py @@ -657,7 +657,7 @@ def set_context_commands(item, parent_item): (sys.argv[0], item.clone(action="add_pelicula_to_library", from_action=item.action).tourl()))) - if item.channel != "downloads" and item.server != 'torrent': + if item.channel not in ["downloads", "videolibrary"] and item.server != 'torrent': # Descargar pelicula if item.contentType == "movie" and item.contentTitle: context_commands.append((config.get_localized_string(60354), "XBMC.RunPlugin(%s?%s)" % @@ -672,6 +672,10 @@ def set_context_commands(item, parent_item): (sys.argv[0], item.clone(channel="downloads", action="save_download", from_channel=item.channel, from_action=item.action).tourl()))) + context_commands.append((config.get_localized_string(60357), "XBMC.RunPlugin(%s?%s)" % + (sys.argv[0], item.clone(channel="downloads", action="save_download", download="seson", + from_channel=item.channel, + from_action=item.action).tourl()))) # Descargar episodio elif item.contentType == "episode": context_commands.append((config.get_localized_string(60356), "XBMC.RunPlugin(%s?%s)" % @@ -1235,8 +1239,8 @@ def play_torrent(item, xlistitem, mediaurl): # Opciones disponibles para Reproducir torrents torrent_options = list() - torrent_options.append(["Cliente interno (necesario libtorrent)"]) - torrent_options.append(["Cliente interno MCT (necesario libtorrent)"]) + torrent_options.append([config.get_localized_string(30033)]) + torrent_options.append([config.get_localized_string(30033) + ' MCT']) torrent_options.extend(torrent_client_installed(show_tuple=True)) @@ -1263,10 +1267,9 @@ def play_torrent(item, xlistitem, mediaurl): # Si es Libtorrent y no está soportado, se ofrecen alternativas, si las hay... if seleccion < 2 and not LIBTORRENT: - dialog_ok('Cliente Interno (LibTorrent):', 'Este cliente no está soportado en su dispositivo.', \ - 'Error: [COLOR yellow]%s[/COLOR]' % config.get_setting("libtorrent_error", server="torrent", - default=''), \ - 'Use otro cliente Torrent soportado') + dialog_ok(config.get_localized_string(30033), config.get_localized_string(70774), \ + config.get_localized_string(70774) % config.get_setting("libtorrent_error", server="torrent", default=''), \ + config.get_localized_string(70776)) if len(torrent_options) > 2: seleccion = dialog_select(config.get_localized_string(70193), [opcion[0] for opcion in torrent_options]) if seleccion < 2: @@ -1276,14 +1279,8 @@ def play_torrent(item, xlistitem, mediaurl): # Si es Torrenter o Elementum con opción de Memoria, se ofrece la posibilidad ee usar Libtorrent temporalemente elif seleccion > 1 and LIBTORRENT and UNRAR and 'RAR-' in item.torrent_info and ( "torrenter" in torrent_options[seleccion][0] \ - or ("elementum" in torrent_options[seleccion][0] and xbmcaddon.Addon(id="plugin.video.%s" \ - % torrent_options[seleccion][ - 0].replace('Plugin externo: ', - '')).getSetting( - 'download_storage') == '1')): - if dialog_yesno(torrent_options[seleccion][0], 'Este plugin externo no soporta extraer on-line archivos RAR', \ - '[COLOR yellow]¿Quiere que usemos esta vez el Cliente interno MCT?[/COLOR]', \ - 'Esta operación ocupará en disco [COLOR yellow][B]%s+[/B][/COLOR] veces el tamaño del vídeo' % size_rar): + or ("elementum" in torrent_options[seleccion][0] and xbmcaddon.Addon(id="plugin.video.%s" % torrent_options[seleccion][0].replace('Plugin externo: ','')).getSetting('download_storage') == '1')): + if dialog_yesno(torrent_options[seleccion][0], config.get_localized_string(70777), config.get_localized_string(70778), config.get_localized_string(70779) % size_rar): seleccion = 1 else: return @@ -1292,11 +1289,7 @@ def play_torrent(item, xlistitem, mediaurl): torrent_options[seleccion][0] \ and xbmcaddon.Addon(id="plugin.video.%s" % torrent_options[seleccion][0].replace('Plugin externo: ', '')) \ .getSetting('download_storage') == '1': - if dialog_yesno(torrent_options[seleccion][0], - 'Elementum con descarga en [COLOR yellow]Memoria[/COLOR] no soporta ' + \ - 'extraer on-line archivos RAR (ocupación en disco [COLOR yellow][B]%s+[/B][/COLOR] veces)' % size_rar, \ - '[COLOR yellow]¿Quiere llamar a los Ajustes de Elementum para cambiar [B]temporalmente[/B] ' + \ - 'a [COLOR hotpink]"Usar Archivos"[/COLOR] y [B]reintentarlo[/B]?[/COLOR]'): + if dialog_yesno(torrent_options[seleccion][0], congig.get_localized_string(70780) % size_rar, congig.get_localized_string(70781)): __settings__ = xbmcaddon.Addon( id="plugin.video.%s" % torrent_options[seleccion][0].replace('Plugin externo: ', '')) __settings__.openSettings() # Se visulizan los Ajustes de Elementum @@ -1329,17 +1322,14 @@ def play_torrent(item, xlistitem, mediaurl): password = item.password videolibrary_path = config.get_videolibrary_path() # Calculamos el path absoluto a partir de la Videoteca - if scrapertools.find_single_match(videolibrary_path, - '(^\w+:\/\/)'): # Si es una conexión REMOTA, usamos userdata local + if scrapertools.find_single_match(videolibrary_path, '(^\w+:\/\/)'): # Si es una conexión REMOTA, usamos userdata local videolibrary_path = config.get_data_path() # Calculamos el path absoluto a partir de Userdata if not filetools.exists(videolibrary_path): # Si no existe el path, pasamos al modo clásico videolibrary_path = False else: - torrents_path = filetools.join(videolibrary_path, 'temp_torrents_Alfa', \ - 'cliente_torrent_Alfa.torrent') # path descarga temporal - if not videolibrary_path or not filetools.exists(filetools.join(videolibrary_path, \ - 'temp_torrents_Alfa')): # Si no existe la carpeta temporal, la creamos - filetools.mkdir(filetools.join(videolibrary_path, 'temp_torrents_Alfa')) + torrents_path = filetools.join(videolibrary_path, 'temp_torrents', 'client_torrent.torrent') # path descarga temporal + if not videolibrary_path or not filetools.exists(filetools.join(videolibrary_path, 'temp_torrents')): # Si no existe la carpeta temporal, la creamos + filetools.mkdir(filetools.join(videolibrary_path, 'temp_torrents')) # Si hay headers, se pasar a la petición de descarga del .torrent headers = {} @@ -1355,10 +1345,7 @@ def play_torrent(item, xlistitem, mediaurl): if item.referer: referer = item.referer if item.post: post = item.post # Descargamos el .torrent - size, url, torrent_f, rar_files = generictools.get_torrent_size(item.url, referer, post, \ - torrents_path=torrents_path, - timeout=timeout, lookup=False, - headers=headers, short_pad=True) + size, url, torrent_f, rar_files = generictools.get_torrent_size(item.url, referer, post, torrents_path=torrents_path, timeout=timeout, lookup=False, headers=headers, short_pad=True) if url: url_stat = True item.url = url @@ -1393,7 +1380,17 @@ def play_torrent(item, xlistitem, mediaurl): mediaurl = item.url if seleccion >= 0: - + + # Si tiene .torrent válido o magnet, lo registramos + if size or item.url.startswith('magnet'): + try: + import threading + if not PY3: from lib import alfaresolver + else: from lib import alfaresolver_py3 as alfaresolver + threading.Thread(target=alfaresolver.frequency_count, args=(item, )).start() + except: + logger.error(traceback.format_exc(1)) + # Reproductor propio BT (libtorrent) if seleccion == 0: torrent.bt_client(mediaurl, xlistitem, rar_files, subtitle=item.subtitle, password=password, item=item) @@ -1425,7 +1422,7 @@ def play_torrent(item, xlistitem, mediaurl): rar_file, save_path_videos, folder_torr = torrent.wait_for_download(rar_files, torr_client) # Esperamos mientras se descarga el RAR if rar_file and save_path_videos: # Si se ha descargado el RAR... - dp = dialog_progress_bg('Alfa %s' % torr_client) + dp = dialog_progress_bg('KoD %s' % torr_client) video_file, rar, video_path, erase_file_path = torrent.extract_files(rar_file, \ save_path_videos, password, dp, item, @@ -1452,7 +1449,7 @@ def play_torrent(item, xlistitem, mediaurl): while is_playing() and rar and not xbmc.abortRequested: time.sleep(3) # Repetimos cada intervalo if rar and not xbmc.abortRequested: - if dialog_yesno('Alfa %s' % torr_client, '¿Borrar las descargas del RAR y Vídeo?'): + if dialog_yesno('KoD %s' % torr_client, config.get_localized_string(30031)): log("##### erase_file_path: %s" % erase_file_path) try: torr_data, deamon_url, index = torrent.get_tclient_data(folder_torr, torr_client) diff --git a/resources/language/English/strings.po b/resources/language/English/strings.po index 436899db..c789997b 100644 --- a/resources/language/English/strings.po +++ b/resources/language/English/strings.po @@ -133,6 +133,46 @@ msgctxt "#30030" msgid "Advanced Options" msgstr "" +msgctxt "#30031" +msgid "Delete Download?" +msgstr "" + +msgctxt "#30032" +msgid "Select NO to continue downloading in the background" +msgstr "" + +msgctxt "#30033" +msgid "Internal Client" +msgstr "" + +msgctxt "#30034" +msgid ": Select the video, or 'Cancel' for all" +msgstr "" + +msgctxt "#30035" +msgid "ERROR in the Client" +msgstr "ERRORE nel Client" + +msgctxt "#30036" +msgid "Module not found or incompatible with the device." +msgstr "Modulo non trovato o incompatibile con il dispositivo." + +msgctxt "#30037" +msgid "Delete Folder" +msgstr "" + +msgctxt "#30038" +msgid "Do you really want to delete the %s folder and all its contents?" +msgstr "" + +msgctxt "#30039" +msgid "Delete File" +msgstr "" + +msgctxt "#30040" +msgid "Do you really want to delete the %s file?" +msgstr "" + msgctxt "#30043" msgid "Force view mode:" msgstr "" @@ -5813,6 +5853,62 @@ msgctxt "#70765" msgid "SD" msgstr "" +msgctxt "#70766" +msgid "Installing Internal Torrent Client" +msgstr "" + +msgctxt "#70767" +msgid "You can ask for Superuser permissions" +msgstr "" + +msgctxt "#70768" +msgid "%.2f MB RAR file found" +msgstr "" + +msgctxt "#70769" +msgid "You can do other tasks in Kodi in the meantime. We will inform you..." +msgstr "" + +msgctxt "#70770" +msgid "RAR file found..." +msgstr "" + +msgctxt "#70771" +msgid "Name: %s" +msgstr "" + +msgctxt "#70772" +msgid "Size: %.2f MB" +msgstr "" + +msgctxt "#70773" +msgid "Download in the background? Cancel in Downloads menu" +msgstr "" + +msgctxt "#70774" +msgid "Client not supported on this device." +msgstr "" + +msgctxt "#70775" +msgid "Error: %s" +msgstr "" + +msgctxt "#70776" +msgid "Use a supported client." +msgstr "" + +msgctxt "#70777" +msgid "This external plugin does not support the extraction of RAR files online" +msgstr "" + +msgctxt "#70778" +msgid "Do you want us to use the internal MCT client this time?" +msgstr "" + +msgctxt "#70779" +msgid "This will take %s + times the size of the video" +msgstr "" + # DNS start [ settings and declaration ] msgctxt "#707401" msgid "Enable DNS Check Alert" diff --git a/resources/language/Italian/strings.po b/resources/language/Italian/strings.po index d127d555..fcac2faf 100644 --- a/resources/language/Italian/strings.po +++ b/resources/language/Italian/strings.po @@ -133,6 +133,46 @@ msgctxt "#30030" msgid "Advanced Options" msgstr "Opzioni Avanzate" +msgctxt "#30031" +msgid "Delete Download?" +msgstr "Cancellare Download?" + +msgctxt "#30032" +msgid "Select NO to continue downloading in the background" +msgstr "Seleziona NO per continuare il download in background" + +msgctxt "#30033" +msgid "Internal Client" +msgstr "Client Interno" + +msgctxt "#30034" +msgid ": Select the video, or 'Cancel' for all" +msgstr ": Seleziona il video o 'Annulla' per tutti" + +msgctxt "#30035" +msgid "ERROR in the Client" +msgstr "ERRORE nel Client" + +msgctxt "#30036" +msgid "Module not found or incompatible with the device." +msgstr "Modulo non trovato o incompatibile con il dispositivo." + +msgctxt "#30037" +msgid "Delete Folder" +msgstr "Elimina Cartella" + +msgctxt "#30038" +msgid "Do you really want to delete the %s folder and all its contents?" +msgstr "Vuoi veramente eliminare la cartella %s e tutto il suo contenuto?" + +msgctxt "#30039" +msgid "Delete File" +msgstr "Elimina File" + +msgctxt "#30040" +msgid "Do you really want to delete the %s file?" +msgstr "Vuoi veramente eliminare il file %s?" + msgctxt "#30043" msgid "Force view mode:" msgstr "Forza modalità di visualizzazione:" @@ -5817,6 +5857,70 @@ msgctxt "#70765" msgid "SD" msgstr "SD" +msgctxt "#70766" +msgid "Installing Internal Torrent Client" +msgstr "Installazione del Client Torrent Interno" + +msgctxt "#70767" +msgid "You can ask for Superuser permissions" +msgstr "Puoi richiedere le autorizzazioni Superuser" + +msgctxt "#70768" +msgid "%.2f MB RAR file found" +msgstr "File RAR di %.2f MB trovato" + +msgctxt "#70769" +msgid "You can do other tasks in Kodi in the meantime. We will inform you..." +msgstr "Nel frattempo puoi svolgere altre attività in Kodi. Ti informeremo..." + +msgctxt "#70770" +msgid "RAR file found..." +msgstr "File RAR Trovato..." + +msgctxt "#70771" +msgid "Name: %s" +msgstr "Nome: %s" + +msgctxt "#70772" +msgid "Size: %.2f MB" +msgstr "Dimensione: %.2f MB" + +msgctxt "#70773" +msgid "Download in the background? Cancel in Downloads menu" +msgstr "Scarica in background? Annulla nel menu Download" + +msgctxt "#70774" +msgid "Client not supported on this device." +msgstr "Client non supportato su questo dispositivo." + +msgctxt "#70775" +msgid "Error: %s" +msgstr "Errore: %s" + +msgctxt "#70776" +msgid "Use a supported client." +msgstr "Usa un client supportato." + +msgctxt "#70777" +msgid "This external plugin does not support the extraction of RAR files online" +msgstr "Questo plugin esterno non supporta l'estrazione di file RAR online" + +msgctxt "#70778" +msgid "Do you want us to use the internal MCT client this time?" +msgstr "Vuoi che questa volta utilizziamo il client MCT interno?" + +msgctxt "#70779" +msgid "This will take %s + times the size of the video" +msgstr "Questa operazione occuperà %s + volte la dimensione del video" + +msgctxt "#70780" +msgid "Elementum with memory download does not support to extract online RAR files (disk occupation %s + times)" +msgstr "Elementum con download di memoria non supporta l'estrazione di file RAR online (occupazione del disco %s + volte)" + +msgctxt "#70781" +msgid "Do you want to call Elementum Settings to temporarily switch to Use Files?" +msgstr "Vuoi aprire i settaggi di Elementum per passare temporaneamente a usare i file?" + # DNS start [ settings and declaration ] msgctxt "#707401" msgid "Enable DNS Check Alert" diff --git a/servers/torrent.py b/servers/torrent.py index 23591044..efbc49ee 100755 --- a/servers/torrent.py +++ b/servers/torrent.py @@ -362,7 +362,7 @@ def bt_client(mediaurl, xlistitem, rar_files, subtitle=None, password=None, item video_file = '' video_path = '' videourl = '' - msg_header = 'Alfa %s Cliente Torrent' % torr_client + msg_header = 'KoD %s Client Torrent' % torr_client extensions_list = ['.aaf', '.3gp', '.asf', '.avi', '.flv', '.mpeg', '.m1v', '.m2v', '.m4v', '.mkv', '.mov', '.mpg', '.mpe', '.mp4', '.ogg', '.rar', '.wmv', '.zip'] @@ -459,8 +459,7 @@ def bt_client(mediaurl, xlistitem, rar_files, subtitle=None, password=None, item break else: - if platformtools.dialog_yesno(msg_header, "¿Borramos los archivo descargados? (incompletos)", - "Selecciona NO para seguir descargando en segundo plano"): + if platformtools.dialog_yesno(msg_header, config.get_localized_string(30031), config.get_localized_string(30032)): dp_cerrado = False progreso = platformtools.dialog_progress(msg_header, '') break @@ -568,8 +567,7 @@ def bt_client(mediaurl, xlistitem, rar_files, subtitle=None, password=None, item finalizado = True break - if platformtools.dialog_yesno(msg_header, "¿Borramos los archivo descargados? (incompletos)", - "Selecciona NO para seguir descargando en segundo plano"): + if platformtools.dialog_yesno(msg_header, config.get_localized_string(30031), config.get_localized_string(30032)): progreso = platformtools.dialog_progress(msg_header, '') dp_cerrado = False break @@ -1332,9 +1330,7 @@ def import_libtorrent(LIBTORRENT_PATH): logger.error(traceback.format_exc()) if fp: fp.close() e = e1 or e2 - ok = platformtools.dialog_ok('ERROR en el cliente Interno Libtorrent', \ - 'Módulo no encontrado o imcompatible con el dispositivo.', \ - 'Reporte el fallo adjuntando un "log" %s' % str(e2)) + ok = platformtools.dialog_ok(config.get_localized_string(30035), config.get_localized_string(30036), config.get_localized_string(60015), str(e2)) except: pass diff --git a/servers/wstream.json b/servers/wstream.json index 1458848a..d946ed69 100644 --- a/servers/wstream.json +++ b/servers/wstream.json @@ -7,7 +7,7 @@ "find_videos": { "patterns": [ { - "pattern": "wstream\\.video(?!<)(?:=|/)(?:video[a-zA-Z0-9]*|embed[a-zA-Z0-9]*|)?(?!api|swembedid)(?:-|/)?(?:[a-z0-9A-Z]+/)?([a-z0-9A-Z]+)", + "pattern": "wstream\\.video(?!<)(?:=|/)(?:video[a-zA-Z0-9.?_]*|embed[a-zA-Z0-9]*|)?(?!api|swembedid)(?:-|/|=)?(?:[a-z0-9A-Z]+/)?([a-z0-9A-Z]+)", "url": "https://wstream.video/video.php?file_code=\\1" }, { diff --git a/specials/community.py b/specials/community.py index 15bf923d..561009e4 100644 --- a/specials/community.py +++ b/specials/community.py @@ -168,7 +168,14 @@ def peliculas(item, json='', key='', itemlist=[]): itlist = filterkey = [] action = 'findvideos' - for option in json: + if inspect.stack()[1][3] not in ['add_tvshow', 'get_episodes', 'update', 'find_episodes', 'search']: + Pagination = int(defp) if defp.isdigit() else '' + else: Pagination = '' + pag = item.page if item.page else 1 + + for i, option in enumerate(json): + if Pagination and (pag - 1) * Pagination > i: continue # pagination + if Pagination and i >= pag * Pagination: break if item.filterkey and item.filterkey in option: filterkey = [it.lower() for it in option[item.filterkey]] if type(option[item.filterkey]) == list else [option[item.filterkey].lower()] title = option['title'] if 'title' in option else '' @@ -203,7 +210,13 @@ def peliculas(item, json='', key='', itemlist=[]): if not 'generic_list' in key: tmdb.set_infoLabels(itlist, seekTmdb=True) itemlist += itlist - itemlist = pagination(item, itemlist) + + if Pagination and len(itemlist) >= Pagination: + if inspect.stack()[1][3] != 'get_newest': + item.title = support.typo(config.get_localized_string(30992), 'color kod bold') + item.page = pag + 1 + item.thumbnail = support.thumb() + itemlist.append(item) return itemlist @@ -259,8 +272,16 @@ def episodios(item, json ='', key='', itemlist =[]): # set variable ep = 1 season = infoLabels['season'] if 'season' in infoLabels else item.contentSeason if item.contentSeason else 1 + + if inspect.stack()[1][3] not in ['add_tvshow', 'get_episodes', 'update', 'find_episodes', 'search']: + Pagination = int(defp) if defp.isdigit() else '' + else: Pagination = '' + pag = item.page if item.page else 1 + # make items - for option in json: + for i, option in enumerate(json): + if Pagination and (pag - 1) * Pagination > i: continue # pagination + if Pagination and i >= pag * Pagination: break # build numeration of episodes numeration = option['number'] if 'number' in option else option['title'] match = support.match(numeration , patron=r'(?P\d+)x(?P\d+)').match @@ -300,7 +321,7 @@ def episodios(item, json ='', key='', itemlist =[]): path = item.path)) # if showseason - if inspect.stack()[1][3] not in ['add_tvshow', 'get_episodes', 'update', 'find_episodes', 'get_newest']: + if inspect.stack()[1][3] not in ['add_tvshow', 'get_episodes', 'update', 'find_episodes', 'get_newest', 'search']: if show_seasons and not item.filterseason: itm.contentType='season' season_list = [] @@ -320,8 +341,14 @@ def episodios(item, json ='', key='', itemlist =[]): infoLabels=infoLabels, filterseason=str(season), path=item.path)) + elif defpage and inspect.stack()[1][3] not in ['get_seasons']: - itemlist = pagination(item, itemlist) + if Pagination and len(itemlist) >= Pagination: + if inspect.stack()[1][3] != 'get_newest': + item.title = support.typo(config.get_localized_string(30992), 'color kod bold') + item.page = pag + 1 + item.thumbnail = support.thumb() + itemlist.append(item) return itemlist @@ -636,7 +663,7 @@ def pagination(item, itemlist = []): encoded_itemlist = [] for it in itemlist: encoded_itemlist.append(it.tourl()) - if inspect.stack()[1][3] not in ['add_tvshow', 'get_episodes', 'update', 'find_episodes']: + if inspect.stack()[1][3] not in ['add_tvshow', 'get_episodes', 'update', 'find_episodes', 'search']: Pagination = int(defp) if defp.isdigit() else '' else: Pagination = '' pag = item.page if item.page else 1 @@ -647,7 +674,7 @@ def pagination(item, itemlist = []): itlist.append(item) - if Pagination and len(itemlist) > pag * Pagination: + if Pagination and len(itemlist) >= Pagination: if inspect.stack()[1][3] != 'get_newest': itlist.append( Item(channel=item.channel, diff --git a/specials/downloads.py b/specials/downloads.py index b5840116..40254b61 100644 --- a/specials/downloads.py +++ b/specials/downloads.py @@ -130,18 +130,31 @@ def settings(item): def browser(item): logger.info() itemlist = [] + context = [{ 'title': 'cancella', 'channel': 'downloads', 'action': "del_file"}] for file in filetools.listdir(item.url): if file == "list": continue if filetools.isdir(filetools.join(item.url, file)): - itemlist.append( - Item(channel=item.channel, title=file, action=item.action, url=filetools.join(item.url, file))) + itemlist.append(Item(channel=item.channel, title=file, action=item.action, url=filetools.join(item.url, file), context=[{ 'title': config.get_localized_string(30037), 'channel': 'downloads', 'action': "del_dir"}])) else: - itemlist.append(Item(channel=item.channel, title=file, action="play", url=filetools.join(item.url, file))) + itemlist.append(Item(channel=item.channel, title=file, action="play", url=filetools.join(item.url, file), context=[{ 'title': config.get_localized_string(30039), 'channel': 'downloads', 'action': "del_file"}])) return itemlist +def del_file(item): + ok = platformtools.dialog_yesno(config.get_localized_string(30039),config.get_localized_string(30040)) + if ok: + filetools.remove(item.url) + platformtools.itemlist_refresh() + +def del_dir(item): + ok = platformtools.dialog_yesno(config.get_localized_string(30037),config.get_localized_string(30038)) + if ok: + filetools.rmdirtree(item.url) + platformtools.itemlist_refresh() + + def clean_all(item): logger.info()