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',))
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', ))
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', ))
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',))
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",))
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', ))
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',))