Esempio n. 1
0
 def create_one(author_id, content, title) -> ArticleModel:
     article = ArticleModel(author_id=author_id,
                            content=content,
                            title=title)
     DBSession().add(article)
     DBSession().flush()
     return article
Esempio n. 2
0
 def _login_to_tracker(self, engine=None):
     with DBSession() as db:
         cred = db.query(LostFilmTVCredentials).first()
         if not cred:
             return False
         username = cred.username
         password = cred.password
         if not username or not password:
             return False
         self.tracker.setup(cred.c_uid, cred.c_pass, cred.c_usess)
     if self.tracker.verify():
         if engine:
             engine.log.info('Cookies are valid')
         return True
     if engine:
         engine.log.info('Login to <b>lostfilm.tv</b>')
     try:
         self.tracker.login(username, password)
         with DBSession() as db:
             cred = db.query(LostFilmTVCredentials).first()
             cred.c_uid = self.tracker.c_uid
             cred.c_pass = self.tracker.c_pass
             cred.c_usess = self.tracker.c_usess
     except Exception as e:
         if engine:
             engine.log.failed(
                 'Login to <b>lostfilm.tv</b> failed: {0}'.format(
                     e.message))
     return self.tracker.verify()
Esempio n. 3
0
def post_menus(restaurant_id: int):
    session = DBSession()
    new_item = MenuItem(
        name=request.json["name"],
        description=request.json["description"],
        price=request.json["price"],
        course=request.json["course"],
        restaurant_id=restaurant_id,
    )
    session.add(new_item)
    session.commit()
    return (
        jsonify(
            {
                "name": new_item.name,
                "description": new_item.description,
                "id": new_item.id,
                "price": new_item.price,
                "course": new_item.course,
            }, ),
        201,
        {
            "Location":
            url_for("api.get_menus", restaurant_id=restaurant_id) +
            f"/{new_item.id}",
        },
    )
Esempio n. 4
0
def main(argv):
    # Load env variables
    load_dotenv()

    # Parse arguments
    parser = argparse.ArgumentParser(description='Overlord Discord Bot')
    parser.add_argument('-c', '--config', nargs='?', type=str, default='config.json', help='config path')
    args = parser.parse_args(argv[1:])

    # Load config
    config = ConfigView(path=args.config, schema_name="config_schema")

    # Apply logging config
    if config['logger']:
        logging.config.dictConfig(config['logger'])

    # Init database
    url = os.getenv('DATABASE_ACCESS_URL')
    if 'sqlite' in url:
        import db.queries as q
        q.MODE = q.MODE_SQLITE
    session = DBSession(url, autocommit=False)
    session.sync_table(EventType, 'name', EVENT_TYPES)
    session.sync_table(UserStatType, 'name', USER_STAT_TYPES)

    # Init bot
    discord_bot = Overlord(config.bot, session)
    discord_bot.run()

    return 0
Esempio n. 5
0
    def get_one(**args) -> CommentModel:
        query = DBSession().query(CommentModel)

        if "id" in args:
            query = query.filter(CommentModel.id == args["id"])

        return query.first()
Esempio n. 6
0
    def GetInstances(self, request: GetInstancesRequest,
                     context: ServicerContext,
                     claims: TokenClaims) -> GetInstancesResponse:
        session = DBSession()
        user = get_user_from_claims(session, claims)
        instances = user.instances
        session.close()

        # find the instances
        client = create_client()

        resp = GetInstancesResponse()
        for db_server in instances:
            server = client.connection.get_server_by_id(db_server.id)
            flavor = client.connection.get_flavor_by_id(server.flavor["id"])
            i = Instance()
            i.id = server.id
            i.name = server.name
            i.imageName = db_server.image_name
            i.flavor.name = flavor.name
            i.flavor.cpu = flavor.vcpus
            i.flavor.memory = flavor.ram
            i.flavor.rootDisk = flavor.disk
            i.status = server.status
            i.vmState = server.vm_state
            i.powerState = str(server.power_state)
            if server.task_state is not None:
                i.taskState = server.task_state
            i.ip = server.public_v4
            i.createTime = server.created_at
            resp.instances.append(i)

        return resp
Esempio n. 7
0
    def get_list(_fields: list = None, _paginated: bool = False, **kwargs):
        page = 1 if "page" not in kwargs else int(kwargs["page"])
        limit = 20 if "limit" not in kwargs else int(kwargs["limit"])

        query = DBSession().query(ArticleModel)

        if "created_at_ge" in kwargs:
            query = query.filter(
                ArticleModel.created_at >= kwargs["created_at_ge"])

        if "created_at_le" in kwargs:
            query = query.filter(
                ArticleModel.created_at <= kwargs["created_at_le"])

        if _fields is not None:
            query = query.with_entities(
                *[getattr(ArticleModel, _field) for _field in _fields])

        if limit != 0:
            datas = (query.order_by(desc(
                ArticleModel.created_at)).limit(limit).offset(
                    (page - 1) * limit))
        else:
            datas = query.order_by(desc(ArticleModel.created_at))

        if _paginated:
            total = query.count()
            return datas, schemas.PageInfoSchema.paginate(total, page, limit)
        else:
            return datas
Esempio n. 8
0
def delete_menu(restaurant_id: int, menu_id: int):
    session = DBSession()
    restaurant = session.query(Restaurant).filter_by(
        id=restaurant_id).one_or_none()
    item = (session.query(MenuItem).filter_by(
        id=menu_id, restaurant_id=restaurant_id).one_or_none())
    if restaurant is None:
        return (
            jsonify({"details": f"Restaurant {restaurant_id} does not exist"}),
            404,
            {},
        )
    if item is None:
        return (
            jsonify(
                {
                    "details":
                    f"Menu item {menu_id} does not exist in restaurant {restaurant.name}",
                }, ),
            404,
            {},
        )
    session.delete(item)
    session.commit()
    return (
        None,
        204,
        {},
    )
Esempio n. 9
0
 def AddUser(self, req: AddUserRequest, context) -> AddUserResponse:
     session = DBSession()
     user = ProjectUser(id=req.userProjectAssignmentId,
                        user_id=req.userId,
                        project_id=req.projectId)
     session.add(user)
     session.commit()
     return AddUserResponse()
Esempio n. 10
0
def get_next_timestamp_by_path(path):
    with DBSession() as session:
        storage_file = session.query(Storage).filter(
            Storage.path == path).one()
        sql_map = session.query(Map).get(storage_file.map_id)
        sql_file = found_next_map_in_storage(
            session, sql_map, storage_file.timestamp + timedelta(seconds=1))
        return sql_file.timestamp if sql_file else None
Esempio n. 11
0
 def remove_watch(self, url):
     with DBSession() as db:
         topic = db.query(RutorOrgTopic).filter(
             RutorOrgTopic.url == url).first()
         if topic is None:
             return False
         db.delete(topic)
         return True
Esempio n. 12
0
def manageSession(request):
    session = DBSession()

    def closeSession(request):
        session.close()

    request.add_finished_callback(closeSession)
    return session
Esempio n. 13
0
 def remove_watch(self, url):
     with DBSession() as db:
         topic = db.query(LostFilmTVSeries).filter(
             LostFilmTVSeries.url == url).first()
         if topic is None:
             return False
         db.delete(topic)
         return True
Esempio n. 14
0
 def __init__(self, session=None, autoinit=True):
     if not autoinit:
         self._session = None
     elif session is None or not isinstance(session, Union[Session, scoped_session].__args__):
         self._session: scoped_session = DBSession()
     else:
         self._session = session
     self._session.expire_on_commit = False
Esempio n. 15
0
 def set_settings(self, settings):
     with DBSession() as db:
         cred = db.query(LostFilmTVCredentials).first()
         if not cred:
             cred = LostFilmTVCredentials()
             db.add(cred)
         cred.username = settings['username']
         cred.password = settings['password']
Esempio n. 16
0
 def DeleteProject(self, request, context):
     client = create_client()
     session = DBSession()
     for user in session.query(ProjectUser).filter_by(
             project_id=request.projectId):
         delete_db_user(user, client)
         session.delete(user)
     session.commit()
     return DeleteProjectResponse()
Esempio n. 17
0
def get_fees(symbol, side, start, end):
    with DBSession() as session:
        query = session.query(func.sum(Order.fill_fees)). \
            filter(Order.symbol == symbol). \
            filter(Order.side == side)
        if start and end:
            query = query.filter(Order.created_at >= start,
                                 Order.created_at < end)
        return float(query.scalar())
Esempio n. 18
0
 def _get_settings_execute():
     with DBSession() as db:
         if db.query(Execute).count() == 0:
             settings_execute = Execute(interval=7200, last_execute=None)
             db.add(settings_execute)
             db.commit()
         settings_execute = db.query(Execute).first()
         db.expunge(settings_execute)
     return settings_execute
Esempio n. 19
0
    def update_one(article_id, **args) -> ArticleModel:
        article = ArticleManager.get_one(article_id=article_id)

        if "content" in args:
            article.content = args["content"]
        if "title" in args:
            article.title = args["title"]
        DBSession().flush()
        return article
Esempio n. 20
0
    def get_one(**args) -> AuthorModel:
        query = DBSession().query(AuthorModel)

        if "id" in args:
            query = query.filter(AuthorModel.id == args["id"])
        if "name" in args:
            pass

        return query.first()
Esempio n. 21
0
    def get_one(**args) -> ArticleModel:
        query = DBSession().query(ArticleModel)

        if "id" in args:
            query = query.filter(ArticleModel.id == args["id"])
        if "title" in args:
            pass

        return query.first()
Esempio n. 22
0
 def init_async_executor(app, loop):
     executor = AsyncioExecutor(loop)
     app.add_route(
         GraphQLView.as_view(schema=schema,
                             executor=executor,
                             context=dict({"session": DBSession()},
                                          **get_dataloaders()),
                             **kwargs),
         path,
     )
Esempio n. 23
0
 def init_web_route(app, loop):
     print("初始化web路由")
     app.add_route(
         GraphQLView.as_view(schema=schema,
                             context=dict({"session": DBSession()},
                                          **get_dataloaders()),
                             graphiql_template=TEMPLATE,
                             **kwargs),
         "/web",
     )
Esempio n. 24
0
    def get_one(**args) -> OrdinaryWriterModel:
        query = DBSession().query(OrdinaryWriterModel)

        if "id" in args:
            query = query.filter(OrdinaryWriterModel.id == args["id"])
        if "author_id" in args:
            query = query.filter(
                OrdinaryWriterModel.author_id == args["author_id"])

        return query.first()
Esempio n. 25
0
 def interval(self, value):
     settings_execute = self._get_settings_execute()
     with DBSession() as db:
         db.add(settings_execute)
         settings_execute.interval = value
         db.commit()
     self.timer.cancel()
     with self._timer_lock:
         self.timer = threading.Timer(value, self._run)
         self.timer.start()
Esempio n. 26
0
 def DeleteUser(self, request: DeleteUserRequest,
                context) -> DeleteUserResponse:
     client = create_client()
     session = DBSession()
     for user in session.query(ProjectUser).filter_by(
             user_id=request.userId):
         delete_db_user(user, client)
         session.delete(user)
     session.commit()
     return DeleteUserResponse()
Esempio n. 27
0
 def get_settings(self):
     with DBSession() as db:
         cred = db.query(TransmissionCredentials).first()
         if not cred:
             return None
         return {
             'host': cred.host,
             'port': cred.port,
             'username': cred.username
         }
Esempio n. 28
0
 def set_settings(self, settings):
     with DBSession() as db:
         cred = db.query(TransmissionCredentials).first()
         if not cred:
             cred = TransmissionCredentials()
             db.add(cred)
         cred.host = settings['host']
         cred.port = settings['port']
         cred.username = settings.get('username', None)
         cred.password = settings.get('password', None)
Esempio n. 29
0
 def spider_closed(self, spider):
     session = DBSession()
     task = session.query(SpiderTask).filter(
         SpiderTask.spider_rule_id == self.rule_id,
         SpiderTask.end_time == None).first()
     if task:
         task.end_time = datetime.now()
         task.status = "closed"
         session.commit()
     session.close()
Esempio n. 30
0
def save_order(order_data):
    order = Order(order_id=order_data.get("id"),
                  side=order_data.get("side"),
                  state=order_data.get("state"),
                  price=float(order_data.get("price")),
                  symbol=order_data.get("symbol"),
                  amount=float(order_data.get("amount")),
                  filled_amount=float(order_data.get("filled_amount")),
                  fill_fees=float(order_data.get("fill_fees")))
    with DBSession() as session:
        session.add(order)