Exemplo n.º 1
0
 def put(self, user_id):
     abort_if_user_not_found(user_id)
     session = db_session.create_session()
     if not request.json:
         return jsonify({'error': 'Empty request'})
     user = session.query(User).get(user_id)
     if 'name' in request.json:
         user.name = request.json['name']
     if 'surname' in request.json:
         user.surname = request.json['surname']
     if 'age' in request.json:
         user.age = request.json['age']
     if 'position' in request.json:
         user.position = request.json['position']
     if 'speciality' in request.json:
         user.speciality = request.json['speciality']
     if 'address' in request.json:
         user.address = request.json['address']
     if 'email' in request.json:
         user.email = request.json['email']
     if 'city_from' in request.json:
         user.city_from = request.json['city_from']
     user.modified_date = datetime.datetime.now()
     session.commit()
     return jsonify({'success': 'OK'})
Exemplo n.º 2
0
def init():
    # инициализация
    _request = {
        'token': request.json.get('token', ''),
    }
    if not config.check_token(_request['token']):
        return jsonify({'result': 'incorrect token'})
    db_sess = create_session()
    resources = db_sess.query(Resource).all()
    names = [i.name for i in resources]
    patterns = eval(
        open('static/core/resources.txt', 'r', encoding='utf8').read())
    # ресурсы
    for pattern in patterns:
        if pattern['name'] not in names:
            # создание ресурсов
            new_resource = Resource()
            new_resource.apply_pattern(pattern)
            db_sess.add(new_resource)
            db_sess.commit()

    types = db_sess.query(ProductionType).all()
    names = [i.name for i in types]
    patterns = eval(
        open('static/core/productions.txt', 'r', encoding='utf8').read())
    for pattern in patterns:
        if pattern['title'] not in names:
            new_type = ProductionType()
            new_type.apply_pattern(pattern)
            db_sess.add(new_type)
            db_sess.commit()

    return jsonify({'result': 'OK'})
Exemplo n.º 3
0
def register():
    form = RegisterForm()
    if form.validate_on_submit():
        if form.password.data != form.password_again.data:
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   message="Пароли не совпадают")
        session = db_session.create_session()
        if session.query(User).filter(User.email == form.email.data).first():
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   message="Такой пользователь уже есть")
        user = User(
            surname=form.surname.data,
            name=form.name.data,
            email=form.email.data,
            age=form.age.data,
            position=form.position.data,
            speciality=form.speciality.data,
            address=form.address.data,
            city_from=form.city_from.data,
        )
        user.set_password(form.password.data)
        session.add(user)
        session.commit()
        return redirect('/login')
    return render_template('register.html', title='Регистрация', form=form)
Exemplo n.º 4
0
def create():

    _request = {
        'token': request.json.get('token', ''),
        'input': request.json.get('input', ''),
        'output': request.json.get('output', ''),
        'input_number': request.json.get('input_number', ''),
        'output_number': request.json.get('output_number', ''),
    }
    if not config.check_token(_request['token']):
        return jsonify({'result': 'incorrect token'})
    db_sess = create_session()
    user = db_sess.query(User).get(config.USER_ID)
    resources = db_sess.query(Resource).all()
    new_deal = Deal()
    # создание сделки

    res = new_deal.create(_request, user, resources)
    if res:
        return jsonify(res)
    res = user.create_deal(new_deal)
    if res:
        return jsonify(res)

    db_sess.add(new_deal)
    db_sess.commit()
    db_sess.merge(user)
    db_sess.commit()
    return jsonify({'result': 'OK'})
Exemplo n.º 5
0
def sign_in():
    # вход пользователя
    _request = {
        'token': request.json.get('token', ''),
        'nickname': request.json.get('nickname', ''),
        'password': request.json.get('password', ''),
    }
    if not config.check_token(_request['token']):
        return jsonify({'result': 'incorrect token'})
    db_sess = create_session()
    user = db_sess.query(User).filter(
        User.nickname == _request['nickname']).first()
    if not user:
        return jsonify({'result': 'unknown nickname'})
        # нет такого пользователя
    if not user.check_password(_request['password']):
        # неверный пароль
        return jsonify({'result': 'incorrect password'})
    config.USER_ID = user.id
    user.get_energy()
    db_sess.merge(user)
    db_sess.commit()
    return jsonify({
        'result': 'OK',
        'user': user.to_dict(),
    })
Exemplo n.º 6
0
def accept():
    # принять сделку
    _request = {
        'token': request.json.get('token', ''),
        'deal_id': request.json.get('deal_id', ''),
    }
    if not config.check_token(_request['token']):
        return jsonify({'result': 'incorrect token'})
    db_sess = create_session()
    deal = db_sess.query(Deal).get(_request['deal_id'])

    user = db_sess.query(User).get(config.USER_ID)
    author = db_sess.query(User).get(deal.user.id)

    res = user.send_deal(deal)
    if res:
        return jsonify(res)

    author.get_deal(deal)

    db_sess.delete(deal)
    db_sess.commit()
    db_sess.merge(user)
    db_sess.commit()
    db_sess.merge(author)
    db_sess.commit()
    return jsonify({'result': 'OK'})
Exemplo n.º 7
0
    def update(self):
        if not self.waiting:
            return
        db_sess = db_session.create_session()
        answer = db_sess.query(Shared).filter(Shared.id == 2).first()
        if not answer.data:
            return
        try:
            res = eval(answer.data)
            if self.waiting in ['sign_in', 'sign_up']:
                self.recognize_response(res)
                if res['result'] == 'OK':
                    config.NICKNAME = self.saved
                    del self.saved
                    config.WINDOW.tabs['login'] = config.WINDOW.tabs['profile']
                    config.WINDOW.change_tab('profile')
                    user = res['user']
                    config.WINDOW.get('txtNickname').set_text(user['nickname'])
                    config.WINDOW.get('txtRating').set_text(user['rating'])
                    config.WINDOW.get('txtBest').set_text(user['best'])
                    config.WINDOW.get('txtCreated').set_text(user['created'])

            elif self.waiting == 'get_users':
                config.WINDOW.change_tab('rating')
                for i, user in enumerate(sorted(
                        res['users'], key=lambda x: x['rating'])[::-1][:10]):
                    user['number'] = i + 1
                    config.WINDOW.get('tarPlayer0' + str(i)).set_text(user)
        except Exception as e:
            print('ERROR', e)
            pass
        self.waiting = ''
        answer.data = ''
        db_sess.merge(answer)
        db_sess.commit()
Exemplo n.º 8
0
 def delete(self, job_id):
     abort_if_job_not_found(job_id)
     session = db_session.create_session()
     job = session.query(Jobs).get(job_id)
     session.delete(job)
     session.commit()
     return jsonify({'success': 'OK'})
Exemplo n.º 9
0
def get_bets():
    # получить ставки
    _request = {
        'token': request.json.get('token', ''),
    }
    if not config.check_token(_request['token']):
        return jsonify({'result': 'incorrect token'})
    db_sess = create_session()
    bets = db_sess.query(Bet).all()
    for bet in bets:
        if bet.is_complete():
            bet.on_complete()
            db_sess.delete(bet)
            db_sess.commit()
    bets = db_sess.query(Bet).all()
    while len(bets) < random.randint(15, 25):
        # добавление ставок
        new_bet = Bet()
        new_bet.generate()
        db_sess.add(new_bet)
        db_sess.commit()
        bets = db_sess.query(Bet).all()
    bets = db_sess.query(Bet).all()
    return jsonify({
        'result': 'OK',
        'data': [bet.to_dict() for bet in bets],
    })
Exemplo n.º 10
0
 def delete(self, user_id):
     abort_if_user_not_found(user_id)
     session = db_session.create_session()
     user = session.query(User).get(user_id)
     session.delete(user)
     session.commit()
     return jsonify({'success': 'OK'})
Exemplo n.º 11
0
def delete_job(job_id):
    session = db_session.create_session()
    job = session.query(Jobs).get(job_id)
    if not job:
        return jsonify({'error': 'Not found'})
    session.delete(job)
    session.commit()
    return jsonify({'success': 'OK'})
Exemplo n.º 12
0
def jobs_edit(job_id):
    form = JobForm()
    if request.method == "GET":
        session = db_session.create_session()
        if current_user.id == 1:
            job = session.query(Jobs).filter(Jobs.id == job_id).first()
        else:
            job = session.query(Jobs).filter(
                Jobs.id == job_id, Jobs.leader == current_user).first()
        if job:
            form.job.data = job.job
            form.leader_id.data = job.leader_id
            form.work_size.data = job.work_size
            form.collaborators.data = job.collaborators
            form.category.data = ', '.join(
                map(lambda x: x.name, job.categories))
            form.is_finished.data = job.is_finished
        else:
            abort(404)
    if form.validate_on_submit():
        session = db_session.create_session()
        if current_user.id == 1:
            job = session.query(Jobs).filter(Jobs.id == job_id).first()
        else:
            job = session.query(Jobs).filter(
                Jobs.id == job_id, Jobs.leader == current_user).first()
        if job:
            job.leader_id = form.leader_id.data
            job.job = form.job.data
            job.work_size = form.work_size.data
            job.collaborators = form.collaborators.data
            for i in map(int, form.category.data.split(',')):
                c = session.query(Category).filter(Category.id == i).first()
                if not c:
                    c = Category(id=i, name=f'{i}')
                job.categories.append(c)
            job.is_finished = form.is_finished.data
            session.commit()
            return redirect('/')
        else:
            abort(404)
    return render_template('jobs_add.html',
                           title='Редактирование работы',
                           form=form)
Exemplo n.º 13
0
 def get(self, user_id):
     abort_if_user_not_found(user_id)
     session = db_session.create_session()
     user = session.query(User).get(user_id)
     return jsonify({
         'user':
         user.to_dict(only=('id', 'name', 'surname', 'age', 'position',
                            'speciality', 'address', 'email',
                            'modified_date', 'city_from'))
     })
Exemplo n.º 14
0
async def bot_start(message: types.Message):
    user_id = message.from_user.id
    name_user = message.from_user.first_name
    db_sess = db_session.create_session()
    if db_sess.query(User.id).filter(User.id == user_id).all():
        user = User(id_user=user_id, name_user=name_user)
        db_sess.add(user)
        db_sess.commit()
    await message.answer(f"Привет, {message.from_user.full_name}!"
                         f"Жми /start_menu")
Exemplo n.º 15
0
 def get(self):
     session = db_session.create_session()
     jobs = session.query(Jobs).all()
     return jsonify({
         'jobs': [
             item.to_dict(only=('id', 'leader_id', 'job', 'work_size',
                                'collaborators', 'start_date', 'end_date',
                                'is_finished')) for item in jobs
         ]
     })
Exemplo n.º 16
0
async def bot_start(message: types.Message):
    user_id = message.from_user.id
    name_user = message.from_user.first_name
    db_sess = db_session.create_session()
    if db_sess.query(User.id).filter(User.id == user_id).all():
        user = User(id_user=user_id, name_user=name_user)
        db_sess.add(user)
        db_sess.commit()
    await message.answer(f'Здравствуйте, {message.from_user.full_name}!'
                         f'Давайте начнем', reply_markup=start_mark)
Exemplo n.º 17
0
 def get(self, job_id):
     abort_if_job_not_found(job_id)
     session = db_session.create_session()
     job = session.query(Jobs).get(job_id)
     return jsonify({
         'job':
         job.to_dict(only=('id', 'leader_id', 'job', 'work_size',
                           'collaborators', 'start_date', 'end_date',
                           'is_finished'))
     })
Exemplo n.º 18
0
async def show_users(message: types.Message):
    if str(message.from_user.id) in ADMINS:
        await message.answer(
            "Список пользователей, которые используют телеграмм бота: \n")
        session = db_session.create_session()
        news = session.query(User.id_user, User.name_user).all()
        for i in news:
            await message.answer(f'id - {i[0]} \nname - {i[1]}')
    else:
        await message.answer("У вас нет прав на использование этой команды!")
Exemplo n.º 19
0
def get_job(job_id):
    session = db_session.create_session()
    job = session.query(Jobs).get(job_id)
    if job:
        return jsonify({
            'jobs':
            job.to_dict(only=('id', 'leader_id', 'job', 'work_size',
                              'collaborators', 'start_date', 'end_date',
                              'is_finished'))
        })
    return jsonify({'error': 'Not Found'})
Exemplo n.º 20
0
 def post(self):
     args = parser.parse_args()
     session = db_session.create_session()
     job = Jobs(leader_id=args['leader_id'],
                job=args['job'],
                work_size=args['work_size'],
                collaborators=args['collaborators'],
                is_finished=args['is_finished'])
     session.add(job)
     session.commit()
     return jsonify({'success': 'OK'})
Exemplo n.º 21
0
 def send(self, data, wait):
     if self.waiting:
         return
     db_sess = db_session.create_session()
     request = db_sess.query(Shared).filter(Shared.id == 1).first()
     if request.data:
         return
     request.data = str(data)
     self.waiting = wait
     db_sess.merge(request)
     db_sess.commit()
Exemplo n.º 22
0
def stock_exchange():
    # биржа
    _request = {
        'token': request.json.get('token', ''),
    }
    if not config.check_token(_request['token']):
        return jsonify({'result': 'incorrect token'})
    db_sess = create_session()
    deals = db_sess.query(Deal).all()

    return {'result': 'OK', 'data': [deal.to_dict() for deal in deals]}
Exemplo n.º 23
0
 def get(self):
     session = db_session.create_session()
     users = session.query(User).all()
     return jsonify({
         'users': [
             item.to_dict(only=('id', 'name', 'surname', 'age', 'position',
                                'speciality', 'address', 'email',
                                'modified_date', 'city_from'))
             for item in users
         ]
     })
Exemplo n.º 24
0
def jobs_delete(job_id):
    session = db_session.create_session()
    if current_user.id == 1:
        job = session.query(Jobs).filter(Jobs.id == job_id).first()
    else:
        job = session.query(Jobs).filter(Jobs.id == job_id,
                                         Jobs.leader == current_user).first()
    if job:
        session.delete(job)
        session.commit()
    else:
        abort(404)
    return redirect('/')
Exemplo n.º 25
0
def departments_edit(department_id):
    form = DepartmentForm()
    if request.method == "GET":
        session = db_session.create_session()
        if current_user.id == 1:
            department = session.query(Department).filter(
                Department.id == department_id).first()
        else:
            department = session.query(Department).filter(
                Department.id == department_id,
                Department.chief == current_user).first()
        if department:
            form.title.data = department.title
            form.chief_id.data = department.chief_id
            form.email.data = department.email
            form.members.data = department.members
        else:
            abort(404)
    if form.validate_on_submit():
        session = db_session.create_session()
        if current_user.id == 1:
            department = session.query(Department).filter(
                Department.id == department_id).first()
        else:
            department = session.query(Department).filter(
                Department.id == department_id,
                Department.chief == current_user).first()
        if department:
            department.title = form.title.data
            department.chief_id = form.chief_id.data
            department.email = form.email.data
            department.members = form.members.data
            session.commit()
            return redirect('/departments')
        else:
            abort(404)
    return render_template('departments_add.html',
                           title='Редактирование департамента',
                           form=form)
Exemplo n.º 26
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        session = db_session.create_session()
        user = session.query(User).filter(
            User.email == form.email.data).first()
        if user and user.check_password(form.password.data):
            login_user(user, remember=form.remember_me.data)
            return redirect('/')
        return render_template('login.html',
                               message='Неправильный логин или пароль',
                               form=form)
    return render_template('login.html', title='Авторизация', form=form)
Exemplo n.º 27
0
 def post(self):
     args = parser.parse_args()
     session = db_session.create_session()
     user = User(name=args['name'],
                 surname=args['surname'],
                 age=args['age'],
                 position=args['position'],
                 speciality=args['speciality'],
                 address=args['address'],
                 email=args['email'],
                 city_from=args['city_from'])
     session.add(user)
     session.commit()
     return jsonify({'success': 'OK'})
Exemplo n.º 28
0
def departments_delete(department_id):
    session = db_session.create_session()
    if current_user.id == 1:
        department = session.query(Department).filter(
            Department.id == department_id).first()
    else:
        department = session.query(Department).filter(
            Department.id == department_id,
            Department.chief == current_user).first()
    if department:
        session.delete(department)
        session.commit()
    else:
        abort(404)
    return redirect('/departments')
Exemplo n.º 29
0
def rating():
    # рейтинг пользователей
    _request = {
        'token': request.json.get('token', ''),
    }
    if not config.check_token(_request['token']):
        return jsonify({'result': 'incorrect token'})
    db_sess = create_session()
    users = db_sess.query(User).all()
    users = sorted(users,
                   key=lambda user: user.to_dict()['resources']['coin'],
                   reverse=True)
    return jsonify({
        'result': 'OK',
        'data': [user.to_dict() for user in users],
    })
Exemplo n.º 30
0
 def put(self, job_id):
     abort_if_job_not_found(job_id)
     session = db_session.create_session()
     if not request.json:
         return jsonify({'error': 'Empty request'})
     user = session.query(Jobs).get(job_id)
     if 'leader_id' in request.json:
         user.leader_id = request.json['leader_id']
     if 'job' in request.json:
         user.job = request.json['job']
     if 'work_size' in request.json:
         user.work_size = request.json['work_size']
     if 'collaborators' in request.json:
         user.collaborators = request.json['collaborators']
     if 'is_finished' in request.json:
         user.is_finished = request.json['is_finished']
     session.commit()
     return jsonify({'success': 'OK'})