Exemplo n.º 1
0
    def onInit( self ):
        self.getControl( 1 ).setLabel( "XBMC Intro Movie" )
        try:
            self.control_list = self.getControl( 6 )
            self.getControl( 5 ).setNavigation( self.control_list, self.control_list, self.control_list, self.control_list )
            self.getControl( 3 ).setEnabled( 0 )
            self.getControl( 3 ).setVisible( 0 )
        except:
            self.control_list = self.getControl( 3 )
            print_exc()

        try: self.getControl( 5 ).setLabel( "Cancel" )
        except: print_exc()

        intros_dir   = os.path.join( Addon.getAddonInfo( "path" ), "resources", "intros" )
        previews_dir = os.path.join( Addon.getAddonInfo( "path" ), "resources", "previews" )

        listitems = []
        cur = Addon.getSetting( "intro" )
        for intro in os.listdir( intros_dir ):
            name, ext = os.path.splitext( intro )
            listitem = xbmcgui.ListItem( intro, "", "DefaultVideo.png" )
            if cur == intro: listitem.setProperty( "Addon.Summary", "Current Intro" )
            preview = os.path.join( previews_dir, name + ".jpg" )
            if xbmcvfs.exists( preview ): listitem.setIconImage( preview )
            listitems.append( listitem )

        listitem = xbmcgui.ListItem( "Random", "", "DefaultAddonVisualization.png" )
        if cur == "Random": listitem.setProperty( "Addon.Summary", "Current Intro" )
        listitems.append( listitem )

        self.control_list.reset()
        self.control_list.addItems( listitems )
        self.setFocus( self.control_list )
Exemplo n.º 2
0
    def createComments(self):
        comments = [
            self.dom.createComment(
                "Language file translated with Add-on XBMC Translator " + self.main.Addon.getAddonInfo("version")
            )
        ]

        username = self.main.Addon.getSetting("username")
        if username:
            comments += [self.dom.createComment("Translator: " + username)]
        usermail = self.main.Addon.getSetting("usermail")
        if usermail:
            comments += [self.dom.createComment("Email: " + usermail)]

        version_based = "version " + getInfoLabel("System.BuildVersion")
        if self.main.DefaultFolderLanguage.rstrip("/") != self.main.FolderLanguage:
            from xbmcaddon import Addon

            # get addon version
            apath = translatePath(self.main.FolderLanguage.replace("/resources", "").replace("/language", ""))
            addon = Addon(os.path.basename(apath.rstrip(os.sep)))
            version_based = "add-on %s version %s" % (addon.getAddonInfo("name"), addon.getAddonInfo("version"))
        comments += [
            self.dom.createComment("Date of translation: " + strftime("%x %X")),
            self.dom.createComment("Based on english strings " + version_based),
        ]

        refChild = self.dom.documentElement
        for comment in comments:
            self.dom.insertBefore(comment, refChild)
Exemplo n.º 3
0
    def install_repo(self, repoName, repoURL):
        """
        Install a repository in XBMC
        -> will need XBMC restart in order to have the new Repo taken in account by XBMC
        """
        continueInstall = True
        dialogYesNo = xbmcgui.Dialog()
        if dialogYesNo.yesno(repoName, Language(30100), Language(30101)):
            if continueInstall:
                ri = RepoInstaller()

                newRepo = ri.download(repoURL)
                print newRepo

                if newRepo:
                    fp, ok = ri.install(newRepo)
                    print "---"
                    print fp, ok
                    xbmc.executebuiltin('UpdateLocalAddons')
                    xbmc.sleep(100)
                    xbmc.executebuiltin('UpdateAddonRepos')
                    xbmc.sleep(100)
                    try:
                        _N_ = Addon(os.path.basename(fp))
                        print "Addon %s Installed" % s_N_
                        ri.notification(_N_.getAddonInfo("name"),
                                        Language(24065).encode("utf-8"), 5000,
                                        _N_.getAddonInfo("icon"))
                    except:
                        xbmcgui.Dialog().ok(ADDON.getAddonInfo("name"),
                                            Language(30007) + " : " + repoName,
                                            Language(30010))
        self._end_of_directory(True, update=False)
Exemplo n.º 4
0
    def createComments(self):
        comments = [
            self.dom.createComment(
                'Language file translated with Add-on XBMC Translator ' +
                self.main.Addon.getAddonInfo("version"))
        ]

        username = self.main.Addon.getSetting("username")
        if username:
            comments += [self.dom.createComment('Translator: ' + username)]
        usermail = self.main.Addon.getSetting("usermail")
        if usermail: comments += [self.dom.createComment('Email: ' + usermail)]

        version_based = 'version ' + getInfoLabel('System.BuildVersion')
        if (self.main.DefaultFolderLanguage.rstrip("/") !=
                self.main.FolderLanguage):
            from xbmcaddon import Addon
            # get addon version
            apath = translatePath(
                self.main.FolderLanguage.replace("/resources",
                                                 "").replace("/language", ""))
            addon = Addon(os.path.basename(apath.rstrip(os.sep)))
            version_based = "add-on %s version %s" % (
                addon.getAddonInfo("name"), addon.getAddonInfo("version"))
        comments += [
            self.dom.createComment('Date of translation: ' +
                                   strftime('%x %X')),
            self.dom.createComment('Based on english strings ' +
                                   version_based),
        ]

        refChild = self.dom.documentElement
        for comment in comments:
            self.dom.insertBefore(comment, refChild)
Exemplo n.º 5
0
def compatibility():
    from xbmcaddon import Addon
    Addon = Addon( "weather.google" )
    # get old settings and if exists delete data xml 
    if Addon.getSetting( 'risingsun_city' ) or Addon.getSetting( 'risingsun1_city' ):
        icon = Addon.getAddonInfo( "icon" )
        xml  = Addon.getAddonInfo( 'profile' ) + 'settings.xml'
        del Addon
        import xbmcvfs
        xbmcvfs.delete( xml )
        if not xbmcvfs.exists( xml ):
            #notifie user
            xbmc.executebuiltin( "XBMC.Notification(Weather Google,Your settings have been renewed! Sorry!,10000,%s)" % icon )
Exemplo n.º 6
0
    def createComments( self ):
        version_based = 'version ' + xbmc.getInfoLabel( 'System.BuildVersion' )
        if ( self.main.DefaultFolderLanguage.rstrip( "/" ) != self.main.FolderLanguage ):
            from xbmcaddon import Addon
            # get addon version
            apath = xbmc.translatePath( self.main.FolderLanguage.replace( "/resources", "" ).replace( "/language", "" ) )
            addon = Addon( os.path.basename( apath.rstrip( os.sep ) ) )
            version_based = "add-on %s version %s" % ( addon.getAddonInfo( "name" ), addon.getAddonInfo( "version" ) )

        return ET.getComments( version_based,
               self.main.Addon.getSetting( "username" ),
               self.main.Addon.getSetting( "usermail" ),
               self.main.Addon.getAddonInfo( "version" )
               )
Exemplo n.º 7
0
    def createComments(self):
        version_based = "version " + xbmc.getInfoLabel("System.BuildVersion")
        if self.main.DefaultFolderLanguage.rstrip("/") != self.main.FolderLanguage:
            from xbmcaddon import Addon

            # get addon version
            apath = xbmc.translatePath(self.main.FolderLanguage.replace("/resources", "").replace("/language", ""))
            addon = Addon(os.path.basename(apath.rstrip(os.sep)))
            version_based = "add-on %s version %s" % (addon.getAddonInfo("name"), addon.getAddonInfo("version"))

        return ET.getComments(
            version_based,
            self.main.Addon.getSetting("username"),
            self.main.Addon.getSetting("usermail"),
            self.main.Addon.getAddonInfo("version"),
        )
Exemplo n.º 8
0
class NextMonitor(xbmc.Player):
    def __init__(self):
        super(NextMonitor, self).__init__()
        self.addon = Addon()
        self._skips = []
        self._next = None
        self._registering()

    def _registering(self):
        addon_name = self.addon.getAddonInfo('name')
        AddonSignals.registerSlot(addon_name, 'add_skip', self._skips.append)
        AddonSignals.registerSlot(addon_name, 'set_next', self.set_next)

    def set_next(self, _next):
        self._next = _next

    def onPlayBackStarted(self):
        pass

    def onPlayBackPaused(self):
        pass

    def onPlayBackResumed(self):
        pass

    def onPlayBackSeek(self, time, seekOffset):
        pass

    def onPlayBackSeekChapter(self, chapter):
        pass

    def onPlayBackSpeedChanged(self, speed):
        pass

    def onPlayBackStopped(self):
        pass

    def onPlayBackEnded(self):
        pass

    def onPlayBackError(self):
        pass

    def onQueueNextItem(self):
        pass

    def run(self):
        pass

    def check_skips(self):
        if self.isPlayingVideo():
            for skip in self._skips:
                skip_start = skip.get('start', 0)
                skip_end = skip.get('end', 0)
                playTime = self.getTime()
                if playTime > skip_start and playTime < skip_end:
                    pass

    def check_next(self):
        pass
Exemplo n.º 9
0
    def getSettings( self, id="repository.xbmc.builds" ):
        settings = {}
        try:
            from xbmcaddon import Addon
            addon = Addon( id )
            usetempdir = addon.getSetting( "usetempdir" ) == "true" 
            browsedir  = addon.getSetting( "browsedir" ) == "true" 
            settings[ "downloadpath" ] = ( addon.getSetting( "downloadpath" ), "" )[ browsedir ] 
            if not usetempdir:
                #browse for save dir
                if not settings[ "downloadpath" ] or not os.path.exists( settings[ "downloadpath" ] ):
                    dpath = xbmc.translatePath( self.get_browse_dialog( heading="Recordings folder" ) )
                    if dpath and os.path.exists( dpath ):
                        settings[ "downloadpath" ] = dpath
                        addon.setSetting( "downloadpath", settings[ "downloadpath" ] )
                    else:
                        settings[ "downloadpath" ] = ""
            settings[ "downloadinbackground" ] = addon.getSetting( "downloadinbackground" ) == "true"
            settings[ "reportpercent" ] = int( "0|5|10|20|25|50|100".split( "|" )[ int( addon.getSetting( "reportpercent" ) ) ] )

            PROFILE_PATH = xbmc.translatePath( addon.getAddonInfo( "profile" ) )
            settings[ "iddl_data" ] = os.path.join( PROFILE_PATH, "iddl_data" )
            if not os.path.exists( settings[ "iddl_data" ] ): os.makedirs( settings[ "iddl_data" ] )
        except:
            pass
        return settings
Exemplo n.º 10
0
    def getSettings(self, id="repository.xbmc.builds"):
        settings = {}
        try:
            from xbmcaddon import Addon
            addon = Addon(id)
            usetempdir = addon.getSetting("usetempdir") == "true"
            browsedir = addon.getSetting("browsedir") == "true"
            settings["downloadpath"] = (addon.getSetting("downloadpath"),
                                        "")[browsedir]
            if not usetempdir:
                #browse for save dir
                if not settings["downloadpath"] or not os.path.exists(
                        settings["downloadpath"]):
                    dpath = xbmc.translatePath(
                        self.get_browse_dialog(heading="Recordings folder"))
                    if dpath and os.path.exists(dpath):
                        settings["downloadpath"] = dpath
                        addon.setSetting("downloadpath",
                                         settings["downloadpath"])
                    else:
                        settings["downloadpath"] = ""
            settings["downloadinbackground"] = addon.getSetting(
                "downloadinbackground") == "true"
            settings["reportpercent"] = int(
                "0|5|10|20|25|50|100".split("|")[int(
                    addon.getSetting("reportpercent"))])

            PROFILE_PATH = xbmc.translatePath(addon.getAddonInfo("profile"))
            settings["iddl_data"] = os.path.join(PROFILE_PATH, "iddl_data")
            if not os.path.exists(settings["iddl_data"]):
                os.makedirs(settings["iddl_data"])
        except:
            pass
        return settings
Exemplo n.º 11
0
def compatibility():
    from xbmcaddon import Addon
    Addon = Addon("weather.google")
    # get old settings and if exists delete data xml
    if Addon.getSetting('risingsun_city') or Addon.getSetting(
            'risingsun1_city'):
        icon = Addon.getAddonInfo("icon")
        xml = Addon.getAddonInfo('profile') + 'settings.xml'
        del Addon
        import xbmcvfs
        xbmcvfs.delete(xml)
        if not xbmcvfs.exists(xml):
            #notifie user
            xbmc.executebuiltin(
                "XBMC.Notification(Weather Google,Your settings have been renewed! Sorry!,10000,%s)"
                % icon)
Exemplo n.º 12
0
 def install_repo(self, repoName, repoURL):
     """
     Install a repository in XBMC
     -> will need XBMC restart in order to have the new Repo taken in account by XBMC
     """
     continueInstall = True
     dialogYesNo = xbmcgui.Dialog()
     if dialogYesNo.yesno(repoName, Language( 30100 ), Language( 30101 )):           
         if continueInstall:
             ri = RepoInstaller()
                 
             newRepo = ri.download( repoURL )
             print newRepo
     
             if newRepo:
                 fp, ok = ri.install( newRepo )
                 print "---"
                 print fp, ok
                 xbmc.executebuiltin( 'UpdateLocalAddons' )
                 xbmc.sleep( 100 )
                 xbmc.executebuiltin( 'UpdateAddonRepos' )
                 xbmc.sleep( 100 )
                 try:
                     _N_ = Addon( os.path.basename( fp ) )
                     print "Addon %s Installed"%s_N_
                     ri.notification( _N_.getAddonInfo( "name" ), Language( 24065 ).encode( "utf-8" ), 5000, _N_.getAddonInfo( "icon" ) )
                 except:
                     xbmcgui.Dialog().ok( ADDON.getAddonInfo( "name" ), Language( 30007 ) + " : " + repoName, Language( 30010 ) )
     self._end_of_directory( True, update=False )
Exemplo n.º 13
0
def preview(addon: xbmcaddon.Addon, timerid: int, player: 'xbmc.Player') -> None:

    addon_dir = xbmcvfs.translatePath(addon.getAddonInfo('path'))

    timer = Timer.init_from_settings(timerid)

    if timer._is_playing_media_timer():
        icon_file = os.path.join(
            addon_dir, "resources", "assets", "icon.png")

        xbmcgui.Dialog().notification(addon.getLocalizedString(
            32027), addon.getLocalizedString(32110) % addon.getLocalizedString(32004 + timerid),
            icon=icon_file)

        if is_script(timer.s_path):
            run_addon(timer.s_path)

        elif timer.s_mediatype == PICTURE:
            play_slideshow(timer.s_path, shuffle=timer.b_shuffle)

        else:
            playlist = build_playlist(path=timer.s_path, label=timer.s_label)
            player.play(playlist)

    else:
        xbmcgui.Dialog().notification(addon.getLocalizedString(
            32027), addon.getLocalizedString(32109))
Exemplo n.º 14
0
def Main( settingID=None ):
    setfocusid = 200
    if settingID == "use_intro_movie":
        xbmc.executebuiltin( "Skin.ToggleSetting(Use_Intro_Movie)" )
        xbmc.sleep( 100 )
        setting = ( "false", "true" )[ xbmc.getCondVisibility( "Skin.HasSetting(Use_Intro_Movie" ) ]
        Addon.setSetting( "use_intro_movie", setting )
        xbmc.sleep( 100 )
        setfocusid = ( 102, 103 )[ setting == "false" ]

    elif settingID == "splash":
        toggle = toggle_splash( Addon.getSetting( "splash" ) )
        Addon.setSetting( "splash", toggle )
        xbmc.sleep( 500 )
        setfocusid = ( 110, 111 )[ toggle == "false" ]

    elif settingID == "intro":
        w = DialogSelect( "DialogSelect.xml", Addon.getAddonInfo( "path" ) )
        w.doModal()
        del w
        setfocusid = 104

    xbmc.executebuiltin( "Addon.openSettings(script.xbmc.intro.movie)" )
    xbmc.executebuiltin( "SetFocus(200)" )
    xbmc.executebuiltin( "SetFocus(%i)" % setfocusid )
Exemplo n.º 15
0
    def _inputstream_version(self):
        ''' Return the requested inputstream version '''
        try:
            addon = Addon(self.inputstream_addon)
        except RuntimeError:
            return None

        return to_unicode(addon.getAddonInfo('version'))
Exemplo n.º 16
0
def Main():
    try:
        url = sys.argv[2]
        # notify user
        notification(Addon.getAddonInfo("name"), url)
        # launch url
        launchUrl(url)
    except:
        print_exc()
Exemplo n.º 17
0
def notification(header="",
                 message="",
                 sleep=5000,
                 icon=Addon.getAddonInfo("icon")):
    """ Will display a notification dialog with the specified header and message,
        in addition you can set the length of time it displays in milliseconds and a icon image.
    """
    xbmc.executebuiltin("XBMC.Notification(%s,%s,%i,%s)" %
                        (header, message, sleep, icon))
Exemplo n.º 18
0
def start_alarm():
    if not WEATHER_WINDOW:
        return
    try:
        # start next time to refresh images. 60 minutes (skinner for force refresh use "CancelAlarm(moon_earth_phases,true)")
        command = "RunScript(%s)" % os.path.join( Addon.getAddonInfo( "path" ), "resources", "lib", "moon_and_earth_phases.py" )
        xbmc.executebuiltin( "AlarmClock(moon_earth_phases,%s,60,true)" % command )
    except:
        print_exc()
Exemplo n.º 19
0
def Main():
    try:
        url = sys.argv[2]
        # notify user
        notification(Addon.getAddonInfo("name"), url)
        # launch url
        launchUrl(url)
    except:
        print_exc()
    def _inputstream_version(self):
        """Return the requested inputstream version"""
        from xbmcaddon import Addon
        try:
            addon = Addon(self.inputstream_addon)
        except RuntimeError:
            return None

        from .unicodehelper import to_unicode
        return to_unicode(addon.getAddonInfo('version'))
Exemplo n.º 21
0
class XbmcContext(Context):
    def __init__(self, log, settings):
        super(XbmcContext, self).__init__(log, settings)
        self.addon = Addon()

    def getLocalizedString(self, id):
        return self.addon.getLocalizedString(id)    
    
    def getProfileDir(self):
        profileDir = xbmc.translatePath(self.addon.getAddonInfo('profile'))
        return profileDir
Exemplo n.º 22
0
def start_alarm():
    if not WEATHER_WINDOW:
        return
    try:
        # start next time to refresh images. 60 minutes (skinner for force refresh use "CancelAlarm(moon_earth_phases,true)")
        command = "RunScript(%s)" % os.path.join(Addon.getAddonInfo("path"),
                                                 "resources", "lib",
                                                 "moon_and_earth_phases.py")
        xbmc.executebuiltin("AlarmClock(moon_earth_phases,%s,60,true)" %
                            command)
    except:
        print_exc()
Exemplo n.º 23
0
    except TypeError:
        string = string.decode()
    return string


# Percent of playback progress for watching item as partially watched. Anything
# more and item will NOT be marked as partially, but fully watched
MARK_PLAYED_AT = 0.9
# How many seconds of playback do we ignore before marking an item as partially
# watched?
IGNORE_SECONDS_AT_START = 60

_ADDON = Addon()
ADDON_NAME = 'PlexKodiConnect'
ADDON_ID = 'plugin.video.plexkodiconnect'
ADDON_VERSION = _ADDON.getAddonInfo('version')
ADDON_PATH = try_decode(_ADDON.getAddonInfo('path'))
ADDON_FOLDER = try_decode(xbmc.translatePath('special://home'))
ADDON_PROFILE = try_decode(xbmc.translatePath(_ADDON.getAddonInfo('profile')))

KODILANGUAGE = xbmc.getLanguage(xbmc.ISO_639_1)
KODIVERSION = int(xbmc.getInfoLabel("System.BuildVersion")[:2])
KODILONGVERSION = xbmc.getInfoLabel('System.BuildVersion')
KODI_PROFILE = try_decode(xbmc.translatePath("special://profile"))

if xbmc.getCondVisibility('system.platform.osx'):
    DEVICE = "MacOSX"
elif xbmc.getCondVisibility("system.platform.uwp"):
    DEVICE = "Microsoft UWP"
elif xbmc.getCondVisibility('system.platform.atv2'):
    DEVICE = "AppleTV2"
Exemplo n.º 24
0
#  -*- coding: utf-8 -*-
"""
python -m unittest discover -v resources/tests/ "test_db_upgrade.py"
"""

import os
import shutil
import unittest
from xbmcaddon import Addon
import util, gamedatabase
from gamedatabase import GameDataBase, Game, RCBSetting

# Shared resources
addon = Addon(id='script.games.rom.collection.browser')
addonPath = addon.getAddonInfo('path')


class TestDBUpgrade(unittest.TestCase):
    def get_testdata_path(self):
        return os.path.join(os.path.dirname(__file__), '..', '..', 'resources',
                            'tests', 'testdata')

    def test_DBUpgrade_074_075(self):
        db_path = os.path.join(self.get_testdata_path(), 'database')

        # Setup data - MyGames.db is the hard-coded expected DB name
        self.assertTrue(
            os.path.isfile(os.path.join(db_path, 'MyGames-0.7.4.db')),
            "Expected to find 0.7.4 DB")
        shutil.copyfile(os.path.join(db_path, 'MyGames-0.7.4.db'),
                        os.path.join(db_path, 'MyGames.db'))
Exemplo n.º 25
0
# Modules general
import os
import sys
from traceback import print_exc

# Modules XBMC
import xbmc
import xbmcgui
from xbmcaddon import Addon

__settings__ = Addon("script.module.dialogaddonscan")
__addonName__ = __settings__.getAddonInfo("name")
__addonDir__ = __settings__.getAddonInfo("path")


class DialogTextViewer(xbmcgui.WindowXMLDialog):
    def __init__(self, *args, **kwargs):
        xbmcgui.WindowXMLDialog.__init__(self, *args, **kwargs)
        self.heading = kwargs.get("heading") or ""
        self.text = kwargs.get("text") or ""

    def onInit(self):
        try:
            self.getControl(1).setLabel(self.heading)
            self.getControl(5).setText(self.text)
        except:
            print_exc()

    def onFocus(self, controlID):
        pass
Exemplo n.º 26
0
# -*- coding: utf-8 -*-

import os
import sys
from traceback import print_exc

import xbmcgui
import xbmcvfs
from xbmcaddon import Addon

ADDON   = Addon( "plugin.video.tetesaclaques.tv" )
FANART  = ADDON.getAddonInfo( "fanart" )
FANART2 = FANART.replace( ".jpg", "2.jpg" )
ICON_TV = ADDON.getAddonInfo( "icon" ).replace( ".png", "2.png" )

SUBTITLES = xbmc.translatePath( "special://subtitles/" )
if not xbmcvfs.exists( SUBTITLES ): SUBTITLES = xbmc.translatePath( ADDON.getAddonInfo( "profile" ) )
SUBTITLES = SUBTITLES.replace( "\\", "/" ).rstrip( "/" ) + "/"
try: os.makedirs( SUBTITLES )
except: xbmcvfs.mkdir( SUBTITLES )


b_infoLabels = {
    "genre":       "Animation / Humour",
    "studio":      "Salambo Productions inc.",
    "writer":      "Michel Beaudet",
    "director":    "Michel Beaudet",
    "castandrole": [ ( "Michel Beaudet", "" ) ],
    }

class Info:
        Addon.setSetting( settingId, text )
        UpdateUserDB = True
# reset hidden input
kb.setHiddenInput( False )


if UpdateUserDB:
    # Modules General
    import time
    # temps du depart
    t1 = time.time()
    from re import findall, sub
    from urllib import quote_plus

    # chemin des settings de l'user
    settingsXML = os.path.join( xbmc.translatePath( Addon.getAddonInfo( "path" ) ), "resources", "settings.xml" )
    #print settingsXML
    # formation du settings.xml en une seul ligne
    strSettings = "<settings>"
    for id in sorted( findall( 'id="(.*?)"', open( settingsXML ).read() ) ):
        if   id == "username" : value = login
        elif id == "password" : value = passw
        elif id == "token"    : value = token
        elif id == "tokenb64" : value = tokenb64
        else: value = Addon.getSetting( id )
        strSettings += '<setting id="%s" value="%s" />' % ( id, value )
    strSettings += "</settings>"

    # commande sql
    #sql_update = "UPDATE path SET strSettings='%s' WHERE strScraper='%s'" % ( strSettings, AddonId )
    # execution de l'update
Exemplo n.º 28
0
import os
import sys
import urllib
from traceback import print_exc

import xbmc
import xbmcgui
from xbmcaddon import Addon
ADDON = Addon("plugin.infologique.tou.tv")

BAD_THUMBS_FILE = os.path.join(
    xbmc.translatePath(ADDON.getAddonInfo("profile")), ".cache",
    "badthumbs.txt")
BASE_CACHE_PATH = xbmc.translatePath("special://profile/Thumbnails/Video")

import toutvapiservice
urllib._urlopener = toutvapiservice.urllib._urlopener

try:
    STRBADTHUMBS = file(BAD_THUMBS_FILE, "r").read()
except:
    STRBADTHUMBS = ""
badthumbs = open(BAD_THUMBS_FILE, "w")
badthumbs.write(STRBADTHUMBS)


def get_thumbnail(thumbnail_url, fanart=0, default='DefaultTouTv.png'):
    global badthumbs, STRBADTHUMBS
    default = (default, "")[fanart]
    if thumbnail_url and thumbnail_url not in STRBADTHUMBS:
        try:
Exemplo n.º 29
0
class MouseTracker:  # ( Thread ):
    def __init__(self):
        # Thread.__init__( self )

        self.winId = None
        self.window = None

        self.reload_addon = False
        self.addon = Addon("script.mouse.tracker.service")

        self.getMedias()
        self.current_pos = (0, 0)

        self.run()
        # self.start()

    def getMedias(self):
        self.sprite = self.addon.getSetting("sprite")  # "Dog"
        self.speed = self.addon.getSetting("speed").split(".")[0]  # "300"
        try:
            # get control and sprites in xml
            spriteDir = os.path.join(self.addon.getAddonInfo("path"), "resources", "skins", self.sprite, "media")
            xml = windowXML("%s.xml" % self.sprite, self.addon.getAddonInfo("path"), self.sprite, spriteDir=spriteDir)
            # get our controls, before del xml
            self.image = xml.control
            self.sprites = xml.sprites
            # del window object
            del xml
            self.imgId = self.image.getId()
            self.offsetx = 0  # self.image.getPosition()[ 0 ]
        except:
            print_exc()
            raise

    def getWindow(self):
        current_win_id = xbmcgui.getCurrentWindowId()
        if self.winId != current_win_id or not self.window:
            self.winId = current_win_id
            self.window = xbmcgui.Window(self.winId)
            self.getControl()

    def getControl(self):
        self.window.addControl(self.image)
        self.imgId = self.image.getId()
        self.control = self.window.getControl(self.imgId)
        self.control.setVisibleCondition("Window.IsActive(Pointer.xml)")
        self.setAnimation(xbmcgui.getMousePosition())  # , (640,360) )#self.control.getPosition() )

    def setAnimation(self, pos, start=""):
        if start:
            start = "%i,%i" % start
        else:
            start = "%i,%i" % self.current_pos
        end = "%i,%i" % (pos[0] - self.offsetx, pos[1])
        # self.speed = str( self.current_pos[ 0 ] - pos[ 0 ] ).strip( "-" )
        self.control.setAnimations(
            [("conditional", "condition=true effect=slide start=%s end=%s time=%s" % (start, end, self.speed))]
        )

    def run(self):
        try:
            play_sfx = False
            # NB: xbmc.abortRequested not work correctly with threading.Thread
            while not xbmc.abortRequested:
                try:
                    self.getWindow()
                    if self.sprite != self.addon.getSetting("sprite"):
                        self.getMedias()

                    if not xbmc.getCondVisibility("Window.IsActive(Pointer.xml)"):
                        time.sleep(0.3)
                        continue

                    pos = xbmcgui.getMousePosition()

                    if ((pos[0] - self.offsetx) == self.current_pos[0]) and (pos[1] == self.current_pos[1]):
                        self.control.setImage(self.sprites["wait"])
                        if play_sfx:
                            if self.sprites["sfx"] and self.addon.getSetting("playsfx") == "true":
                                xbmc.playSFX(self.sprites["sfx"])
                            play_sfx = False
                    else:
                        play_sfx = True
                        if pos[0] < self.current_pos[0]:
                            self.control.setImage(self.sprites["left"])
                        else:
                            self.control.setImage(self.sprites["right"])

                        # start = "%i,%i" % self.current_pos
                        # end   = "%i,%i" % ( pos[ 0 ]-self.offsetx, pos[ 1 ] )
                        ##self.speed = str( self.current_pos[ 0 ] - pos[ 0 ] ).strip( "-" )
                        # self.control.setAnimations( [ ( 'conditional', 'condition=true effect=slide start=%s end=%s time=%s' % ( start, end, self.speed ) ) ] )
                        self.setAnimation(pos)

                        self.current_pos = (pos[0] - self.offsetx, pos[1])
                        # self.control.setPosition( *self.current_pos )

                    if xbmc.getCondVisibility("Window.IsActive(addonsettings)"):
                        self.reload_addon = True
                    elif self.reload_addon:
                        self.addon = Addon("script.mouse.tracker.service")
                        self.speed = self.addon.getSetting("speed").split(".")[0]
                        self.reload_addon = False
                except SystemExit:
                    break
                except:
                    print_exc()

                time.sleep(float(int(self.speed)) * 0.001)
        except SystemExit:
            pass
        except:
            print_exc()
Exemplo n.º 30
0
# -*- coding: utf-8 -*-
import os, sys, re
from traceback import print_exc

import xbmc, xbmcgui

if not xbmc.getCondVisibility('system.platform.Android'): import pyperclip
from xbmcaddon import Addon
import urllib2, urllib, httplib, time
if sys.version_info < (2, 7):
    import simplejson
else:
    import json as simplejson

__settings__ = Addon("service.RussianKeyboard")
__addonDir__ = __settings__.getAddonInfo("path")
__language__ = __settings__.getLocalizedString
__profile__ = xbmc.translatePath(__settings__.getAddonInfo('profile'))

XBMC_SKIN = xbmc.getSkinDir()
SKINS_PATH = os.path.join(__addonDir__, "resources", "skins")
ADDON_SKIN = ("default",
              XBMC_SKIN)[os.path.exists(os.path.join(SKINS_PATH, XBMC_SKIN))]
MEDIA_PATH = os.path.join(SKINS_PATH, ADDON_SKIN, "media")

ACTION_PARENT_DIR = 9
ACTION_PREVIOUS_MENU = (10, 92)
ACTION_CONTEXT_MENU = 117
WORD_PER_PAGE = [9, 6, 5, 4, 3, 3, 3]

CTRL_ID_BACK = 8
Exemplo n.º 31
0
import os
import re
import random
import urllib
import urllib2
from gzip import GzipFile
from StringIO import StringIO
from traceback import print_exc

import json

try:
    import xbmc, xbmcvfs
    from xbmcaddon import Addon
    Addon = Addon( "script.widget.weatherworld" )
    ADDON_DIR  = xbmc.translatePath( Addon.getAddonInfo( "path" ).rstrip( "\\" ).rstrip( "/" ) )
    ADDON_DATA = xbmc.translatePath( Addon.getAddonInfo( "profile" ).rstrip( "\\" ).rstrip( "/" ) )
    weatherworld_json = os.path.join( ADDON_DATA, "weatherworld.json" )
    coordinates_json  = os.path.join( ADDON_DIR, "coordinates.json" )
    
    # set our cache
    if not xbmcvfs.exists( ADDON_DATA ):
        xbmcvfs.mkdir( ADDON_DATA )
    if not xbmcvfs.exists( os.path.join( ADDON_DATA, "coordinates.json" ) ):
        if xbmcvfs.copy( coordinates_json, os.path.join( ADDON_DATA, "coordinates.json" ) ):
            coordinates_json = os.path.join( ADDON_DATA, "coordinates.json" )

    if xbmc.getCondVisibility( "IsEmpty(Window(Weather).Property(Current.Earth.Phase.LargeImage))" ):
        xbmc.executebuiltin( "SetProperty(Current.Earth.Phase.LargeImage,%s,Weather)" % Addon.getAddonInfo( "fanart" ) )

    path_exists = xbmcvfs.exists
Exemplo n.º 32
0
# -*- coding: utf-8 -*-

import os
import sys
from traceback import print_exc

import xbmcgui
import xbmcvfs
from xbmcaddon import Addon

ADDON = Addon("plugin.video.au.pays.des.tetes.a.claques")
FANART = ADDON.getAddonInfo("fanart")

SUBTITLES = xbmc.translatePath("special://subtitles/")
if not xbmcvfs.exists(SUBTITLES):
    SUBTITLES = xbmc.translatePath(ADDON.getAddonInfo("profile"))
SUBTITLES = SUBTITLES.replace("\\", "/").rstrip("/") + "/"
try:
    os.makedirs(SUBTITLES)
except:
    xbmcvfs.mkdir(SUBTITLES)

b_infoLabels = {
    "tvshowtitle": ADDON.getAddonInfo("name"),
    "genre": "Animation / Humour",
    "season": 1,
    "year": 2012,
    "studio": "Salambo Productions inc.",
    "writer": "Michel Beaudet",
    "director": "Michel Beaudet",
    "castandrole": [("Michel Beaudet", "")],
Exemplo n.º 33
0
#import os
import sys
from traceback import print_exc

import xbmc
import xbmcgui
from xbmcaddon import Addon

from AddonScan import Window
from AddonScan import xbmcguiWindowError


__settings__  = Addon( "plugin.image.mypicsdb" )
__addonName__ = __settings__.getAddonInfo( "name" )


class AddonScanOrg( Window ):
    def __init__( self, parent_win=None, **kwargs ):
        # get class Window object
        Window.__init__( self, parent_win, **kwargs )
        self.canceled = False
        self.header = ""
        self.line = ""

    def close( self ):
        self.canceled = True
        xbmc.sleep( 100 )
        self.removeControls()
        del self.controls
        del self.window
Exemplo n.º 34
0
try:
    import json
    # test json
    json.loads( "[null]" )
except:
    print_exc()
    import simplejson as json
#if json.decoder.c_scanstring is not None:
#    print "[Actors] Yes, json use speedup ;)"
#else:
#    print "[Actors] No, json don't use speedup :("

# constants
ADDON      = Addon( "script.metadata.actors" )
ADDON_DIR  = ADDON.getAddonInfo( "path" )
ADDON_DATA = ADDON.getAddonInfo( "profile" )

Language   = ADDON.getLocalizedString # ADDON strings
LangXBMC   = xbmc.getLocalizedString  # XBMC strings

IS_MUSIC_LIBRARY  = xbmc.getCondVisibility( "Window.IsVisible(MusicLibrary)" )
IS_VIDEO_LIBRARY  = xbmc.getCondVisibility( "Window.IsVisible(Videos)" )
LIBRARY_TYPE = ( ( "", "artist" )[ IS_MUSIC_LIBRARY ], "actor" )[ IS_VIDEO_LIBRARY ]

# https://raw.github.com/xbmc/xbmc/master/xbmc/guilib/Key.h
ACTION_PARENT_DIR    =   9
ACTION_PREVIOUS_MENU =  10
ACTION_SHOW_INFO     =  11
ACTION_NAV_BACK      =  92
ACTION_CONTEXT_MENU  = 117
Exemplo n.º 35
0
#  -*- coding: utf-8 -*-

"""
python -m unittest discover -v resources/tests/ "test_db_upgrade.py"
"""

import os
import shutil
import unittest
from xbmcaddon import Addon
from gamedatabase import GameDataBase

# Shared resources
addon = Addon(id='script.games.rom.collection.browser')
addonPath = addon.getAddonInfo('path')


class TestDBUpgrade(unittest.TestCase):
    def get_testdata_path(self):
        return os.path.join(os.path.dirname(__file__), '..', '..', 'resources', 'tests', 'testdata')

    def test_DBUpgrade(self):
        db_path = os.path.join (self.get_testdata_path(), 'database')

        # Setup data - MyGames.db is the hard-coded expected DB name
        self.assertTrue(os.path.isfile(os.path.join(db_path, 'MyGames-0.7.4.db')), "Expected to find 0.7.4 DB")
        shutil.copyfile(os.path.join(db_path, 'MyGames-0.7.4.db'), os.path.join(db_path, 'MyGames.db'))

        gdb = GameDataBase(db_path)
        gdb.connect()
Exemplo n.º 36
0
import logging
import os.path
import re

try:  # Python 3
    from urllib.parse import quote
except ImportError:  # Python 2
    from urllib import quote

import requests
import dateutil.parser
from xbmcaddon import Addon
from resources.lib.kodiutils import proxies

ADDON = Addon()
logger = logging.getLogger(ADDON.getAddonInfo('id'))


class LiveChannel:
    def __init__(self, channel_id=None, name=None, logo=None, epg=None):
        """
        Defines a TV channel that can be streamed live.
        :type id: basestring
        :type name: basestring
        :type logo: basestring
        :type epg: List[LiveChannelEpg]
        """
        self.id = channel_id
        self.name = name
        self.logo = logo
        self.epg = epg
Exemplo n.º 37
0
#Modules general
import os
import re
import sys
from urllib import quote_plus, unquote_plus
from traceback import print_exc

#modules XBMC
import xbmc
import xbmcgui
from xbmcaddon import Addon


ADDON             = Addon( "plugin.video.tou.tv" )
ADDON_NAME        = ADDON.getAddonInfo( "name" )
ADDON_CACHE       = xbmc.translatePath( ADDON.getAddonInfo( "profile" ) )
CACHE_EXPIRE_TIME = float( ADDON.getSetting( "expiretime" ).replace( "0", ".5" ).replace( "25", "0" ) )
SCRIPT_REFRESH    = os.path.join( ADDON.getAddonInfo( 'path' ), "resources", "lib", "refresh.py" )

LangXBMC    = xbmc.getLocalizedString

import scraper

STRING_FOR_ALL = "[B]CONTENU accessible à TOUS[/B] - Cette émission peut être regardée partout dans le monde."

FAVOURITES_XML = os.path.join( ADDON_CACHE, "favourites.xml" )

G_GENRE     = unicode( xbmc.getInfoLabel( "ListItem.Genre" ), "utf-8" )
#ACTION_INFO = not bool( xbmc.getInfoLabel( "ListItem.Episode" ) )
Exemplo n.º 38
0
import xbmc
import xbmcgui
import xbmcvfs
from xbmcaddon import Addon
from xbmc import translatePath  # , executehttpapi

# Modules Custom
import jsonrpc
from utils.log import logAPI
from utils.streamdetails import *
from utils.file_item import Thumbnails


# constants
ADDON = Addon("script.moviesets")
MOVIESET_CACHED_THUMB = translatePath("%sThumbnails/%s.tbn" % (ADDON.getAddonInfo("profile"), "%s"))
try:
    os.makedirs(os.path.dirname(MOVIESET_CACHED_THUMB))
except:
    xbmcvfs.mkdir(os.path.dirname(MOVIESET_CACHED_THUMB))

LOGGER = logAPI()
TBN = Thumbnails()


def check_compatibility(minversion="11.9.3"):
    VERSION = Addon("xbmc.addon").getAddonInfo("version")
    return VERSION >= minversion, VERSION


COMPATIBLE, VERSION = check_compatibility()
Exemplo n.º 39
0
    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7",
    "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
    ] )

class _urlopener( urllib.FancyURLopener ):
    version = os.environ.get( "HTTP_USER_AGENT" ) or HTTP_USER_AGENT
urllib._urlopener = _urlopener()


try:
    import xbmc, xbmcgui, xbmcvfs
    from xbmcaddon import Addon
    Addon = Addon( "weather.google" )
    WEATHER_WINDOW = xbmcgui.Window( 12600 )
    REFRESH = not xbmc.getCondVisibility( "System.HasAlarm(moon_earth_phases)" )
    cache_dir = xbmc.translatePath( Addon.getAddonInfo( 'profile' ) )
    if not os.path.exists( cache_dir ): os.makedirs( cache_dir )
    PHASE_IMAGE = os.path.join( cache_dir, "%s.png" )
except:
    # NOT RUNNING ON XBMC, ON DEV
    WEATHER_WINDOW = None
    REFRESH = True
    PHASE_IMAGE = "%s.png"


try: import sqlite3
except: sqlite3 = None

def deleteTexture( sourceurl ):
    OK = False
    #print "-"*100
Exemplo n.º 40
0
# -*- coding: utf-8 -*-

#Modules general
import os
import re
import sys
from urllib import quote_plus, unquote_plus
from traceback import print_exc

#modules XBMC
import xbmc
import xbmcgui
from xbmcaddon import Addon

ADDON = Addon("plugin.video.tou.tv")
ADDON_NAME = ADDON.getAddonInfo("name")
ADDON_CACHE = xbmc.translatePath(ADDON.getAddonInfo("profile"))
CACHE_EXPIRE_TIME = float(
    ADDON.getSetting("expiretime").replace("0", ".5").replace("25", "0"))
SCRIPT_REFRESH = os.path.join(ADDON.getAddonInfo('path'), "resources", "lib",
                              "refresh.py")

LangXBMC = xbmc.getLocalizedString

import scraper

STRING_FOR_ALL = "[B]CONTENU accessible à TOUS[/B] - Cette émission peut être regardée partout dans le monde."

FAVOURITES_XML = os.path.join(ADDON_CACHE, "favourites.xml")

G_GENRE = unicode(xbmc.getInfoLabel("ListItem.Genre"), "utf-8")
Exemplo n.º 41
0
import sys
import time
from traceback import print_exc

if sys.version >= "2.5":
    from hashlib import md5 as _hash
else:
    from md5 import new as _hash

try:
    from xbmcaddon import Addon
    from xbmc import translatePath

    BASE_CACHE_PATH = translatePath("special://profile/Thumbnails/Video")
    ADDON = Addon("plugin.video.tou.tv")
    ADDON_CACHE = os.path.join(translatePath(ADDON.getAddonInfo("profile")), ".cache")
    CACHE_EXPIRE_TIME = float(ADDON.getSetting("expiretime").replace("0", ".5").replace("25", "0"))
except:
    BASE_CACHE_PATH = ""
    ADDON_CACHE = ""
    CACHE_EXPIRE_TIME = 72

if not os.path.exists(ADDON_CACHE):
    os.makedirs(ADDON_CACHE)


def is_expired(lastUpdate, hrs=CACHE_EXPIRE_TIME):
    expired = time.time() >= (lastUpdate + (hrs * 60 ** 2))
    return expired

Exemplo n.º 42
0
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program. If not, see <http://www.gnu.org/licenses/>.
#

# import modules
import os
import sys
import xbmc
import xbmcgui
from xbmcaddon import Addon

### get addon info
__addon__ = Addon("script.artwork.downloader")
__addonname__ = __addon__.getAddonInfo("name")
__addonprofile__ = xbmc.translatePath(__addon__.getAddonInfo("profile")).decode("utf-8")


class Viewer:
    # constants
    WINDOW = 10147
    CONTROL_LABEL = 1
    CONTROL_TEXTBOX = 5

    def __init__(self, *args, **kwargs):
        # activate the text viewer window
        xbmc.executebuiltin("ActivateWindow(%d)" % (self.WINDOW,))
        # get window
        self.window = xbmcgui.Window(self.WINDOW)
        # give window time to initialize
Exemplo n.º 43
0
#import os
import sys
from traceback import print_exc

import xbmc
import xbmcgui
from xbmcaddon import Addon

from AddonScan import Window
from AddonScan import xbmcguiWindowError

__settings__ = Addon("plugin.image.mypicsdb")
__addonName__ = __settings__.getAddonInfo("name")


class AddonScanOrg(Window):
    def __init__(self, parent_win=None, **kwargs):
        # get class Window object
        Window.__init__(self, parent_win, **kwargs)
        self.canceled = False
        self.header = ""
        self.line = ""

    def close(self):
        self.canceled = True
        xbmc.sleep(100)
        self.removeControls()
        del self.controls
        del self.window

    def create(self, line1="", line2=""):
Exemplo n.º 44
0
import sys
import time
import random
from threading import Timer
from traceback import print_exc
from datetime import date, timedelta
from urlparse import parse_qsl as parse_params

# Modules XBMC
import xbmc
import xbmcgui
from xbmcaddon import Addon

# constants
ADDON = Addon("script.game.diamond")
ADDON_ID = ADDON.getAddonInfo("id")
ADDON_DIR = ADDON.getAddonInfo("path")
GAME_ID = ADDON_ID  # required, used in gamesdb::scrores
TODAY = date.today()

# Modules Custom
import gamesdb  # from module script.xbmc.games.scores
import gemsutils as utils
from animations import *  # constants animation

# constants
# PY_SCORES = Addon("script.xbmc.games.scores").getAddonInfo("path")
# PY_SCORES = os.path.join(PY_SCORES, "default.py")
# PY_SCORES_ARGV = ["default.py", GAME_ID]

GEMS_DIR = os.path.join(ADDON_DIR, "resources", "skins", "Default", "media",
Exemplo n.º 45
0
# Dovresti aver ricevuto una copia della GNU General Public License
# insieme a Stefano Thegroove 360. In caso contrario, vedi <http://www.gnu.org/licenses/>.
# ------------------------------------------------- -----------
# Client for Stefano Thegroove 360
#------------------------------------------------------------

import os
import urllib

import xbmcgui
from xbmcaddon import Addon

from core import config, logger

__settings__ = Addon("plugin.video.Stefano")
__addonDir__ = __settings__.getAddonInfo("path")

DEFAULT_CAPTCHA = os.path.join(__addonDir__, "resources", "images",
                               "noimage.gif")

ACTION_PARENT_DIR = 9
ACTION_PREVIOUS_MENU = 10
ACTION_CONTEXT_MENU = 117

CTRL_ID_BACK = 8
CTRL_ID_SPACE = 32
CTRL_ID_RETN = 300
CTRL_ID_MAYS = 302
CTRL_ID_CAPS = 303
CTRL_ID_SYMB = 304
CTRL_ID_IP = 307
Exemplo n.º 46
0
import xbmc
import xbmcgui
from config import config
from xbmcaddon import Addon

ACTION_PARENT_DIR = 9
ACTION_PREVIOUS_MENU = 10
ADDON = Addon()
ADDON_ID = ADDON.getAddonInfo("id")
ADDON_NAME = ADDON.getAddonInfo("name")


class IntroWindow(xbmcgui.WindowDialog):
    def __init__(self, api):
        object.__init__(self)

        self.controls = {
            'buttons': []
        }
        self.api = api
        self.setCoordinateResolution(0)  # 1920x1080
        dimensions = {
            'spacing': {
                'normal': 20
            },
            'window': {
                'x1': 300,
                'x2': 1600,
                'y1': 200,
                'y2': 880,
            },
Exemplo n.º 47
0
import os
import sys

import xbmc
import xbmcgui
import xbmcvfs
from xbmcaddon import Addon

ADDON = Addon( "plugin.infologique.tou.tv" )
ADDON_CACHE = os.path.join( xbmc.translatePath( ADDON.getAddonInfo( 'profile' ) ), ".cache" )

if sys.argv[ 1 ].lower() == "full":
    print "[TouTv] deleting full cache"
    for root, dirs, files in os.walk( ADDON_CACHE ):
        for file in files:
            xbmcvfs.delete( os.path.join( root, file ) )
    xbmcgui.Dialog().ok( ADDON.getAddonInfo( 'name' ), "Clean Cache...", "Success" )

elif sys.argv[ 1 ].lower() == "badthumbs":
    print "[TouTv] delete: %r" % os.path.join( ADDON_CACHE, "badthumbs.txt" )
    xbmcvfs.delete( os.path.join( ADDON_CACHE, "badthumbs.txt" ) )
    xbmcgui.Dialog().ok( ADDON.getAddonInfo( 'name' ), "Clear debug infos of thumbails", "Success" )
Exemplo n.º 48
0
import xbmcgui
import xbmc
from resources.lib.service import service
from xbmcaddon import Addon
from resources.lib.utils import *
import os

__addonID__ = "plugin.xbianconfig"
ADDON = Addon(__addonID__)
ADDON_DATA = xbmc.translatePath("special://profile/addon_data/%s/" %
                                __addonID__)
ADDON_DIR = ADDON.getAddonInfo("path")
LangXBMC = xbmc.getLocalizedString
ROOTDIR = ADDON_DIR


class firstrun(service):
    def onStart(self):
        #check if first run
        firstlock = os.path.join(ADDON_DATA, '.firstrun')
        if not os.path.isfile(firstlock):
            if not os.path.exists(ADDON_DATA):
                os.mkdir(ADDON_DATA)
            setSetting('advancedmode', '0')
            setSetting('notifyonerror', '1')
            setSetting('notifyonsuccess', '1')
            setSetting('confirmationonchange', '1')
            #set default preference:
            self.dlg = xbmcgui.WindowXMLDialog('welcomeDialog.xml', ROOTDIR)
            self.dlg.doModal()
Exemplo n.º 49
0
        
        pass

def INFOO(url):
  try:
        CATEGORIES()
        dialog = xbmcgui.Dialog()
        i = dialog.ok(url, "[COLOR blue]PowerTV [/COLOR][COLOR yellow]is NO LONGER  Avelable[/COLOR] ","[COLOR pink]You Should try Dream Club or MagicTR[/COLOR]")
  except:
        
        pass

from xbmcaddon import Addon
__YoutubePluginName__ = 'plugin.video.youtube'
__YoutubeAddon__ = Addon(__YoutubePluginName__)
youtubeVersion = __YoutubeAddon__.getAddonInfo('version')

def magictr():
        videolar = ['VrCMoBhVteI','R43eK2lkFtQ','AJYrwNbqIu0','2fzdxj7Zg7E']
        youtubeadres=random.choice(videolar)
        url='http://www.youtube.com/embed/'+str(youtubeadres).encode('utf-8', 'ignore')
        if youtubeVersion == "5":
            
            
            Youtube_Player(str(url))
        else:
            
            Youtube_Player2(str(url))


def Youtube_Player(url):
Exemplo n.º 50
0
#!/usr/bin/python
# -*- coding: utf-8 -*-

import xbmc
import xbmcgui
from xbmcaddon import Addon
import utils


# Addon info
__addonID__ = "script.filecleaner"
__addon__ = Addon(__addonID__)
__title__ = __addon__.getAddonInfo("name")
__profile__ = xbmc.translatePath(__addon__.getAddonInfo("profile")).decode("utf-8")


class LogViewerDialog(xbmcgui.WindowXMLDialog):
    CAPTIONID = 201
    TEXTBOXID = 202
    TRIMBUTTONID = 301
    CLEARBUTTONID = 302
    CLOSEBUTTONID = 303

    def __init__(self, xml_filename, script_path, default_skin="Default", default_res="720p", *args, **kwargs):
        self.log = utils.Log()
        self.caption = utils.translate(32603)
        xbmcgui.WindowXMLDialog.__init__(self, xml_filename, script_path)

    def onInit(self):
        self.getControl(self.CAPTIONID).setLabel(self.caption)
        self.getControl(self.TEXTBOXID).setText(self.log.get())
Exemplo n.º 51
0
import xbmc
import xbmcgui
from xbmcaddon import Addon

# Modules Custom
from database import Database, TBN
from log import logAPI

log = logAPI()

database = Database()
db_paths = glob(xbmc.translatePath("special://Database/MyVideos*.db"))

# constants
ADDON = Addon("script.moviesets")
ADDON_NAME = ADDON.getAddonInfo("name")
ADDON_DIR = ADDON.getAddonInfo("path")

__string__ = xbmc.getLocalizedString  # XBMC strings
__language__ = ADDON.getLocalizedString  # ADDON strings


def _unicode(text, encoding="utf-8"):
    try:
        text = unicode(text, encoding)
    except:
        pass
    return text


class Manager:
# -*- coding: utf-8 -*-

import os
import sys
import re
import xbmc
import xbmcgui
from xbmcaddon import Addon
from core import config
from core import logger
from core import scrapertools

import urllib2, urllib, httplib, time

__settings__ = Addon( "plugin.video.streamondemand-pureita" )
__addonDir__ = __settings__.getAddonInfo( "path" )

DEFAULT_CAPTCHA = os.path.join( __addonDir__, "resources","images","noimage.gif")

ACTION_PARENT_DIR     = 9
ACTION_PREVIOUS_MENU  = 10
ACTION_CONTEXT_MENU   = 117

CTRL_ID_BACK = 8
CTRL_ID_SPACE = 32
CTRL_ID_RETN = 300
CTRL_ID_MAYS = 302
CTRL_ID_CAPS = 303
CTRL_ID_SYMB = 304
CTRL_ID_IP = 307
CTRL_ID_TEXT = 310
Exemplo n.º 53
0
import json
import requests
from xbmcaddon import Addon
from xbmc import executebuiltin, translatePath
import os
import sys
from time import sleep
from resources.lib import kodiutils
from resources.lib import kodilogging
from xbmcgui import ListItem, Dialog
from xbmcplugin import addDirectoryItems, endOfDirectory, setResolvedUrl
from utils import check_login, getChannelUrl


ADDON = Addon()
ADDONDATA = translatePath(ADDON.getAddonInfo('profile')).decode("utf-8")
if not os.path.exists(ADDONDATA):
    os.mkdir(ADDONDATA)
logger = logging.getLogger(ADDON.getAddonInfo('id'))
kodilogging.config()
plugin = routing.Plugin()


@plugin.route('/')
def index():
    with open(translatePath("special://home/addons/plugin.video.jiotv/resources/extra/categories.json"), 'r') as f:
        categories = json.load(f)
    items = []
    for each in categories.keys():
        items.append(
            (plugin.url_for(show_category, each), ListItem(each), True))
Exemplo n.º 54
0
# coding: utf-8

import os
import xbmc
from xbmcaddon import Addon

__all__ = ['ADDON_ID', 'addon', 'path', 'profile', 'icon', 'get_ui_string']

ADDON_ID = 'service.subtitles.addic7ed'
addon = Addon(ADDON_ID)
path = xbmc.translatePath(addon.getAddonInfo('path')).decode('utf-8')
profile = xbmc.translatePath(addon.getAddonInfo('profile')).decode('utf-8')
icon = os.path.join(path, 'icon.png')


def get_ui_string(string_id):
    """
    Get language string by ID

    :param string_id: UI string ID
    :return: UI string
    """
    return addon.getLocalizedString(string_id)
Exemplo n.º 55
0
from os import path
from requests import get
from json import loads, load
from shutil import copyfileobj, rmtree
from time import time
from unicodedata import normalize
from urllib import urlretrieve, unquote_plus, unquote, urlopen, quote
from xbmcaddon import Addon
from xbmcplugin import endOfDirectory, addDirectoryItem
from xbmcgui import ListItem, Dialog
from xbmcvfs import listdir, exists, mkdirs
from xbmc import translatePath, executebuiltin, getInfoLabel, executeJSONRPC, Player, sleep, log, getCondVisibility
from re import sub

MyAddon = Addon()
MyScriptID = MyAddon.getAddonInfo('id')
MyVersion = MyAddon.getAddonInfo('version')
MyTmp = translatePath(MyAddon.getAddonInfo('profile')).encode('utf-8')
MySubFolder = translatePath(path.join(MyTmp, 'subs')).encode('utf-8')
MyName = MyAddon.getAddonInfo('name')
MyLang = MyAddon.getLocalizedString


def convert_to_utf(file):
    try:
        with codecs.open(file, "r", "cp1255") as f:
            srt_data = f.read()

        with codecs.open(file, 'w', 'utf-8') as output:
            output.write(srt_data)
    except:
Exemplo n.º 56
0
from xbmcaddon import Addon


# Modules Custom
from utils.log import logAPI
from database import Database, TBN


# Constants
LOGGER   = logAPI()
DATABASE = Database()
DB_PATHS = glob( xbmc.translatePath( "special://Database/MyVideos*.db" ) )[ -1: ]

# constants
ADDON      = Addon( "script.moviesets" )
ADDON_DIR  = ADDON.getAddonInfo( "path" )

Language = ADDON.getLocalizedString # ADDON strings
LangXBMC = xbmc.getLocalizedString # XBMC strings

#https://raw.github.com/xbmc/xbmc/master/xbmc/guilib/Key.h
ACTION_PARENT_DIR    = 9
ACTION_PREVIOUS_MENU = 10
ACTION_NAV_BACK      = 92
ACTION_CONTEXT_MENU  = 117
KEYBOARD_A_BUTTON    = 61505
CLOSE_MANAGER        = [ ACTION_PARENT_DIR, ACTION_PREVIOUS_MENU, ACTION_NAV_BACK ]
CLOSE_DIALOG         = [ ACTION_CONTEXT_MENU ] + CLOSE_MANAGER


def _unicode( text, encoding="utf-8" ):
Exemplo n.º 57
0
import os
import sys
import urllib
from traceback import print_exc

import xbmc
import xbmcgui
import xbmcvfs
import xbmcplugin
from xbmcaddon import Addon

import repoutils as utils

# constants
ADDON      = Addon( "plugin.program.repo.installer" )
ADDON_NAME = ADDON.getAddonInfo( "name" )

#Language = ADDON.getLocalizedString # ADDON strings
LangXBMC = xbmc.getLocalizedString # XBMC strings


class PluginView:
    def __init__( self ):
        listitems = []
        for ID, repo in utils.getRepos().items():
            if ID == "*": continue
            #print repo

            addonID    = repo.get( "addonID" ) or repo[ "id" ]
            playCount  = xbmc.getCondVisibility( "System.HasAddon(%s)" % addonID )
            playCount  = playCount or xbmcvfs.exists( "special://home/addons/%s/addon.xml" % addonID )
Exemplo n.º 58
0
import os
import sys
import time

# Modules XBMC
import xbmc
import xbmcgui
from xbmcaddon import Addon

# Modules Custom
from log import logAPI
log = logAPI()

# constants
ADDON      = Addon( "script.moviesets" )
ADDON_NAME = ADDON.getAddonInfo( "name" )
ADDON_DIR  = ADDON.getAddonInfo( "path" )


def notification( header="", message="", sleep=5000, icon=ADDON.getAddonInfo( "icon" ) ):
    """ Will display a notification dialog with the specified header and message,
        in addition you can set the length of time it displays in milliseconds and a icon image.
    """
    icon = ( "DefaultIconInfo.png", icon )[ os.path.isfile( icon ) ]
    xbmc.executebuiltin( "XBMC.Notification(%s,%s,%i,%s)" % ( header, message, sleep, icon ) )


class Viewer:
    # constants
    WINDOW = 10147
    CONTROL_LABEL = 1
Exemplo n.º 59
0
import sys

#For Xml Files
import xml.dom.minidom
import shutil

from xbmcaddon import Addon

__addonID__      = "script.calendar"
__settings__     = Addon(id=__addonID__)
__string__       = __settings__.getLocalizedString
__language__     = __settings__


# INITIALISATION CHEMIN RACINE
ROOTDIR = __settings__.getAddonInfo('path')
# Shared resources
BASE_RESOURCE_PATH = os.path.join( ROOTDIR, "resources" )
# append the proper platforms folder to our path, xbox is the same as win32
env = ( os.environ.get( "OS", "win32" ), "win32", )[ os.environ.get( "OS", "win32" ) == "xbox" ]
sys.path.append( os.path.join( BASE_RESOURCE_PATH, "platform_libraries", env ) )
# append the proper libs folder to our path
sys.path.append( os.path.join( BASE_RESOURCE_PATH, "libs" ) )

from specialpath import *

from traceback import print_exc

from googlecalendar import *

class XmlCalendar :