#!/usr/bin/env python3 import os import sys import mythlib def main(): config_xml = mythlib.get_config() db_connection = mythlib.get_db_connection(config_xml) recordings_dir = mythlib.get_recordings_dir(config_xml, db_connection) basenames = set(fetch_all_basenames(db_connection)) orphan_filenames = list(find_orphan_filenames(recordings_dir, basenames)) if orphan_filenames: print("# Orphaned files:") print("\n".join("rm %s" % filename for filename in orphan_filenames)) print() def fetch_all_basenames(db_connection): with db_connection.cursor() as cursor: cursor.execute("SELECT basename FROM recorded") for row in cursor: yield row[0] def find_orphan_filenames(recordings_dir, basenames): for filename in os.listdir(recordings_dir): _, ext = os.path.splitext(filename) if ext not in [".mpg", ".ts"]: continue if filename not in basenames: yield "%s/%s" % (recordings_dir, filename) if __name__ == "__main__": main()