Example #1
0
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
Example #2
0
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
Example #3
0
    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
Example #5
0
    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