diff options
author | dec05eba <dec05eba@protonmail.com> | 2021-06-15 09:28:35 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2021-06-15 09:28:46 +0200 |
commit | fee89c4afdde4dacee51a763bc4d931320a9d69d (patch) | |
tree | 66a0accb86934e76ad245d6e57dc4a3fb6cfd63f /open_media.py | |
parent | 3757fe80b30801119bda41ab0445e915271129fc (diff) |
Add all items starting at start-after to the download list in the data json file. This makes downloading more robust if title/url is changes for any item
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() |