]> code.delx.au - mediapc-tools/blob - mythcleanfiles
check-guide-data: ignore more channels
[mediapc-tools] / mythcleanfiles
1 #!/usr/bin/env python3
2
3 import os
4 import sys
5
6 import mythlib
7
8 def main():
9 config_xml = mythlib.get_config()
10 db_connection = mythlib.get_db_connection(config_xml)
11 recordings_dir = mythlib.get_recordings_dir(config_xml, db_connection)
12
13 basenames = set(fetch_all_basenames(db_connection))
14 orphan_filenames = list(find_orphan_filenames(recordings_dir, basenames))
15
16 if orphan_filenames:
17 print("# Orphaned files:")
18 print("\n".join("rm %s" % filename for filename in orphan_filenames))
19 print()
20
21 def fetch_all_basenames(db_connection):
22 with db_connection.cursor() as cursor:
23 cursor.execute("SELECT basename FROM recorded")
24 for row in cursor:
25 yield row[0]
26
27 def find_orphan_filenames(recordings_dir, basenames):
28 for filename in os.listdir(recordings_dir):
29 _, ext = os.path.splitext(filename)
30 if ext not in [".mpg", ".ts"]:
31 continue
32
33 if filename not in basenames:
34 yield "%s/%s" % (recordings_dir, filename)
35
36 if __name__ == "__main__":
37 main()