29 lines
732 B
Python
29 lines
732 B
Python
from sqlalchemy.orm import sessionmaker
|
|
import db
|
|
import json
|
|
import argparse
|
|
import logging
|
|
|
|
parser = argparse.ArgumentParser(description='Import recipes into database')
|
|
parser.add_argument('file', type=str,
|
|
help='JSON file with recipe site information')
|
|
parser.add_argument('-v', '--verbose', action='store_true')
|
|
|
|
|
|
args = parser.parse_args()
|
|
if args.verbose:
|
|
logging.basicConfig(level=logging.INFO)
|
|
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
|
|
|
|
with open(args.file) as f:
|
|
sites = json.load(f)
|
|
|
|
eng = db.get_engine()
|
|
S = sessionmaker(eng)
|
|
|
|
with S.begin() as session:
|
|
for site in sites:
|
|
logging.info(f"Adding {site}")
|
|
session.add(db.RecipeSite(**site))
|
|
|
|
|