Overhaul logging and do database creation
* print_log() now accepts a True/False to decide if a message should be printed * Pass the config['DEBUG'] boolean to some of the print_log statements * Add timestamps to log messages * Change the source levels on some log messages to something more fitting * Add a time_only option to the date/time string generator (Not sure why I even kept the old option but meh) * Implement a "better than nothing" database-creation sequence
This commit is contained in:
		
							parent
							
								
									09e5769373
								
							
						
					
					
						commit
						e798886b7d
					
				|  | @ -1,18 +1,30 @@ | ||||||
| from datetime import datetime | from datetime import datetime | ||||||
| import time | import time | ||||||
| 
 | 
 | ||||||
| # TODO: I dunno, but there's gotta be a better way to do this crap | # TODO: I dunno, but there's gotta be a better way to do this crap. This is way too messy | ||||||
| def print_log(source, message): |  | ||||||
|   if source == "Main": |  | ||||||
|     print('\033[92m' + source + ': \033[0m' + message) |  | ||||||
|   elif source == "Notice": |  | ||||||
|     print('\033[93m' + source + ': \033[0m' + message) |  | ||||||
|   elif source == "Warning": |  | ||||||
|     print('\033[91m' + source + ': \033[0m' + message) |  | ||||||
|   elif source == "Web": |  | ||||||
|     print('\033[95m' + source + ': \033[0m' + message) |  | ||||||
|   else: |  | ||||||
|     print('\033[94m' + source + ': \033[0m' + message) |  | ||||||
| 
 | 
 | ||||||
| def time_to_string(unixtime): | # Some messages pass a True or False as should_print depending on config variables | ||||||
|   return datetime.fromtimestamp(unixtime).strftime('%B %d, %Y (%H:%M - ' + time.tzname[time.daylight] + ')') | # Default to true, but return doing nothing if they pass a False. | ||||||
|  | def print_log(source, message, should_print=True): | ||||||
|  |   if should_print == False: | ||||||
|  |     return | ||||||
|  | 
 | ||||||
|  |   if source == "Main": | ||||||
|  |     print('\033[92m', current_time(), source.center(8, '-'), ': \033[0m', message) | ||||||
|  |   elif source == "Notice": | ||||||
|  |     print('\033[93m', current_time(), source.center(8, '-'), ': \033[0m', message) | ||||||
|  |   elif source == "Warning": | ||||||
|  |     print('\033[91m', current_time(), source.center(8, '-'), ': \033[0m', message) | ||||||
|  |   elif source == "Web": | ||||||
|  |     print('\033[95m', current_time(), source.center(8, '-'), ': \033[0m', message) | ||||||
|  |   else: | ||||||
|  |     print('\033[94m', current_time(), source.center(8, '-'), ': \033[0m', message) | ||||||
|  | 
 | ||||||
|  | def current_time(): | ||||||
|  |   return time_to_string(time.time(), True) | ||||||
|  | 
 | ||||||
|  | def time_to_string(unixtime, time_only = False): | ||||||
|  |   if time_only: | ||||||
|  |     return datetime.fromtimestamp(unixtime).strftime('[%H:%M:%S - ' + time.tzname[time.daylight] + ']') | ||||||
|  |   else: | ||||||
|  |     return datetime.fromtimestamp(unixtime).strftime('%B %d, %Y (%H:%M:%S - ' + time.tzname[time.daylight] + ')') | ||||||
|  |  | ||||||
							
								
								
									
										22
									
								
								run.py
								
								
								
								
							
							
						
						
									
										22
									
								
								run.py
								
								
								
								
							|  | @ -24,12 +24,21 @@ app = Flask(__name__) | ||||||
| print_log('Main', 'Running in "' + os.getcwd() + '"') | print_log('Main', 'Running in "' + os.getcwd() + '"') | ||||||
| print_log('Main', 'Checking for data folder') | print_log('Main', 'Checking for data folder') | ||||||
| if not os.path.exists(config['UPLOAD_FOLDER']): | if not os.path.exists(config['UPLOAD_FOLDER']): | ||||||
|   print_log('Main', 'Data folder not found, creating') |   print_log('Warning', 'Data folder not found, creating') | ||||||
|   os.makedirs(config['UPLOAD_FOLDER']) |   os.makedirs(config['UPLOAD_FOLDER']) | ||||||
|  | if not os.path.exists('files.db'): | ||||||
|  |   print_log('Warning', 'Database not found, attempting to create') | ||||||
|  |   os.system('sqlite3 files.db < schema.sql') | ||||||
|  |   if not os.path.exists('files.db'): | ||||||
|  |     print_log('Warning', 'Could not create database. Is sqlite3 available?') | ||||||
|  |     quit() | ||||||
|  |   else: | ||||||
|  |     print_log('Notice', 'Database created') | ||||||
| if config["EXTENDED_DEBUG"] == False: | if config["EXTENDED_DEBUG"] == False: | ||||||
|   log = logging.getLogger('werkzeug') |   log = logging.getLogger('werkzeug') | ||||||
|   log.setLevel(logging.ERROR) |   log.setLevel(logging.ERROR) | ||||||
| 
 | 
 | ||||||
|  | print_debug = config["DEBUG"] | ||||||
| 
 | 
 | ||||||
| def cleaner_thread(): | def cleaner_thread(): | ||||||
|   # Call itself again after the interval |   # Call itself again after the interval | ||||||
|  | @ -42,11 +51,11 @@ def cleaner_thread(): | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def delete_old(): | def delete_old(): | ||||||
|   print_log('Notice', 'Cleaner running') |   print_log('Thread', 'Cleaner running', print_debug) | ||||||
|   targetTime = time.time() - config["TIME"] |   targetTime = time.time() - config["TIME"] | ||||||
|   old = db.get_old_files(targetTime) |   old = db.get_old_files(targetTime) | ||||||
|   for file in old: |   for file in old: | ||||||
|     print_log('Notice', 'Removing old file "' + file["file"] + '"') |     print_log('Thread', 'Removing old file "' + file["file"] + '"') | ||||||
|     try: |     try: | ||||||
|       os.remove(os.path.join(config["UPLOAD_FOLDER"], file["file"])) |       os.remove(os.path.join(config["UPLOAD_FOLDER"], file["file"])) | ||||||
|     except Exception: |     except Exception: | ||||||
|  | @ -71,7 +80,7 @@ def allowed_file(filename): | ||||||
| @app.route('/', methods=['GET', 'POST']) | @app.route('/', methods=['GET', 'POST']) | ||||||
| def upload_file(): | def upload_file(): | ||||||
|   if request.method == 'POST': |   if request.method == 'POST': | ||||||
|     print_log('Web', 'New file received') |     print_log('Main', 'New file received', print_debug) | ||||||
|     if not application.basicauth(request.headers.get('X-Hyozan-Auth'), config["KEY"]): |     if not application.basicauth(request.headers.get('X-Hyozan-Auth'), config["KEY"]): | ||||||
|       abort(403) |       abort(403) | ||||||
|     data = dict() |     data = dict() | ||||||
|  | @ -85,7 +94,7 @@ def upload_file(): | ||||||
| 
 | 
 | ||||||
|       thread1 = Thread(target = db.add_file, args = (filename,)) |       thread1 = Thread(target = db.add_file, args = (filename,)) | ||||||
|       thread1.start() |       thread1.start() | ||||||
|       print_log('Thread', 'Adding to DB') |       print_log('Thread', 'Adding file to DB', print_debug) | ||||||
|       file.save(os.path.join(config['UPLOAD_FOLDER'], filename)) |       file.save(os.path.join(config['UPLOAD_FOLDER'], filename)) | ||||||
|       thread1.join() |       thread1.join() | ||||||
| 
 | 
 | ||||||
|  | @ -104,6 +113,7 @@ def upload_file(): | ||||||
| 
 | 
 | ||||||
|   # Return Web UI if we have a GET request |   # Return Web UI if we have a GET request | ||||||
|   elif request.method == 'GET': |   elif request.method == 'GET': | ||||||
|  |     print_log('Web', 'Hit upload page') | ||||||
|     return render_template('upload.html', page=config["SITE_DATA"]) |     return render_template('upload.html', page=config["SITE_DATA"]) | ||||||
| 
 | 
 | ||||||
| # Def all the static pages | # Def all the static pages | ||||||
|  | @ -149,7 +159,7 @@ def no_permission(e): | ||||||
| 
 | 
 | ||||||
| @app.route('/<filename>', methods=['GET']) | @app.route('/<filename>', methods=['GET']) | ||||||
| def get_file(filename): | def get_file(filename): | ||||||
|   print_log('Web', 'Hit "' + filename + '" - ' + time_to_string(time.time())) |   print_log('Web', 'Hit "' + filename + '"') | ||||||
|   try: |   try: | ||||||
|     db.update_file(filename) |     db.update_file(filename) | ||||||
|   except Exception: |   except Exception: | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue