aboutsummaryrefslogtreecommitdiff
path: root/open_media.py
diff options
context:
space:
mode:
Diffstat (limited to 'open_media.py')
-rwxr-xr-xopen_media.py19
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()