Пример #1
0
def _add_to_tag_cache(result, dirs, files, media_dir):
    base_path = media_dir.encode('utf-8')

    for path, (entry_dirs, entry_files) in dirs.items():
        try:
            text_path = path.decode('utf-8')
        except UnicodeDecodeError:
            text_path = urllib.quote(path).decode('utf-8')
        name = os.path.split(text_path)[1]
        result.append(('directory', text_path))
        result.append(('mtime', get_mtime(os.path.join(base_path, path))))
        result.append(('begin', name))
        _add_to_tag_cache(result, entry_dirs, entry_files, media_dir)
        result.append(('end', name))

    result.append(('songList begin',))

    for track in files:
        track_result = dict(track_to_mpd_format(track))

        # XXX Don't save comments to the tag cache as they may span multiple
        # lines. We'll start saving track comments when we move from tag_cache
        # to a JSON file. See #579 for details.
        if 'Comment' in track_result:
            del track_result['Comment']

        path = uri_to_path(track_result['file'])
        try:
            text_path = path.decode('utf-8')
        except UnicodeDecodeError:
            text_path = urllib.quote(path).decode('utf-8')
        relative_path = os.path.relpath(path, base_path)
        relative_uri = urllib.quote(relative_path)

        # TODO: use track.last_modified
        track_result['file'] = relative_uri
        track_result['mtime'] = get_mtime(path)
        track_result['key'] = os.path.basename(text_path)
        track_result = order_mpd_track_info(track_result.items())

        result.extend(track_result)

    result.append(('songList end',))
Пример #2
0
def _add_to_tag_cache(result, dirs, files, media_dir):
    base_path = media_dir.encode('utf-8')

    for path, (entry_dirs, entry_files) in dirs.items():
        try:
            text_path = path.decode('utf-8')
        except UnicodeDecodeError:
            text_path = urllib.quote(path).decode('utf-8')
        name = os.path.split(text_path)[1]
        result.append(('directory', text_path))
        result.append(('mtime', get_mtime(os.path.join(base_path, path))))
        result.append(('begin', name))
        _add_to_tag_cache(result, entry_dirs, entry_files, media_dir)
        result.append(('end', name))

    result.append(('songList begin', ))

    for track in files:
        track_result = dict(track_to_mpd_format(track))

        # XXX Don't save comments to the tag cache as they may span multiple
        # lines. We'll start saving track comments when we move from tag_cache
        # to a JSON file. See #579 for details.
        if 'Comment' in track_result:
            del track_result['Comment']

        path = uri_to_path(track_result['file'])
        try:
            text_path = path.decode('utf-8')
        except UnicodeDecodeError:
            text_path = urllib.quote(path).decode('utf-8')
        relative_path = os.path.relpath(path, base_path)
        relative_uri = urllib.quote(relative_path)

        # TODO: use track.last_modified
        track_result['file'] = relative_uri
        track_result['mtime'] = get_mtime(path)
        track_result['key'] = os.path.basename(text_path)
        track_result = order_mpd_track_info(track_result.items())

        result.extend(track_result)

    result.append(('songList end', ))
Пример #3
0
def _add_to_tag_cache(result, folders, files):
    music_folder = settings.LOCAL_MUSIC_PATH
    regexp = '^' + re.escape(music_folder).rstrip('/') + '/?'

    for path, entry in folders.items():
        name = os.path.split(path)[1]
        mtime = get_mtime(os.path.join(music_folder, path))
        result.append(('directory', path))
        result.append(('mtime', mtime))
        result.append(('begin', name))
        _add_to_tag_cache(result, *entry)
        result.append(('end', name))

    result.append(('songList begin', ))
    for track in files:
        track_result = dict(track_to_mpd_format(track))
        path = uri_to_path(track_result['file'])
        track_result['mtime'] = get_mtime(path)
        track_result['file'] = re.sub(regexp, '', path)
        track_result['key'] = os.path.basename(track_result['file'])
        track_result = order_mpd_track_info(track_result.items())
        result.extend(track_result)
    result.append(('songList end', ))
Пример #4
0
def _add_to_tag_cache(result, folders, files):
    music_folder = settings.LOCAL_MUSIC_PATH
    regexp = '^' + re.escape(music_folder).rstrip('/') + '/?'

    for path, entry in folders.items():
        name = os.path.split(path)[1]
        mtime = get_mtime(os.path.join(music_folder, path))
        result.append(('directory', path))
        result.append(('mtime', mtime))
        result.append(('begin', name))
        _add_to_tag_cache(result, *entry)
        result.append(('end', name))

    result.append(('songList begin',))
    for track in files:
        track_result = dict(track_to_mpd_format(track))
        path = uri_to_path(track_result['file'])
        track_result['mtime'] = get_mtime(path)
        track_result['file'] = re.sub(regexp, '', path)
        track_result['key'] = os.path.basename(track_result['file'])
        track_result = order_mpd_track_info(track_result.items())
        result.extend(track_result)
    result.append(('songList end',))
Пример #5
0
def _add_to_tag_cache(result, folders, files):
    base_path = settings.LOCAL_MUSIC_PATH.encode("utf-8")

    for path, entry in folders.items():
        try:
            text_path = path.decode("utf-8")
        except UnicodeDecodeError:
            text_path = urllib.quote(path).decode("utf-8")
        name = os.path.split(text_path)[1]
        result.append(("directory", text_path))
        result.append(("mtime", get_mtime(os.path.join(base_path, path))))
        result.append(("begin", name))
        _add_to_tag_cache(result, *entry)
        result.append(("end", name))

    result.append(("songList begin",))

    for track in files:
        track_result = dict(track_to_mpd_format(track))

        path = uri_to_path(track_result["file"])
        try:
            text_path = path.decode("utf-8")
        except UnicodeDecodeError:
            text_path = urllib.quote(path).decode("utf-8")
        relative_path = os.path.relpath(path, base_path)
        relative_uri = urllib.quote(relative_path)

        track_result["file"] = relative_uri
        track_result["mtime"] = get_mtime(path)
        track_result["key"] = os.path.basename(text_path)
        track_result = order_mpd_track_info(track_result.items())

        result.extend(track_result)

    result.append(("songList end",))
Пример #6
0
def _add_to_tag_cache(result, dirs, files, media_dir):
    base_path = media_dir.encode('utf-8')

    for path, (entry_dirs, entry_files) in dirs.items():
        try:
            text_path = path.decode('utf-8')
        except UnicodeDecodeError:
            text_path = urllib.quote(path).decode('utf-8')
        name = os.path.split(text_path)[1]
        result.append(('directory', text_path))
        result.append(('mtime', get_mtime(os.path.join(base_path, path))))
        result.append(('begin', name))
        _add_to_tag_cache(result, entry_dirs, entry_files, media_dir)
        result.append(('end', name))

    result.append(('songList begin', ))

    for track in files:
        track_result = dict(track_to_mpd_format(track))

        path = uri_to_path(track_result['file'])
        try:
            text_path = path.decode('utf-8')
        except UnicodeDecodeError:
            text_path = urllib.quote(path).decode('utf-8')
        relative_path = os.path.relpath(path, base_path)
        relative_uri = urllib.quote(relative_path)

        track_result['file'] = relative_uri
        track_result['mtime'] = get_mtime(path)
        track_result['key'] = os.path.basename(text_path)
        track_result = order_mpd_track_info(track_result.items())

        result.extend(track_result)

    result.append(('songList end', ))
Пример #7
0
def _add_to_tag_cache(result, folders, files):
    base_path = settings.LOCAL_MUSIC_PATH.encode('utf-8')

    for path, entry in folders.items():
        try:
            text_path = path.decode('utf-8')
        except UnicodeDecodeError:
            text_path = urllib.quote(path).decode('utf-8')
        name = os.path.split(text_path)[1]
        result.append(('directory', text_path))
        result.append(('mtime', get_mtime(os.path.join(base_path, path))))
        result.append(('begin', name))
        _add_to_tag_cache(result, *entry)
        result.append(('end', name))

    result.append(('songList begin',))

    for track in files:
        track_result = dict(track_to_mpd_format(track))

        path = uri_to_path(track_result['file'])
        try:
            text_path = path.decode('utf-8')
        except UnicodeDecodeError:
            text_path = urllib.quote(path).decode('utf-8')
        relative_path = os.path.relpath(path, base_path)
        relative_uri = urllib.quote(relative_path)

        track_result['file'] = relative_uri
        track_result['mtime'] = get_mtime(path)
        track_result['key'] = os.path.basename(text_path)
        track_result = order_mpd_track_info(track_result.items())

        result.extend(track_result)

    result.append(('songList end',))