42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
独立命令行导入脚本。
|
||
|
||
用法:
|
||
python run_import.py # 增量导入(MERGE,不删除现有数据)
|
||
python run_import.py --clear # 清空图谱后全量重新导入
|
||
python run_import.py ldj # 仅导入鹿鼎记
|
||
python run_import.py dtslz tlbb --clear # 清空后导入指定小说
|
||
"""
|
||
|
||
import sys
|
||
from dotenv import load_dotenv
|
||
from graph_query import get_driver
|
||
from graph_builder import build_all_graphs, SUPPORTED_NOVELS
|
||
|
||
load_dotenv()
|
||
|
||
|
||
def main():
|
||
clear = "--clear" in sys.argv
|
||
novels = [arg for arg in sys.argv[1:] if not arg.startswith("--")]
|
||
selected = novels or list(SUPPORTED_NOVELS)
|
||
|
||
print("Connecting to Neo4j...")
|
||
driver = get_driver()
|
||
driver.verify_connectivity()
|
||
print("Connected.\n")
|
||
|
||
build_all_graphs(driver, novels=selected, clear=clear)
|
||
|
||
print("\nGraph stats:")
|
||
from graph_query import get_graph_stats
|
||
for k, v in get_graph_stats().items():
|
||
print(f" {k}: {v}")
|
||
|
||
driver.close()
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|