#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ TODO * Delete cookie if session does not match * Delete entry/tag/jid combination row upon removal of a tag. """ import argparse from blasta.config import Share from blasta.http.instance import HttpInstance from blasta.database.sqlite import DatabaseSQLite import json import logging import os from os.path import getsize, exists import sys import time from typing import Optional import urllib.parse import uvicorn import webbrowser try: import tomllib except: import tomli as tomllib def main(): directory_data = Share.get_directory() db_file = os.path.join(directory_data, 'main.sqlite') if not exists(db_file) or not getsize(db_file): DatabaseSQLite.instantiate_database(db_file) accounts = {} sessions = {} http_instance = HttpInstance(accounts, sessions) return http_instance.app app = main() if __name__ == 'blasta.__main__': parser = argparse.ArgumentParser( prog='blasta', description='Blasta - A collaborative annotation system.', usage='%(prog)s [OPTION]...') parser.add_argument('-v', '--version', help='print version', action='version', version='0.1') parser.add_argument('-p', '--port', help='port number', dest='port') parser.add_argument('-o', '--open', help='open an html browser', action='store_const', const=True, dest='open') args = parser.parse_args() port = args.port or 8000 uvicorn.run(app, host='localhost', port=port) if args.open: # TODO Check first time webbrowser.open('http://localhost:{}/help/about'.format(port)) webbrowser.open_new_tab('http://localhost:{}'.format(port))