⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 settings.py

📁 XOT: XBMC Online TV Framework
💻 PY
字号:
import exceptions
import xml.dom.minidom
import sys, os, re

#===============================================================================
# Make global object available
#===============================================================================
import config
import common
logFile = sys.modules['__main__'].globalLogFile
uriHandler = sys.modules['__main__'].globalUriHandler

def CleanupXml(xmlDoc):
    #cleanup
    prettyXml = xmlDoc.toprettyxml()
    #remove not needed lines with only whitespaces
    prettyXml = re.sub("(?m)^\s+[\n\r]", "", prettyXml, )
    
    prettyXml = re.sub("[\n\r]+\t+([^<\t]+)[\n\r]+\t+", "\g<1>", prettyXml)
    return prettyXml

def LoadFavorites(channelName, icon):
    """
        Reads the favorites into items.
    """
    items = []

    try:
        xmlDoc = xml.dom.minidom.parse(os.path.join(config.rootDir, "settings.xml"))

        for favoritesNode in xmlDoc.getElementsByTagName('favorites'):
            
            for favorite in favoritesNode.getElementsByTagName('item'):
                if favorite.getAttribute("chnName") != channelName:
                    # not the right channel
                    continue
                
                # read the name and url
                name = favorite.getElementsByTagName("name")[0].firstChild.nodeValue
                url = favorite.getElementsByTagName("url")[0].firstChild.nodeValue
                #logFile.debug("%s %s", name, url)
                
                # create the item
                item = common.clistItem(name, url)
                item.icon = icon
                items.append(item)
        return items
    except:
        logFile.error("Settings :: Error loading favorites", exc_info=True)
        return items    
            
def AddToFavorites(item, channelName):
    try:
        xmlDoc = xml.dom.minidom.parse(os.path.join(config.rootDir, "settings.xml"))
        
        for favoritesNode in xmlDoc.getElementsByTagName('favorites'):
            xmlItem = xmlDoc.createElement("item")
            
            name = xmlDoc.createElement("name")
            nameText = xmlDoc.createTextNode(item.name)
            name.appendChild(nameText)
            
            url = xmlDoc.createElement("url")
            urlText = xmlDoc.createTextNode(item.url)
            url.appendChild(urlText)
            
            xmlItem.appendChild(name)
            xmlItem.appendChild(url)
            xmlItem.setAttribute("chnName", channelName)
            favoritesNode.appendChild(xmlItem)
        
        xmlFile = file(os.path.join(config.rootDir, "settings.xml"), "w")
        xmlFile.write(CleanupXml(xmlDoc))
        xmlFile.flush()
        xmlFile.close()
    except:
        logFile.error("Settings :: Error adding favorites", exc_info=True)
        try:
            xmlFile.close()
        except UnboundLocalError:
            pass    

def RemoveFromFavorites(item, channelName):
    try:
        xmlDoc = xml.dom.minidom.parse(os.path.join(config.rootDir, "settings.xml"))
    
        for favoritesNode in xmlDoc.getElementsByTagName('favorites'):
            
            for favorite in favoritesNode.getElementsByTagName('item'):
                name = favorite.getElementsByTagName("name")[0].firstChild.nodeValue
                url = favorite.getElementsByTagName("url")[0].firstChild.nodeValue
                
                if name == item.name and url == item.url:
                    favoritesNode.removeChild(favorite)
                    break
    
        xmlFile = file(os.path.join(config.rootDir, "settings.xml"), "w")
        xmlFile.write(CleanupXml(xmlDoc))
        xmlFile.flush()
        xmlFile.close()      
    except:
        logFile.error("Settings :: Error removing from favorites", exc_info=True)
        try:
            xmlFile.close()
        except UnboundLocalError:
            pass    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -