#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import os import time import stat import datetime from gluon.utils import md5_hash from gluon.restricted import RestrictedError, TicketStorage from gluon import DAL SLEEP_MINUTES = 5 errors_path = os.path.join(request.folder, 'errors') try: db_string = open(os.path.join(request.folder, 'private', 'ticket_storage.txt')).read().replace('\r', '').replace('\n', '').strip() except: db_string = 'sqlite://storage.db' db_path = os.path.join(request.folder, 'databases') tk_db = DAL(db_string, folder=db_path, auto_import=True) ts = TicketStorage(db=tk_db) tk_table = ts._get_table( db=tk_db, tablename=ts.tablename, app=request.application) hashes = {} while 1: if request.tickets_db: print("You're storing tickets yet in database") sys.exit(1) for file in os.listdir(errors_path): filename = os.path.join(errors_path, file) modified_time = os.stat(filename)[stat.ST_MTIME] modified_time = datetime.datetime.fromtimestamp(modified_time) ticket_id = file ticket_data = open(filename).read() tk_table.insert(ticket_id=ticket_id, ticket_data=ticket_data, created_datetime=modified_time ) tk_db.commit() os.unlink(filename) time.sleep(SLEEP_MINUTES * 60)