| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | """Main application"""from datetime import datetime, timedelta, timezonefrom sqlalchemy import or_from app import SESSION, RESOURCE_MAXfrom app.models import State, Region, DeepExploration, DeepExplorationOrder, StateRegiondef save_deep_explorations(region_id, deep_explorations):    """Save resources to database"""    session = SESSION()    for deep_exploration_id, deep_exploration_dict in deep_explorations.items():        deep_exploration = session.query(DeepExploration).get(deep_exploration_id)        if deep_exploration:            break        deep_exploration = DeepExploration()        deep_exploration.id = deep_exploration_id        region = session.query(Region).get(region_id)        if not region:            region = save_region(session, region_id)        deep_exploration.region_id = region_id        deep_exploration.resource_type = deep_exploration_dict['resource_type']        deep_exploration.until_date_time = deep_exploration_dict['until_date_time']        session.add(deep_exploration)    session.commit()    session.close()def get_active_deep_exploration(region_id):    """Get active deep exploration in a region"""    session = SESSION()    deep_exploration = session.query(DeepExploration) \        .filter(DeepExploration.region_id == region_id) \        .filter(DeepExploration.until_date_time >= datetime.now()) \        .first()    session.close()    return deep_explorationdef save_region(session, region_id):    """Save player to database"""    region = Region()    region.id = region_id    region.name = 'UNKNOWN'    session.add(region)    return regiondef get_orders():    """Get deep exploration orders"""    session = SESSION()    date_time_now = datetime.now()    orders = session.query(DeepExplorationOrder) \        .filter(DeepExplorationOrder.from_date_time <= date_time_now) \        .filter(or_(            DeepExplorationOrder.until_date_time >= date_time_now,            DeepExplorationOrder.until_date_time == None        )) \        .all()    session.close()    return ordersdef get_order(order_id):    """Get order by id"""    session = SESSION()    order = session.query(DeepExplorationOrder).get(order_id)    session.close()    return orderdef get_region(region_id):    """Get region by id"""    session = SESSION()    region = session.query(Region).get(region_id)    session.close()    return regiondef get_state(region_id):    """Get state from region"""    session = SESSION()    state = session.query(State) \        .join(State.state_regions) \        .filter(StateRegion.region_id == region_id) \        .filter(StateRegion.until_date_time == None) \        .first()    session.close()    return state
 |