def fix_bibdoc_bibdoc(id_bibdoc1, id_bibdoc2, logfile): """ Migrate an icon. """ try: the_bibdoc = BibDoc.create_instance(id_bibdoc1) except Exception, err: msg = "WARNING: when opening docid %s: %s" % (id_bibdoc1, err) print >> logfile, msg print msg return True
def clean_documents(): """Delete all the bibdocs that have been set as deleted and have not been modified since CFG_DELETED_BIBDOC_MAXLIFE days. Returns the number of bibdocs involved.""" write_message("""CLEANING OF OBSOLETED DELETED DOCUMENTS STARTED""") write_message("select id from bibdoc where status='DELETED' and NOW()>ADDTIME(modification_date, '%s 0:0:0')" % CFG_DELETED_BIBDOC_MAXLIFE, verbose=9) records = run_sql("select id from bibdoc where status='DELETED' and NOW()>ADDTIME(modification_date, '%s 0:0:0')", (CFG_DELETED_BIBDOC_MAXLIFE,)) for record in records: bibdoc = BibDoc.create_instance(record[0]) bibdoc.expunge() write_message("DELETE FROM bibdoc WHERE id=%i" % int(record[0]), verbose=9) run_sql("DELETE FROM bibdoc WHERE id=%s", (record[0],)) write_message("""%s obsoleted deleted documents cleaned""" % len(records)) write_message("""CLEANING OF OBSOLETED DELETED DOCUMENTS FINISHED""") return len(records)
""" Migrate an icon. """ try: the_bibdoc = BibDoc.create_instance(id_bibdoc1) except Exception, err: msg = "WARNING: when opening docid %s: %s" % (id_bibdoc1, err) print >> logfile, msg print msg return True try: msg = "Fixing icon for the document %s" % (id_bibdoc1,) print msg, print >> logfile, msg, the_icon = BibDoc.create_instance(id_bibdoc2) for a_file in the_icon.list_latest_files(): the_bibdoc.add_icon(a_file.get_full_path(), format=a_file.get_format()) the_icon.delete() run_sql("DELETE FROM bibdoc_bibdoc WHERE id_bibdoc1=%s AND id_bibdoc2=%s", (id_bibdoc1, id_bibdoc2)) print "OK" print >> logfile, "OK" return True except Exception, err: print "ERROR: %s" % err print >> logfile, "ERROR: %s" % err register_exception() return False def main():
""" Migrate an icon. """ try: the_bibdoc = BibDoc.create_instance(id_bibdoc1) except Exception, err: msg = "WARNING: when opening docid %s: %s" % (id_bibdoc1, err) print >> logfile, msg print msg return True try: msg = "Fixing icon for the document %s" % (id_bibdoc1, ) print msg, print >> logfile, msg, the_icon = BibDoc.create_instance(id_bibdoc2) for a_file in the_icon.list_latest_files(): the_bibdoc.add_icon(a_file.get_full_path(), format=a_file.get_format()) the_icon.delete() run_sql("DELETE FROM bibdoc_bibdoc WHERE id_bibdoc1=%s AND id_bibdoc2=%s", (id_bibdoc1, id_bibdoc2)) print "OK" print >> logfile, "OK" return True except Exception, err: print "ERROR: %s" % err print >> logfile, "ERROR: %s" % err register_exception() return False def main(): """Core loop."""