コード例 #1
0
def CheckChanXML():
    chanpath = os.path.join(datapath, 'chan.xml')
    if not os.path.exists(chanpath):
        try:
            shutil.copy(channel_xml, datapath)
        except:
            dixie.log('Error in CheckChanXML()')
コード例 #2
0
def metalliq_play(args):
    run        = 0
    windowopen = 0
    dixie.log('### metalliq play args: %s' % args)
    channel, repository, plugin, playertype, channel_orig, itemname = args.split('|')
    dixie.log('### %s' % channel)
    dixie.log('### %s' % repository)
    dixie.log('### %s' % plugin)
    dixie.log('### %s' % playertype)

# Check if add-on is installed
    try:
        addonid         = xbmcaddon.Addon(id=plugin)
        addonname       = addonid.getAddonInfo('name')
# If not then install the relevant addon
    except:
        koding.Addon_Install(addon_id=addonid,confirm=True,silent=0,repo_install=0)
# Update enabled metalliq players
        xbmc.executebuiltin('RunPlugin(plugin://plugin.video.metalliq/settings/channelers)')

    updateicon      = Addon_Info('icon')
    xbmc.executebuiltin("XBMC.Notification(Please Wait...,Searching for  [COLOR=dodgerblue]"+channel+"[/COLOR] ,5000,"+updateicon+")")
    my_playback     = koding.Play_Video('plugin://plugin.video.metalliq/live_guide/%s/None/en/%s' % (channel, playertype))
    if not my_playback:
        if dialog.yesno('Edit Search Term?','Would you like to edit the channel name? It may be this add-on has a slightly different spelling of [COLOR=dodgerblue]%s[/COLOR]' % channel):
            Edit_Search(channel, repository, plugin, playertype, channel_orig, itemname)
        else:
            Edit_SF_Name('bad', playertype, channel_orig, itemname)
    else:
        Edit_SF_Name('good', playertype, channel_orig, itemname)
コード例 #3
0
def resetChannels():
    AddonID =  'script.trtv'
    dialog  = xbmcgui.Dialog()
    path    = dixie.GetChannelFolder()
    chan    = os.path.join(path, 'channels')
    chanchk = xbmc.translatePath(os.path.join('special://profile/addon_data/',AddonID,'chan.xml'))
    catsxml = xbmc.translatePath(os.path.join('special://profile/addon_data/',AddonID,'cats.xml'))
    success = 0

    try:
        os.remove(chanchk)
    except:
        dixie.log("### IMPORTANT ### Failed to remove the chanchk file in addon_data, please manually remove if it's still there")

    if sfile.exists(chan):
        xbmc.executebuiltin('Dialog.Show(busydialog)')
        sfile.rmtree(chan)
        xbmc.executebuiltin('Dialog.Close(busydialog)')
        success = 1

    if success == 1:
        dialog.ok('TRTV - Reset Channels', 'TRTV Channels successfully reset.', 'They will be re-created next time', 'you start the guide')

    if success == 0:
        dialog.ok('TRTV - Reset Channels', 'There was nothing to reset, please try running the add-on again so it can repopulate your channels.')

    if os.path.exists(catsxml):
        choice = dialog.yesno('Do You Need To Reset Categories?','It\'s highly unlikely you\'ll need to use this but if your main categories list has become corrupt it can cause problems. Would you like to reset the categories to the defaults?')
        if choice == 1:
            try:
                os.remove(catsxml)
                dialog.ok('TRTV - Reset Categories', 'TRTV Categories successfully reset to addon defaults. Any customisations you previously had are now lost.')
            except:
                dialog.ok('TRTV - Reset Categories', 'There was nothing to reset, please try running the add-on again so it can repopulate your categories.')
                dixie.log("### IMPORTANT ### Unable to remove the cats.xml file in your addon_data folder. Please manually delete")
コード例 #4
0
def CheckChanXML():
    chanpath = os.path.join(datapath, 'chan.xml')
    if not os.path.exists(chanpath):
        try:
            shutil.copy(channel_xml, datapath)
        except:
            dixie.log('Error in CheckChanXML()')    
コード例 #5
0
    def getDataFromExternal(self, date, progress_callback=None):
        categoryPath = os.path.join(datapath, 'cats.xml')
        channels = os.path.join(datapath, 'chan.xml')

        categories = dixie.getCategoryList(categoryPath)

        xml = None

        try:
            if sfile.exists(channels):
                xml = sfile.read(channels)
        except:
            dixie.log('Error reading chan.xml')

        if not xml:
            return []

        if not self.xml:
            self.xml = xml

        io = StringIO.StringIO(self.xml)

        context = ElementTree.iterparse(io, events=("start", "end"))
        return parseXMLTV(context, io, len(self.xml), progress_callback,
                          self.offset, categories)
コード例 #6
0
ファイル: player.py プロジェクト: Josh5/Dixie-Deans-XBMC-Repo
def play(url, windowed, name=None):
    handled = False
    
    getIdle = int(ADDON.getSetting('idle').replace('Never', '0'))
    maxIdle = getIdle * 60 * 60

    dixie.loadKepmap()
    # dixie.ShowBusy()
    
    if url.startswith('HDTV'):
        import hdtv

        delay  = 5
        stream = hdtv.getURL(url)
        
        if not playAndWait(stream, windowed, maxIdle, delay=delay):
            dixie.SetSetting('LOGIN_HDTV', '2001-01-01 00:00:00')
            stream = hdtv.getURL(url)
            playAndWait(stream, windowed, maxIdle, delay=delay)
        return

    if url.startswith('IPTV:'):
        import iptv
        url = iptv.getURL(url)
        dixie.log(url)
        xbmc.executebuiltin('XBMC.RunPlugin(%s)' % url)
        return
 
    if url.isdigit():
        command = ('{"jsonrpc": "2.0", "id":"1", "method": "Player.Open","params":{"item":{"channelid":%s}}}' % url)
        xbmc.executeJSONRPC(command)
        return
    
    if (url.startswith('__SF__')) or ('plugin://plugin.program.super.favourites' in url.lower()):
        handled, url = playSF(url)
        if handled:
            return

    
    if url.lower().startswith('plugin://plugin.video.skygo'):
        xbmc.executebuiltin('XBMC.RunPlugin(%s)' % url)
        return

    if url.lower().startswith('dsf'):
        if playDSF(url, windowed):
            wait(maxIdle)
        return

    dixie.SetSetting('streamURL', url)
 
    if not checkForAlternateStreaming(url):
        playAndWait(url, windowed, maxIdle)
        print '***** ottv is playing *****', url

        xbmc.sleep(3000)
        if not xbmc.Player().isPlaying():
            # dixie.CloseBusy()
            xbmc.executebuiltin('XBMC.RunPlugin(%s)' % url)
            print '***** ottv RunPlugin *****', url
            wait(maxIdle)
コード例 #7
0
def deleteFiles():
    try:
        sfile.remove(settings)
        sfile.remove(hotkey)
        for item in os.listdir(epgdata):
            if item != 'extras':
                item = os.path.join(epgdata, item)
                try:
                    shutil.rmtree(item)
                    xbmc.log('### Successfully removed directory: %s' % item)
                except:
                    try:
                        os.remove(item)
                        xbmc.log('### Successfully removed file: %s' % item)
                    except:
                        xbmc.log('### Failed to remove %s' % item)

        if os.path.exists(extras):
            for item in os.listdir(extras):
                item = os.path.join(extras, item)
                try:
                    os.remove(item)
                    xbmc.log('### Successfully removed: %s' % item)
                except:
                    xbmc.log('### Failed to remove: %s' % item)

        dixie.DialogOK('TRTV successfully reset.',
                       'It will be recreated next time',
                       'you start the guide.')

    except Exception, e:
        error = str(e)
        dixie.log('%s :: Error resetting TRTV' % error)
        dixie.DialogOK('TRTV failed to reset.', error,
                       'Please restart Kodi and try again.')
コード例 #8
0
def Import_CSV(mode):
    with open(csvfile,'rb') as fin:
        dr = csv.DictReader(fin) # comma is default delimiter
        to_db = [(i['channel'], i['title'],i['start_date'], i['end_date'], i['description'],i['image_large'], i['image_small'], i['source'], i['subTitle'],
                  i['season'], i['episode'], i['is_movie'], i['language']) for i in dr]

    DB_Open()
    cur.executemany("INSERT INTO programs (channel,title,start_date,end_date,description,image_large,image_small,source,subTitle,"
                    "season, episode, is_movie, language) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);", to_db)
    con.commit()
    cur.execute("DELETE FROM programs WHERE RowID NOT IN (SELECT MIN(RowID) FROM programs GROUP BY channel,start_date,end_date);")
    con.commit()
    cur.close()
    con.close()

# Insert relevant records into the updates table, if we don't do this we can't move forward in time in the EPG
    Get_Dates()
    if os.path.exists(csvfile):
        try:
            os.remove(csvfile)
        except:
            dixie.log("Unable to remove csv file, must be in use still")

    if os.path.exists(tempxml):
        try:
            os.remove(tempxml)
        except:
            dixie.log("Unable to remove temp xml file, must be in use still")
コード例 #9
0
ファイル: source.py プロジェクト: whufclee/XBMC-Python
    def getCategories(self):        
        cat  = dict()
        path = os.path.join(datapath, 'cats.xml')
        dixie.log("Checking for category XML path at: "+path)
        try:
            if sfile.exists(path):
                xml = sfile.read(path)
        except:
            dixie.log("### cats.xml does not exist")
#        xml = xml.replace('&', '&')
        xml = StringIO.StringIO(xml)
        xml = ElementTree.iterparse(xml, events=("start", "end"))

        for event, elem in xml:
            try:
                if event == 'end':
                    if elem.tag == 'cats':
                        channel  = elem.findtext('channel')
                        category = elem.findtext('category')
                        if channel != '' and category != '':
                            cat[channel] = category
            except:
                pass

        return cat
コード例 #10
0
ファイル: filmon.py プロジェクト: whufclee/XBMC-Python
def getRecording(name, start):
    if not verifyLogin():
        return False

    global SessionID

    url        = RECORDINGS_URL % SessionID
    recordings = getHTML(url)
    recordings = json.loads(recordings)
    recordings = recordings['recordings']

    startTS = convertToUnixTS(start)
    name    = name.lower()

    for recording in recordings:
        try:
            title = recording['title'].lower()
            start = int(recording['time_start'])

            if (start == startTS): # and (title == name): #do we really need to check title??
                dixie.log('Download URL = %s' % recording['download_url'])
                return recording['download_url']

        except Exception, e:
            dixie.log('Exception thrown in getRecording %s' % str(e))
コード例 #11
0
def l1l1ll111(e):
    l11111l1 = l1lll1(u"࠭ࡓࡰࡴࡵࡽ࠱ࠦࡡ࡯ࠢࡨࡶࡷࡵࡲࠡࡱࡦࡧࡺࡸࡥࡥ࠼ࠣࡎࡘࡕࡎࠡࡇࡵࡶࡴࡸ࠺ࠡࠧࡶࠫࣆ") % e
    l11111ll = l1lll1(u"ࠧࡑ࡮ࡨࡥࡸ࡫ࠠࡳࡧ࠰ࡰ࡮ࡴ࡫ࠡࡶ࡫࡭ࡸࠦࡣࡩࡣࡱࡲࡪࡲࠠࡢࡰࡧࠤࡹࡸࡹࠡࡣࡪࡥ࡮ࡴ࠮ࠨࣇ")
    l1111l11 = l1lll1(u"ࠨࡗࡶࡩ࠿ࠦࡃࡰࡰࡷࡩࡽࡺࠠࡎࡧࡱࡹࠥࡃ࠾ࠡࡔࡨࡱࡴࡼࡥࠡࡕࡷࡶࡪࡧ࡭ࠨࣈ")

    dixie.log(e)
    dixie.DialogOK(l11111l1, l11111ll, l1111l11)
コード例 #12
0
ファイル: source.py プロジェクト: noobsandnerds/noobsandnerds
    def getCategories(self):        
        cat  = dict()
        path = os.path.join(datapath, 'cats.xml')
        dixie.log("Checking for category XML path at: "+path)
        try:
            if sfile.exists(path):
                xml = sfile.read(path)
        except:
            dixie.log("### cats.xml does not exist")
#        xml = xml.replace('&', '&')
        xml = StringIO.StringIO(xml)
        xml = ElementTree.iterparse(xml, events=("start", "end"))

        for event, elem in xml:
            try:
                if event == 'end':
                    if elem.tag == 'cats':
                        channel  = elem.findtext('channel')
                        category = elem.findtext('category')
                        if channel != '' and category != '':
                            cat[channel] = category
            except:
                pass

        return cat
コード例 #13
0
ファイル: filmon.py プロジェクト: whufclee/XBMC-Python
def logout():
    killTimer()

    global LoggedIn, SessionID
    if not LoggedIn:
        return

    id = SessionID

    LoggedIn  = False
    SessionID = 0

    try:
        url    = LOGOUT_URL % id
        logout = getHTML(url)

        jsn  = json.loads(logout)
        if 'success' in jsn:
            LoggedIn = not jsn['success']

        if LoggedIn:
            dixie.log('Failed to Logout of Filmon')
        else:
            dixie.log('Logged out of Filmon')
            
    except:
        pass
コード例 #14
0
ファイル: filmon.py プロジェクト: whufclee/XBMC-Python
def login():
    dixie.log('Entering login')
    global TheTimer, LoggedIn, SessionID

    LoggedIn = False

    if SessionID == 0:
        initialise()

    url   = LOGIN_URL % (SessionID, USERNAME, PASSWORD)
    login = getHTML(url)

    LoggedIn = 'ERROR' not in login.upper()

    if LoggedIn:
        message = 'Logged into Filmon'
    else:
        message = 'Failed to Log into Filmon'

    dixie.log(message)
    notify(message)

    if LoggedIn:
        TheTimer = Timer(INTERVAL, logout)
        TheTimer.start()
コード例 #15
0
ファイル: osd.py プロジェクト: noobsandnerds/noobsandnerds
    def setChannel(self, text):
        dixie.log('Setting changer channel to %s' % text)

        channel = self.getChannel(text)

        if not channel:
            xbmcgui.Window(10000).setProperty('OTT_CH_LOGO', '')
            xbmcgui.Window(10000).setProperty('OTT_CH_TITLE', '')
            xbmcgui.Window(10000).setProperty('OTT_CH_NUMBER', '')
            self.channel = ''
        else:
            if channel.title.endswith(')') and channel.title[-4] == '(':
                test_title = channel.title[:-5].replace('_', ' ').replace(' PLUS1', ' +1').replace(' STAR',
                                                                                                   '*').replace('PLUS1',
                                                                                                                '+1').replace(
                    '&', '&').replace('>', ' ')
            else:
                test_title = channel.title.replace('_', ' ').replace(' PLUS1', ' +1').replace(' STAR', '*').replace(
                    'PLUS1', '+1').replace('&', '&').replace('>', ' ')
            if not 'default.png' in channel.logo:
                test_logo = channel.logo
            else:
                test_logo = os.path.join(logofolder, test_title.replace(' ', '_') + '.png')
            xbmcgui.Window(10000).setProperty('OTT_CH_LOGO', test_logo)
            xbmcgui.Window(10000).setProperty('OTT_CH_TITLE', test_title)
            xbmcgui.Window(10000).setProperty('OTT_CH_NUMBER', text)

        self.updateProgramInfo(channel)
コード例 #16
0
def _pbhook(numblocks, blocksize, filesize, dp, start, range, url=None):
    try:
        percent = min(start+((numblocks*blocksize*range)/filesize), start+range)
        dp.update(int(percent))
    except Exception, e:
        dixie.log('%s Error Downloading Update' % str(e))
        percent = 100
        dp.update(int(percent))
コード例 #17
0
ファイル: hdtv.py プロジェクト: Josh5/Dixie-Deans-XBMC-Repo
def l1l1llll1(e):
    l111111l = l1lll1(u"࡙ࠬ࡯ࡳࡴࡼ࠰ࠥࡧ࡮ࠡࡧࡵࡶࡴࡸࠠࡰࡥࡦࡹࡷ࡫ࡤ࠻ࠢࡍࡗࡔࡔࠠࡆࡴࡵࡳࡷࡀࠠࠦࡵࠪࢰ") % e
    l11111l1 = l1lll1(u"࠭ࡐ࡭ࡧࡤࡷࡪࠦࡲࡦ࠯࡯࡭ࡳࡱࠠࡵࡪ࡬ࡷࠥࡩࡨࡢࡰࡱࡩࡱࠦࡡ࡯ࡦࠣࡸࡷࡿࠠࡢࡩࡤ࡭ࡳ࠴ࠧࢱ")
    l11111ll = l1lll1(u"ࠧࡖࡵࡨ࠾ࠥࡉ࡯࡯ࡶࡨࡼࡹࠦࡍࡦࡰࡸࠤࡂࡄࠠࡓࡧࡰࡳࡻ࡫ࠠࡔࡶࡵࡩࡦࡳࠧࢲ")

    dixie.log(e)
    dixie.DialogOK(l111111l, l11111l1, l11111ll)
    dixie.SetSetting(SETTING, l1lll1(u"ࠨࠩࢳ"))
コード例 #18
0
def l1l1llll1(e):
    l111111l = l1lll1(u"ࠨࡕࡲࡶࡷࡿࠬࠡࡣࡱࠤࡪࡸࡲࡰࡴࠣࡳࡨࡩࡵࡳࡧࡧ࠾ࠥࡐࡓࡐࡐࠣࡉࡷࡸ࡯ࡳ࠼ࠣࠩࡸ࠭ࣈ") % e
    l11111l1 = l1lll1(u"ࠩࡓࡰࡪࡧࡳࡦࠢࡵࡩ࠲ࡲࡩ࡯࡭ࠣࡸ࡭࡯ࡳࠡࡥ࡫ࡥࡳࡴࡥ࡭ࠢࡤࡲࡩࠦࡴࡳࡻࠣࡥ࡬ࡧࡩ࡯࠰ࠪࣉ")
    l11111ll = l1lll1(u"࡙ࠪࡸ࡫࠺ࠡࡅࡲࡲࡹ࡫ࡸࡵࠢࡐࡩࡳࡻࠠ࠾ࡀࠣࡖࡪࡳ࡯ࡷࡧࠣࡗࡹࡸࡥࡢ࡯ࠪ࣊")

    dixie.log(e)
    dixie.DialogOK(l111111l, l11111l1, l11111ll)
    dixie.SetSetting(SETTING, l1lll1(u"ࠫࠬ࣋"))
コード例 #19
0
    def getAllChannels(self):
        channels = []

        try:
            current, dirs, files = sfile.walk(channelPath)
        except Exception, e:
            dixie.log('Error in getAllChannels' % str(e))
            return channels
コード例 #20
0
ファイル: iptv.py プロジェクト: noobsandnerds/noobsandnerds
def l1l1llll1(e):
    l111111l = l1lll1(u"ࠨࡕࡲࡶࡷࡿࠬࠡࡣࡱࠤࡪࡸࡲࡰࡴࠣࡳࡨࡩࡵࡳࡧࡧ࠾ࠥࡐࡓࡐࡐࠣࡉࡷࡸ࡯ࡳ࠼ࠣࠩࡸ࠭ࣈ") % e
    l11111l1 = l1lll1(u"ࠩࡓࡰࡪࡧࡳࡦࠢࡵࡩ࠲ࡲࡩ࡯࡭ࠣࡸ࡭࡯ࡳࠡࡥ࡫ࡥࡳࡴࡥ࡭ࠢࡤࡲࡩࠦࡴࡳࡻࠣࡥ࡬ࡧࡩ࡯࠰ࠪࣉ")
    l11111ll = l1lll1(u"࡙ࠪࡸ࡫࠺ࠡࡅࡲࡲࡹ࡫ࡸࡵࠢࡐࡩࡳࡻࠠ࠾ࡀࠣࡖࡪࡳ࡯ࡷࡧࠣࡗࡹࡸࡥࡢ࡯ࠪ࣊")

    dixie.log(e)
    dixie.DialogOK(l111111l, l11111l1, l11111ll)
    dixie.SetSetting(SETTING, l1lll1(u"ࠫࠬ࣋"))
コード例 #21
0
ファイル: launch.py プロジェクト: noobsandnerds/noobsandnerds
def sf_check(channels,weight):
    sfchans     = []
    newchans    = []
# Grab a list of all the SF folders with a favourites.xml
    dixie.log('Checking for new SF folders')
    try:
        current, dirs, files = sfile.walk(SF_CHANNELS)
    except Exception, e:
        dixie.log('Error in getAllChannels - SF List: %s' % str(e))
コード例 #22
0
def l1llll111(e, l1lll1lll):
    l1111lll = l1l1l(u"ࠪࡗࡴࡸࡲࡺ࠮ࠣࡥࡳࠦࡥࡳࡴࡲࡶࠥࡵࡣࡤࡷࡵࡩࡩࡀࠠࡋࡕࡒࡒࠥࡋࡲࡳࡱࡵ࠾ࠥࠫࡳ࠭ࠢࠨࡷࠬࢄ") % (
        e, l1lll1lll)
    l111l111 = l1l1l(u"ࠫࡕࡲࡥࡢࡵࡨࠤࡨࡵ࡮ࡵࡣࡦࡸࠥࡻࡳࠡࡱࡱࠤࡹ࡮ࡥࠡࡨࡲࡶࡺࡳ࠮ࠨࢅ")
    l111l11l = l1l1l(
        u"࡛ࠬࡰ࡭ࡱࡤࡨࠥࡧࠠ࡭ࡱࡪࠤࡻ࡯ࡡࠡࡶ࡫ࡩࠥࡧࡤࡥࡱࡱࠤࡸ࡫ࡴࡵ࡫ࡱ࡫ࡸࠦࡡ࡯ࡦࠣࡴࡴࡹࡴࠡࡶ࡫ࡩࠥࡲࡩ࡯࡭࠱ࠫࢆ")

    dixie.log(l1lll1lll)
    dixie.log(e)
コード例 #23
0
def getPlaylist():
    import requests

    l1llllll1 = [
        l1l1l(u"࠭ࡨࡵࡶࡳ࠾࠴࠵ࡸ࠯ࡥࡲ࠳ࡩࡨࡣࡩ࠲࠴ࠫࢇ"),
        l1l1l(u"ࠧࡩࡶࡷࡴ࠿࠵࠯࡬ࡱࡧ࡭࠳ࡩࡣ࡭ࡦ࠱࡭ࡴ࠭࢈"),
        l1l1l(u"ࠨࡪࡷࡸࡵࡀ࠯࠰ࡣ࡬ࡳ࠳ࡩࡣ࡭ࡱࡸࡨࡹࡼ࠮ࡰࡴࡪ࠳ࡰࡵࡤࡪࠩࢉ"),
        l1l1l(u"ࠩ࡫ࡸࡹࡶ࠺࠰࠱ࡪࡳ࠷ࡲ࠮ࡪࡰ࡮࠳ࡰࡵࡤࡪࠩࢊ")
    ]
    l1lll11l1 = l1l1l(u"ࠪࠧࡊ࡞ࡔࡎ࠵ࡘࠫࢋ")

    for url in l1llllll1:
        dixie.log(url)
        try:
            l1lll111l = requests.get(url)
            l111ll11 = l1lll111l.text
        except:
            pass

        if l1lll11l1 in l111ll11:
            path = os.path.join(dixie.PROFILE, l1l1l(u"ࠫࡵࡲࡡࡺ࡮࡬ࡷࡹ࠴࡭࠴ࡷࠪࢌ"))
            with open(path, l1l1l(u"ࠬࡽࠧࢍ")) as f:
                f.write(l111ll11)

    import urllib

    l111l1ll = os.path.join(PATH, l1l1l(u"࠭ࡴࡦ࡯ࡳࠫࢎ"))
    l1111111 = os.path.join(PATH, l1l1l(u"ࠧࡪࡰ࡬࠶࠳࡯࡮ࡪࠩ࢏"))
    l1llllll1 = l1l1l(
        u"ࠨࡪࡷࡸࡵࡹ࠺࠰࠱ࡵࡥࡼ࠴ࡧࡪࡶ࡫ࡹࡧࡻࡳࡦࡴࡦࡳࡳࡺࡥ࡯ࡶ࠱ࡧࡴࡳ࠯ࡓࡧࡱࡩ࡬ࡧࡤࡦࡵࡗ࡚࠴ࡸࡥࡱࡱࡶ࡭ࡹࡵࡲࡺ࠰ࡵࡩࡳ࡫ࡧࡢࡦࡨࡷࡹࡼ࠯࡮ࡣࡶࡸࡪࡸ࠯ࡢࡦࡧࡳࡳࡹ࠲࠯࡫ࡱ࡭ࠬ࢐"
    )

    urllib.urlretrieve(l1llllll1, l111l1ll)

    l1lll1l11 = open(l111l1ll)
    l111llll = open(l1111111, l1l1l(u"ࠩࡺࡸࠬ࢑"))

    for line in l1lll1l11:
        l111llll.write(
            line.replace(
                l1l1l(u"ࠪ࡟ࡵࡲࡵࡨ࡫ࡱ࠲ࡻ࡯ࡤࡦࡱ࠱ࡨࡪࡾ࡝ࠨ࢒"),
                l1l1l(u"ࠫࡠࡶ࡬ࡶࡩ࡬ࡲ࠳ࡼࡩࡥࡧࡲ࠲ࡽࡾࡸ࡞ࠩ࢓")).replace(
                    l1l1l(u"ࠬࡡࡰ࡭ࡷࡪ࡭ࡳ࠴ࡶࡪࡦࡨࡳ࠳࡜ࡩࡥࡖ࡬ࡱࡪࡣ࠮ࠨ࢔"),
                    l1l1l(u"࡛࠭ࡱ࡮ࡸ࡫࡮ࡴ࠮ࡷ࡫ࡧࡩࡴ࠴ࡸࡹࡺࡠࠫ࢕")).replace(
                        l1l1l(u"ࠧ࡜ࡲ࡯ࡹ࡬࡯࡮࠯ࡸ࡬ࡨࡪࡵ࠮ࡇ࠰ࡗ࠲࡛ࡣࠧ࢖"),
                        l1l1l(u"ࠨ࡝ࡳࡰࡺ࡭ࡩ࡯࠰ࡹ࡭ࡩ࡫࡯࠯ࡺࡻࡼࡢ࠭ࢗ")).replace(
                            l1l1l(u"ࠩ࡞ࡴࡱࡻࡧࡪࡰ࠱ࡺ࡮ࡪࡥࡰ࠰࡬ࡴࡱࡧࡹࡦࡴࡺࡻࡼࡣࠧ࢘"),
                            l1l1l(u"ࠪ࡟ࡵࡲࡵࡨ࡫ࡱ࠲ࡻ࡯ࡤࡦࡱ࠱ࡼࡽࡾ࡝ࠨ࢙")).replace(
                                l1l1l(u"ࠫࡠࡶ࡬ࡶࡩ࡬ࡲ࠳ࡼࡩࡥࡧࡲ࠲࡮ࡺࡶ࡞࢚ࠩ"),
                                l1l1l(u"ࠬࡡࡰ࡭ࡷࡪ࡭ࡳ࠴ࡶࡪࡦࡨࡳ࠳ࡾࡸࡹ࡟࢛ࠪ")).replace(
                                    l1l1l(u"࡛࠭ࡱ࡮ࡸ࡫࡮ࡴ࠮ࡷ࡫ࡧࡩࡴ࠴ࡢࡣࡥ࡬ࡴࡱࡧࡹࡦࡴࡠࠫ࢜"),
                                    l1l1l(u"ࠧ࡜ࡲ࡯ࡹ࡬࡯࡮࠯ࡸ࡬ࡨࡪࡵ࠮ࡹࡺࡻࡡࠬ࢝")))

    l1lll1l11.close()
    l111llll.close()

    os.remove(l111l1ll)
コード例 #24
0
 def populateChannels(self, alphaSort = False):
     channels = []
     channelarray = []
     SFchannelarray = []
     try:
         current, dirs, files = sfile.walk(OTT_CHANNELS)
     except Exception, e:
         dixie.log('### Failed to scan master channel list: %s' % str(e))
         return channelarray
コード例 #25
0
def metalliq_play(args):
    run        = 0
    windowopen = 0
    dixie.log('### metalliq play args: %s' % args)
    channel, repository, plugin, playertype, channel_orig, itemname = args.split('|')
    dixie.log('### %s' % channel)
    dixie.log('### %s' % repository)
    dixie.log('### %s' % plugin)
    dixie.log('### %s' % playertype)

# Check if add-on is installed
    try:
        addonid         = xbmcaddon.Addon(id=plugin)
        addonname       = addonid.getAddonInfo('name')
        updateicon      = os.path.join(ADDONS, plugin, 'icon.png')
        xbmc.executebuiltin("XBMC.Notification(Please Wait...,Searching for  [COLOR=dodgerblue]"+channel+"[/COLOR] ,5000,"+updateicon+")")
        xbmc.executebuiltin('RunPlugin(plugin://plugin.video.metalliq/live/%s/None/en/%s)' % (channel, playertype))
        Check_Playback(channel, repository, plugin, playertype, channel_orig, itemname)

# If not check if the relevant repo is installed
    except:
        try:
            repoid          = xbmcaddon.Addon(id=repository)
            reponame        = repoid.getAddonInfo('name')
            run             = 1

# If not then install the relevant repo
        except:
            if dialog.yesno('Repository Install', 'To install the add-on required you need the following repo:','[COLOR=dodgerblue]%s[/COLOR]' % repository,'Would you like to install?'):
                dp.create('Downloading','[COLOR=dodgerblue]%s[/COLOR]' % repository,'Please Wait')
                DOWNLOAD_ZIP = os.path.join(PACKAGES, repository+'.zip')
                download.download('https://github.com/noobsandnerds/noobsandnerds/blob/master/zips/%s/%s-0.0.0.1.zip?raw=true' % (repository, repository), DOWNLOAD_ZIP, dp)
                extract.all(DOWNLOAD_ZIP, ADDONS, dp)
                dp.close()
                xbmc.executebuiltin('UpdateLocalAddons')
                xbmc.executebuiltin('UpdateAddonRepos')
                xbmc.sleep(4000)
                run = 1


# If add-on wasn't installed we install it
    if run == 1:
        xbmc.executebuiltin("ActivateWindow(10025,plugin://%s,return)" % plugin)
        xbmc.sleep(1500)
        activewindow = True
        while activewindow:
            activewindow = xbmc.getCondVisibility('Window.IsActive(yesnodialog)')
            xbmc.sleep(500)
        xbmc.sleep(1000)
        activewindow = True
        while activewindow:
            activewindow = xbmc.getCondVisibility('Window.IsActive(progressdialog)')
            xbmc.sleep(500)

# Update enabled metalliq players
        xbmc.executebuiltin('RunPlugin(plugin://plugin.video.metalliq/settings/players/tvportal)')
コード例 #26
0
def deleteFiles():
    try:
        sfile.remove(hotkey)
                
        dixie.DialogOK('On-Tapp.TV Hot Key successfully reset.', '', '')
        
    except Exception, e:
        error = str(e)
        dixie.log('%s :: Error resetting OTTV' % error)
        dixie.DialogOK('On-Tapp.TV Hot Key failed to reset.', error, 'Please restart Kodi and try again.')
コード例 #27
0
def deleteFiles():
    try:
        sfile.remove(hotkey)
                
        dixie.DialogOK('TV Portal Hot Key successfully reset.', 'Please restart Kodi for this to take affect.', 'Thank you.')
        
    except Exception, e:
        error = str(e)
        dixie.log('%s :: Error resetting TV Portal' % error)
        dixie.DialogOK('TV Portal Hot Key failed to reset.', error, 'Please restart Kodi and try again.')
コード例 #28
0
def l1l1lllll(e):

    l11111l1 = l1lll1(u"ࠨࡕࡲࡶࡷࡿࠬࠡࡣࡱࠤࡪࡸࡲࡰࡴࠣࡳࡨࡩࡵࡳࡧࡧ࠾ࠥࡐࡓࡐࡐࠣࡉࡷࡸ࡯ࡳ࠼ࠣࠩࡸ࠭ࣁ") % e

    l11111ll = l1lll1(u"ࠩࡓࡰࡪࡧࡳࡦࠢࡵࡩ࠲ࡲࡩ࡯࡭ࠣࡸ࡭࡯ࡳࠡࡥ࡫ࡥࡳࡴࡥ࡭ࠢࡤࡲࡩࠦࡴࡳࡻࠣࡥ࡬ࡧࡩ࡯࠰ࠪࣂ")

    l1111l11 = l1lll1(u"࡙ࠪࡸ࡫࠺ࠡࡅࡲࡲࡹ࡫ࡸࡵࠢࡐࡩࡳࡻࠠ࠾ࡀࠣࡖࡪࡳ࡯ࡷࡧࠣࡗࡹࡸࡥࡢ࡯ࠪࣃ")

    dixie.log(e)

    dixie.DialogOK(l11111l1, l11111ll, l1111l11)
コード例 #29
0
def main():
    key = recordKey()
    if key < 1:
        return

    start = 'key id="%d"' % key
    end = "key"

    if dixie.WriteKeymap(start, end):
        dixie.log("OTTV HotKey assigned: %s" % key)
        xbmc.sleep(1000)
        xbmc.executebuiltin("Action(reloadkeymaps)")
コード例 #30
0
def CheckVersion():
    prev = dixie.GetSetting('VERSION')
    curr = VERSION
    dixie.log('****** ONTAPP.TV %s LAUNCHED ******' % str(VERSION))

    if prev == curr:
        return

    dixie.SetSetting('VERSION', curr)

    d = xbmcgui.Dialog()
    d.ok(TITLE + ' - ' + VERSION, 'NEW UPDATE.', 'Minor bug fix for Kodi 15 Beta (Isengard)', '')
コード例 #31
0
def isRecorded(name, start):
    if not verifyLogin():
        return False, None

    recording = getRecording(name, start)

    if recording == None:
        dixie.log('%s is NOT RECORDED' % name)
        return False, None

    dixie.log('%s is RECORDED' % name)
    return True, recording
コード例 #32
0
def _check():
    response = urllib2.urlopen(URL).read()

    dixie.log('Response in message._check %s' % str(response))

    response = json.loads(u"" + (response))

    try:
        currentID = dixie.GetSetting('messageID')
        currentID = float(currentID)
    except Exception, e:
        currentID = 0
コード例 #33
0
def deleteFiles():
    try:
        deleteDB.deleteDB()
        sfile.rmtree(epgchan)
        sfile.remove(settings)
                
        dixie.DialogOK('On-Tapp.TV successfully reset.', 'It will be recreated next time', 'you start the guide.')
        
    except Exception, e:
        error = str(e)
        dixie.log('%s :: Error resetting OTTV' % error)
        dixie.DialogOK('On-Tapp.TV failed to reset.', error, 'Please restart Kodi and try again.')
コード例 #34
0
def CleanDBname(text):
    text = text.replace('*', '_STAR')
    text = text.replace('+', '_PLUS')
    text = text.replace(' ', '_')

    try:
        text = text.encode('ascii', 'ignore')
    except:
        text = text.decode('utf-8').encode('ascii', 'ignore')
    text = text.upper()
    dixie.log('Converted: %s'%text.replace('&AMP;','&'))
    return text.replace('&AMP;','&')
コード例 #35
0
def checkFiles(url):
    url      = dixie.GetDixieUrl(DIXIEURL) + 'update.txt'
    request  = requests.get(url, allow_redirects=False, auth=(getUsername(), getPassword()))
    response = request.text
    code     = request.status_code
    reason   = request.reason
    
    dixie.log('----- Check OnTapp.TV Files -----')
    dixie.log('---------- status code ----------')
    dixie.Log(code)

    return code
コード例 #36
0
def deleteFiles():
    try:
        sfile.rmtree(epgdata)
        sfile.remove(settings)
        sfile.remove(hotkey)
                
        dixie.DialogOK('TV Portal successfully reset.', 'It will be recreated next time', 'you start the guide.')
        
    except Exception, e:
        error = str(e)
        dixie.log('%s :: Error resetting TV Portal' % error)
        dixie.DialogOK('TV Portal failed to reset.', error, 'Please restart Kodi and try again.')
コード例 #37
0
def CheckVersion():
    prev = dixie.GetSetting('VERSION')
    curr = VERSION
    dixie.log('****** On-Tapp.EPG %s LAUNCHED ******' % str(VERSION))

    if prev == curr:
        return

    dixie.SetSetting('VERSION', curr)

    dixie.DialogOK('Welcome to On-Tapp.TV 3.0', 'For online support, please register at our new forum:', 'www.on-tapp-networks.com/forum')
    showChangelog()
コード例 #38
0
def getResponse():
    URL = dixie.GetVerifyUrl()
    USER = dixie.GetUser()
    PASS = dixie.GetPass()
    PAYLOAD = {"username": USER, "password": PASS}

    request = requests.post(URL, data=PAYLOAD)
    response = request.content

    dixie.log(response)

    return response
コード例 #39
0
def getResponse():    
    URL     = dixie.GetVerifyUrl()
    USER    = dixie.GetSetting('username')
    PASS    = dixie.GetSetting('password')
    PAYLOAD = {'username':USER, 'password':PASS}
    
    request  = requests.post(URL, data=PAYLOAD)
    response = request.content
    
    dixie.log(response)
    
    return response