-
Notifications
You must be signed in to change notification settings - Fork 87
/
Copy pathclean_uploaded_pdfs.py
33 lines (26 loc) · 1 KB
/
clean_uploaded_pdfs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import logging
from datetime import datetime, timedelta
import robotreviewer
import sqlite3
LOCAL_PATH = "robotreviewer/uploads"
logging.basicConfig(level=logging.INFO, format='[%(levelname)s] %(name)s %(asctime)s: %(message)s')
log = logging.getLogger(__name__)
def cleanup_database(days=1):
"""
remove any PDFs which have been here for more than
1 day, then compact the database
"""
log.info('Cleaning up database with uploaded_pdfs')
conn = sqlite3.connect(robotreviewer.get_data('uploaded_pdfs/uploaded_pdfs.sqlite'),
detect_types=sqlite3.PARSE_DECLTYPES)
d = datetime.now() - timedelta(days=days)
c = conn.cursor()
c.execute("DELETE FROM article WHERE timestamp < datetime(?) AND dont_delete=0", [d])
conn.commit()
# conn.execute("VACUUM") # make the database smaller again
# conn.commit()
conn.close()
if __name__ == "__main__":
log.info("Running clean-up task")
cleanup_database(days=1)
log.info("Clean-up task complete")