diff options
Diffstat (limited to 'open_media.py')
-rwxr-xr-x | open_media.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/open_media.py b/open_media.py index ded438e..b165d74 100755 --- a/open_media.py +++ b/open_media.py @@ -36,6 +36,14 @@ def get_downloaded_list(): print("Failed to list downloaded items, error: {}".format(stderr)) return [] +def get_files_in_download_dir(download_dir): + files_in_media_path = [] + for filename in os.listdir(download_dir): + full_path = os.path.join(download_dir, filename) + if not os.path.exists(os.path.join(full_path, ".in_progress")) and (os.path.isfile(full_path) or (os.path.isdir(full_path) and os.path.exists(os.path.join(full_path, ".finished")))): + files_in_media_path.append(full_path) + return files_in_media_path + def main(): if len(sys.argv) < 2: print("usage: open_media.py <download_dir>") @@ -47,13 +55,14 @@ def main(): print("No such directory: " % (download_dir)) exit(2) + files_in_media_path = get_files_in_download_dir(download_dir) + downloaded_list = get_downloaded_list() filtered_downloaded_list = [] for item in downloaded_list: media_path = os.path.join(download_dir, item) - if os.path.exists(media_path) and not os.path.exists(os.path.join(media_path, ".in_progress")) and (os.path.isfile(media_path) or (os.path.isdir(media_path) and os.path.exists(os.path.join(media_path, ".finished")))): + if media_path in files_in_media_path: filtered_downloaded_list.append(item) - downloaded_list = filtered_downloaded_list seen_filepath = os.path.expanduser("~/.config/automedia/seen") seen_list = [] @@ -64,11 +73,11 @@ def main(): print("Failed to open {}, reason: {}".format(seen_filepath, str(e))) for seen in seen_list: - for i, downloaded in enumerate(downloaded_list): + for i, downloaded in enumerate(filtered_downloaded_list): if seen == downloaded: - downloaded_list[i] = "✓ {}".format(downloaded) + filtered_downloaded_list[i] = "✓ {}".format(downloaded) - selected_media = run_dmenu("\n".join(downloaded_list[::-1])) + selected_media = run_dmenu("\n".join(filtered_downloaded_list[::-1])) if not selected_media: exit(0) selected_media = selected_media.decode().replace("✓ ", "").rstrip() |