Add MySQL support #2
@ -27,6 +27,9 @@ from titles.ongeki.const import OngekiConstants
|
||||
|
||||
class AquaData:
|
||||
def __init__(self, aqua_db_path: str) -> None:
|
||||
if use_mysql:
|
||||
self.__engine = create_engine("mysql+pymysql://" + aqua_db_path, echo=False)
|
||||
else:
|
||||
self.__url = f"sqlite:///{aqua_db_path}"
|
||||
|
||||
self.__engine = create_engine(self.__url, pool_recycle=3600)
|
||||
@ -114,6 +117,9 @@ class Importer:
|
||||
coloredlogs.install(level="INFO", logger=self.logger, fmt=log_fmt_str)
|
||||
self.logger.initialized = True
|
||||
|
||||
if use_mysql:
|
||||
self.aqua = AquaData(aqua_folder)
|
||||
else:
|
||||
aqua_db_path = None
|
||||
if os.path.exists(aqua_folder):
|
||||
temp = os.path.join(aqua_folder, "db.sqlite")
|
||||
@ -164,6 +170,8 @@ class Importer:
|
||||
card_id: int,
|
||||
) -> Dict:
|
||||
row = row._asdict()
|
||||
|
||||
if use_mysql is False:
|
||||
for column in datetime_columns:
|
||||
ts = row[column["name"]]
|
||||
if ts is None:
|
||||
@ -704,16 +712,21 @@ def main():
|
||||
"--config", "-c", type=str, help="Config directory to use", default="config"
|
||||
)
|
||||
parser.add_argument(
|
||||
"aqua_folder_path",
|
||||
"aqua_data_path",
|
||||
type=str,
|
||||
help="Absolute folder path to AQUA /data folder, where db.sqlite is located in",
|
||||
help="Absolute folder path to AQUA /data folder, where db.sqlite is located in. You can also enter the Mysql database connection address (<user>:<password>@<host>:<port>/<database>)",
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
core_cfg = CoreConfig()
|
||||
core_cfg.update(yaml.safe_load(open(f"{args.config}/core.yaml")))
|
||||
|
||||
importer = Importer(core_cfg, args.config, args.aqua_folder_path)
|
||||
global use_mysql
|
||||
use_mysql = False
|
||||
if '@' in args.aqua_data_path:
|
||||
use_mysql = True
|
||||
|
||||
importer = Importer(core_cfg, args.config, args.aqua_data_path)
|
||||
|
||||
importer.import_chuni()
|
||||
importer.import_ongeki()
|
||||
|
Loading…
Reference in New Issue
Block a user