# -*- coding: utf-8 -*- """ Plexus (c) 2015 enen92 This file contains the function that brigdes the addon to the acecore.py file Functions: load_local_torrent() -> Load a local .torrent file acestreams(name,iconimage,chid) -> Function that interprets the received url (acestream://,*.acelive,ts://) and sends it to acestreams_builtin acestreams_builtin(name,iconimage,chid -> Bridge to acecore.py file """ import xbmc,xbmcgui,xbmcplugin,urllib,xbmcvfs,os,subprocess from plexusutils.pluginxbmc import * from history import * aceport=62062 def load_local_torrent(): torrent_file = xbmcgui.Dialog().browse(1, translate(30037),'video', '.torrent') if torrent_file: if xbmc.getCondVisibility('system.platform.windows'): acestreams("Local .torrent ("+str("file:\\" + torrent_file) +")","",'file:\\' + torrent_file) else: acestreams("Local .torrent ("+str("file://" + torrent_file) +")","",'file://' + urllib.quote(torrent_file)) else: pass def acestreams(name,iconimage,chid): if not iconimage: iconimage=os.path.join(addonpath,'resources','art','acestream-menu-item.png') else: iconimage = urllib.unquote(iconimage) if settings.getSetting('addon_history') == "true": try: add_to_history(name, str(chid),1, iconimage) except: pass if settings.getSetting('engine_app') != '1' and settings.getSetting('engine_app') != '2': if settings.getSetting('aceplay_type') == "1": pDialog = xbmcgui.DialogProgress() ret = pDialog.create(translate(30000), translate(30038),translate(30039),translate(30040)) pDialog.update(0) xbmc.sleep(3000) pDialog.update(100) pDialog.close() ip_adress = settings.getSetting('ip_addr') proxy_port = settings.getSetting('aceporta') chid=chid.replace('acestream://','').replace('ts://','') strm = "http://" + ip_adress + ":" + proxy_port + "/pid/" + chid + "/stream.mp4" listitem = xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage) listitem.setLabel(name + " (" + chid + ")") listitem.setInfo('video', {'Title': name + " (" + chid + ")"}) xbmc.Player().play(strm,listitem) else: acestreams_builtin(name,iconimage,chid) else: if '.acelive' in chid: pass elif '.torrent' in chid: pass else: if 'acestream://' in chid: pass else: chid = 'acestream://' + chid if settings.getSetting('engine_app') == '1': xbmc.executebuiltin('XBMC.StartAndroidActivity("org.acestream.media","android.intent.action.VIEW","","'+chid+'")') elif settings.getSetting('engine_app') == '2': xbmc.executebuiltin('XBMC.StartAndroidActivity("ru.vidsoftware.acestreamcontroller.free","android.intent.action.VIEW","","'+chid+'")') def acestreams_builtin(name,iconimage,chid): if xbmc.getCondVisibility('system.platform.windows'): try: import _winreg t = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, 'Software\AceStream') needed_value = _winreg.QueryValueEx(t , 'EnginePath')[0] print needed_value.replace('\\','\\\\') subprocess.Popen("wmic process where ExecutablePath='"+needed_value.replace('\\','\\\\')+"' delete",shell=True) xbmc.sleep(200) subprocess.Popen('taskkill /F /IM ace_player.exe /T',shell=True) xbmc.sleep(200) except: pass elif xbmc.getCondVisibility('System.Platform.OSX'): if settings.getSetting('shutdown-engine') == "true": os.system("kill $(ps aux | grep '[s]tart.py')") try:from acecore import TSengine as tsengine except: mensagemok(translate(30000),translate(30041)) return xbmc.executebuiltin('Action(Stop)') lock_file = xbmc.translatePath('special://temp/'+ 'ts.lock') if xbmcvfs.exists(lock_file): xbmcvfs.delete(lock_file) if chid != '': chid=chid.replace('acestream://','').replace('ts://','') print("Starting Player Ace hash: " + chid) TSPlayer = tsengine() out = None if chid.find('http://') == -1 and chid.find('.torrent') == -1: out = TSPlayer.load_torrent(chid,'PID',port=aceport) elif chid.find('http://') == -1 and chid.find('.torrent') != -1: out = TSPlayer.load_torrent(chid,'TORRENT',port=aceport) else: out = TSPlayer.load_torrent(chid,'TORRENT',port=aceport) if out == 'Ok': TSPlayer.play_url_ind(0,name + ' (' + chid + ')',iconimage,iconimage) TSPlayer.end() return else: mensagemok(translate(30000),translate(30042)) TSPlayer.end() return else: mensagemprogresso.close()