def getRecordingFilename(basename, dirname=None): nonAllowedCharacters = "/.\\:*?<>|\"" # Filter out non-allowed characters. basename = basename.replace("\xc2\x86", "").replace( "\xc2\x87", "") if PY2 else basename.replace("\x86", "").replace( "\x87", "") filename = "" for character in basename: if character in nonAllowedCharacters or ord(character) < 32: character = "_" filename += character # Max filename length for ext4 is 255 (minus 8 characters for .ts.meta) # but must not truncate in the middle of a multi-byte utf8 character! # So convert the truncation to unicode and back, ignoring errors, the # result will be valid utf8 and so xml parsing will be OK. filename = unicode(filename[:247], "UTF8", "ignore").encode( "UTF8", "ignore") if PY2 else filename[:247] if dirname is None: dirname = defaultRecordingLocation() else: if not dirname.startswith(sep): dirname = pathjoin(defaultRecordingLocation(), dirname) filename = pathjoin(dirname, filename) next = 0 path = filename while isfile("%s.ts" % path): next += 1 path = "%s_%03d" % (filename, next) return path
def getRecordingFilename(basename, dirname=None): # Filter out non-allowed characters. non_allowed_characters = "/.\\:*?<>|\"" basename = basename.replace("\xc2\x86", "").replace( "\xc2\x87", "") if PY2 else basename.replace("\x86", "").replace( "\x87", "") filename = "" for c in basename: if c in non_allowed_characters or ord(c) < 32: c = "_" filename += c # Max filename length for ext4 is 255 (minus 8 characters for .ts.meta) # but must not truncate in the middle of a multi-byte utf8 character! # So convert the truncation to unicode and back, ignoring errors, the # result will be valid utf8 and so xml parsing will be OK. filename = unicode(filename[:247], "utf8", "ignore").encode( "utf8", "ignore") if PY2 else filename[:247] if dirname is not None: if not dirname.startswith("/"): dirname = pathjoin(defaultRecordingLocation(), dirname) else: dirname = defaultRecordingLocation() filename = pathjoin(dirname, filename) path = filename i = 1 while True: if not isfile(path + ".ts"): return path path = "%s_%03d" % (filename, i) i += 1
def generate_playlist(self, path): media_list = [ os.path.join(root, i) for root, dirs, files in os.walk(path) for i in files if self.is_video_file(i) ] url = "http://%s:%d/" % (get_ip_addr(), get_port()) length = len(path) f = StringIO() f.write("#EXTM3U\n") for track in media_list: basename = os.path.basename(track) basename = basename.replace('-', ' ').replace( ',', ' ') if basename else basename track = track[length + 1:] track = url + quote(track) f.write("#EXTINF" + ":-1" + "," + basename + "\n" + track + "\n") length = f.tell() f.seek(0) self.send_response(200) encoding = sys.getfilesystemencoding() self.send_header("Content-type", "application/mpegurl; charset=%s" % encoding) self.send_header("Content-Length", str(length)) self.end_headers() return f
def get_flash_code_1(basename, path): code = \ '\t\t[Embed(source = "<SPRPATH>")] public static const <SPRVARNAMECAPS>:Class;\n' + \ '\t\t[Embed(source = "<XMLPATH>", mimeType = "application/octet-stream")] public static const <SPRVARNAMECAPS>_XML:Class;\n' + \ '\t\tpublic static var <SPRVARNAME>:SpriteData;\n' path = path[:-6] sprpath = "sprites/" + path.replace(flash_spr_path,"") + ".png" xmlpath = sprpath[:-4] + ".xml" code = code.replace("<SPRPATH>",sprpath) code = code.replace("<XMLPATH>",xmlpath) code = code.replace("<SPRVARNAME>",basename.replace("spr_","")) code = code.replace("<SPRVARNAMECAPS>",basename.upper()) return code
def generate_playlist(self, path) : media_list = [join(root, i) for root, dirs, files in os.walk(path) for i in files if self.is_video_file(i)] url = f"http://{self.host}:{self.port}/" length = len(path) f = StringIO() f.write("#EXTM3U\n") for track in media_list: basename = track[length+1:] basename = basename.replace('-', ' ').replace(',', ' ') track = track[length+1:] track = url + quote(track) f.write("#EXTINF" + ":-1" + "," + basename + "\n" + track + "\n") length = f.tell() f.seek(0) self.send_response(200) encoding = sys.getfilesystemencoding() self.send_header("Content-type", f"application/mpegurl; charset={encoding}") self.send_header("Content-Length", str(length)) self.end_headers() return f
def get_flash_code_2(basename): code = "\t\t\t<VAL> = new SpriteData(SPR_PLAYER_IDLE_XML, <SPR>);" code = code.replace("SPR_PLAYER_IDLE",basename.upper()) code = code.replace("<SPR>",basename.upper()) code = code.replace("<VAL>","Sprites." + basename.replace("spr_","")) return code