def Test(): Logger.CreateLogger("c:\\temp\\test.log", "HTML EntityHelper Test", 0, False) chars = { "&": "&", "'": "'", "d": "d", ">": ">", "'": "'", "'": "'", "'": "'", """: '"' } for char in chars: val = HtmlEntityHelper.ConvertHTMLEntities(char) print "%-7s: %s -> %s - %s" % (val == chars[char], char, val, chars[char])
def RunPlugin(): """ Runs Retrospect as a Video Add-On """ logFile = None try: from config import Config from helpers.sessionhelper import SessionHelper # get a logger up and running from logger import Logger # only append if there are no active sessions if not SessionHelper.IsSessionActive(): # first call in the session, so do not append the log appendLogFile = False else: appendLogFile = True logFile = Logger.CreateLogger(os.path.join(Config.profileDir, Config.logFileNameAddon), Config.appName, append=appendLogFile, dualLogger=lambda x, y=4: xbmc.log(x, y)) from urihandler import UriHandler from addonsettings import AddonSettings from textures import TextureHandler # update the loglevel Logger.Instance().minLogLevel = AddonSettings.GetLogLevel() useCaching = AddonSettings.CacheHttpResponses() cacheDir = None if useCaching: cacheDir = Config.cacheDir # determine the platform from envcontroller import EnvController from environments import Environments maxFileNameLength = None if EnvController.IsPlatform(Environments.Xbox): maxFileNameLength = 42 ignoreSslErrors = AddonSettings.IgnoreSslErrors() UriHandler.CreateUriHandler(cacheDir=cacheDir, maxFileNameLength=maxFileNameLength, cookieJar=os.path.join( Config.profileDir, "cookiejar.dat"), ignoreSslErrors=ignoreSslErrors) # start texture handler TextureHandler.SetTextureHandler(Config, Logger.Instance(), UriHandler.Instance()) # run the plugin import plugin plugin.Plugin(sys.argv[0], sys.argv[2], sys.argv[1]) # close the log to prevent locking on next call Logger.Instance().CloseLog() logFile = None # make sure we leave no references behind AddonSettings.ClearCachedAddonSettingsObject() except: if logFile: logFile.Critical("Error running plugin", exc_info=True) raise
continue return value.strip('.') def ReadString(self, length): # print "from: %s to %s" % (self.__pointer, self.__pointer + length) val = self.__byteString[self.__pointer:self.__pointer + length] #print "Value %r" % (val, ) self.__pointer += length return val def __ByteToInt(self, byteString): return int(byteString.encode('hex'), 16) if __name__ == "__main__": logger = Logger.CreateLogger("c:\\temp\\www.log", "UriHandler Test", 0) # noinspection PyUnusedLocal def CallBack(retrievedsizeMB, totalsizeMB, perc, completed, status): """ @param retrievedsizeMB: @param totalsizeMB: @param perc: @param completed: @param status: """ print "%s - %s %s %s" % (status, totalsizeMB, retrievedsizeMB, perc) #if perc > 2: # return True return False
title8: [1,2,3,4,"test"], "title12": 2 } }} """ testData = """ { image: "http:\/\/assets.ur.se\/id\/170804\/images\/1_l.jpg",file_flash: "se\/170000-170999\/170804-25.mp4",file_mobile: "se\/170000-170999\/170804-24.mp4",file_html5: "ondemand\/_definst_\/mp4:se\/170000-170999\/170804-51.mp4\/",subtitles: "http:\/\/undertexter.ur.se\/170000-170999\/170804-11.tt,http:\/\/undertexter.ur.se\/170000-170999\/170804-13.tt,http:\/\/undertexter.ur.se\/170000-170999\/170804-36.tt,http:\/\/undertexter.ur.se\/170000-170999\/170804-21.tt,http:\/\/undertexter.ur.se\/170000-170999\/170804-41.tt",subtitle_labels: "Svenska,Svenska (\u00f6vers\u00e4ttning),Danska,Engelska,Kineska (mandarin)",subtitle_default: "Svenska",streaming_config: {"rtmp":{"application":"ondemand"},"http_streaming":{"hls_file":"playlist.m3u8","hds_file":"manifest.f4m","smooth_file":"Manifest"},"tt_subtitles":{"base_uri":"http:\/\/undertexter.ur.se\/"},"loadbalancer":"http:\/\/130.242.59.74\/loadbalancer.json","streamer":{"geoip_country_code":"SE","redirect":"130.242.59.75"}},skin: '/design/ur_play/javascript/urplayer/urplayer.zip',width: '100%',height: '100%',} """ testData = 'jQuery18303627530449324564_1370950605750({"success":true,"stream":"http:\/\/livestreams.omroep.nl\/live\/npo\/tvlive\/ned1\/ned1.isml\/ned1.m3u8?hash=fcec95fb63b4a0265c5bd6626bb46732&type=jsonp&protection=url"});' # testData = 'jQuery18303627530449324564' # print testData print "Load time: %s\n-----------------------------------------------------------" % (end - start,) lg = Logger.CreateLogger("c:\\temp\\json.log", "Json Unittest", 0) lg.Debug("test") start = datetime.datetime.now() wrapper = JsonHelper(testData, lg) if False: cProfile.run('wrapper.GetJsonData()', sort='time') else: print wrapper.GetValue() try: query = ("programsWithTemperatures", 1, "program", "description") print wrapper.GetValue(*query) print wrapper.GetValue('episodes', 0) print wrapper.GetValue("programsWithTemperatures", 1, "program", "firstPlayableEpisodeVideoId") print wrapper.GetValue("widget", "window", "title1") print wrapper.GetValue("widget", "window", "title6")