Blasta/blasta/__main__.py
Schimon Jehudah, Adv. 24dbadf7dc Fix various of errors, consequent to the restructuring of the code;
Add missing dependencies and files;
Thank you to LeXofLeviafan and roughnecks.
2024-11-17 14:00:31 +02:00

64 lines
1.7 KiB
Python

#!/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))