Talk:Find orphans.py

From MythTV Official Wiki
Jump to: navigation, search

patch to make it work for me (Hugh)

This script didn't quite work for me with MythTV 0.24 + fixes as produced by MythBuntu on Ubuntu 10.04 LTS on 2012 July 1.

When directed to "Delete orphaned recording entries", it would delete a few, catch an exception, and stop.

To fix the problem, I copied the exception handling code into the for-each-recording-to-be-deleted loop so that a failure to delete one recording would not prevent subsequent deletions.

Not only did this work, it seemed to not print any diagnostics. I'm not sure why. It could be that there were only a few recordings that caused the exception and that I had already powered through them by the time I ran the modified script.

$ diff -u bin/find_orphans.py bin/find_orphans.fudged.py
--- bin/find_orphans.py 2012-07-01 17:37:34.000000000 -0400
+++ bin/find_orphans.fudged.py  2012-07-01 19:52:42.000000000 -0400
@@ -126,7 +126,13 @@
         while True:
             if res == 'yes':
                 for rec in recs:
-                    rec.delete(True, True)
+                    try:
+                        rec.delete(True, True)
+                    except MythError:
+                        name = u'{0.hostname}: {0.title}'.format(rec)
+                        if rec.subtitle:
+                            name += ' - '+rec.subtitle
+                        print "Ignoring: Failed to delete '" + name + "'"
                 break
             elif res == 'no':
                 break

Doesn't handle TB sized files/totals

Had to add 'TB' to the list of units on line 15 otherwise it complained about out-of-range:

return str(round(s,1))+('B ','KB','MB','GB','TB')[o]