コード例 #1
0
ファイル: api_topic.py プロジェクト: ikaryshin/bbs
def add():
    form = request.json
    u = current_user()
    t = Topic.new(form, user_id=u.id)
    return json_succeed(
        topic=topic_returned(t),
    )
コード例 #2
0
def new_chat():
    sender = current_user()
    form = request.json
    receiver_id = form['receiver_id']
    if receiver_id == sender.id:
        return json_fail()
    else:
        room_id = str(uuid.uuid4())
        form['room_id'] = room_id
        form['sender_id'] = sender.id
        message = Message.one(sender_id=sender.id, receiver_id=receiver_id)
        if message is None:
            Message.new(form)
            return json_succeed(room=room_id)
        else:
            return json_succeed(room=message.room_id)
コード例 #3
0
ファイル: api_index.py プロジェクト: ikaryshin/bbs
def register():
    form = request.json
    u = User.register(form)
    if u is None:
        return json_fail()
    else:
        return json_succeed(user=u.json(), )
コード例 #4
0
ファイル: api_index.py プロジェクト: ikaryshin/bbs
def check_token():
    form = request.json
    log(form)
    token = form['token']
    if token in auth_tokens:
        return json_succeed()
    else:
        return json_fail()
コード例 #5
0
def messages():
    room_id = request.json['room']
    message_id = Message.one(room_id=room_id).id

    all_messages = MessageContent.all(message_id=message_id)

    messages_returned = [m.json() for m in all_messages]

    return json_succeed(messages=messages_returned, )
コード例 #6
0
ファイル: api_index.py プロジェクト: ikaryshin/bbs
def reset_password_update():
    token = request.json['token']
    user_id = auth_tokens.get(token, None)
    if user_id is None:
        json_fail()
    else:
        password = request.json['password']
        User.update_password(user_id, password)
        auth_tokens.pop(token)
        return json_succeed()
コード例 #7
0
ファイル: api_index.py プロジェクト: ikaryshin/bbs
def setting_profile():
    u = current_user()
    form = request.json
    username = form['name']
    signature = form['signature']
    email = form['email']

    User.update(u.id, username=username, signature=signature, email=email)

    return json_succeed()
コード例 #8
0
ファイル: api_index.py プロジェクト: ikaryshin/bbs
def avatar_add():
    file: FileStorage = request.files['avatar']
    filename = str(uuid.uuid4())
    path = os.path.join('images', filename)
    file.save(path)

    u = current_user()
    User.update(u.id, image='/images/{}'.format(filename))

    return json_succeed()
コード例 #9
0
ファイル: api_index.py プロジェクト: ikaryshin/bbs
def login():
    form = request.json
    u = User.validate_login(form)
    if u is None:
        return json_fail()
    else:
        token = UserToken.add(u.id)
        return json_succeed(
            user=u.json(),
            token=token,
        )
コード例 #10
0
ファイル: api_index.py プロジェクト: ikaryshin/bbs
def user_detail(user):
    u = user
    if u is None:
        return json_fail()
    else:
        created = created_topic(u.id)
        replied = ordered_replied_topics(u.id)
        return json_succeed(
            user=u.json(),
            created=topics_returned(created),
            replied=topics_returned(replied),
        )
コード例 #11
0
ファイル: api_reply.py プロジェクト: ikaryshin/bbs
def add():
    form = request.json
    u = current_user()
    r = Reply.new(form, u.id)
    reply = r.json()
    reply_user = User.one(id=r.user_id)
    reply['user'] = reply_user.json()
    content = form['content']
    users = users_from_content(content)
    send_mails(u, users, form['topic_id'], r.floor, content)
    # send_mails(u, users, form['topic_id'], r.floor, content)
    return json_succeed(reply=reply, )
コード例 #12
0
ファイル: api_index.py プロジェクト: ikaryshin/bbs
def setting_password():
    u = current_user()

    form = request.json
    current_password = form['current-password']
    new_password = User.salted_password(form['new-password'])

    try:
        User.change_password(u.id, current_password, new_password)
    except ValueError:
        return json_fail()

    return json_succeed()
コード例 #13
0
ファイル: api_index.py プロジェクト: ikaryshin/bbs
def reset_password():
    username = request.json['username']
    log('username', username)
    u: User = User.one(username=username)
    log(u)
    if u is not None:
        token = auth_tokens.new(u.id)
        send_mail(
            subject='重置密码',
            author=config.admin_mail,
            to=u.email,
            content="{}/{}".format(config.server_name,
                                   'reset?token={}'.format(token)),
        )
        return json_succeed()
    else:
        return json_fail()
コード例 #14
0
ファイル: api_index.py プロジェクト: ikaryshin/bbs
def index():
    board_id = int(request.args.get('board_id', -1))
    page_num = int(request.args.get('page_num', 1))
    page_limit = int(request.args.get('page_limit', 3))

    topics = topics_for_index(board_id, page_num, page_limit)
    log('board_id', board_id)
    if board_id != -1:
        count = Topic.all_count(board_id=board_id)
        log('count', count)
    else:
        count = Topic.count()
        log('count', count)

    return json_succeed(
        topics=topics,
        count=ceil(count / page_limit),
    )
コード例 #15
0
def contacts():
    u = current_user()
    all_contacts = Message.contacts(user_id=u.id)

    contacts_returned = [c.json() for c in all_contacts]
    contacts_returned.sort(key=lambda c: c['updated_time'])

    for c in contacts_returned:
        if c['receiver_id'] == u.id:
            c['other'] = User.one(id=c['sender_id']).json()
        elif c['sender_id'] == u.id:
            c['other'] = User.one(id=c['receiver_id']).json()
        # 都不满足,就会没有 other 字段

    return json_succeed(
        user=u.json(),
        contacts=contacts_returned,
    )
コード例 #16
0
ファイル: api_topic.py プロジェクト: ikaryshin/bbs
def all_boards():
    bs = Board.all()
    return json_succeed(
        boards=[b.json() for b in bs]
    )
コード例 #17
0
ファイル: api_topic.py プロジェクト: ikaryshin/bbs
def detail(id):
    m = Topic.get(id)
    return json_succeed(
        topic=topic_returned(m)
    )
コード例 #18
0
ファイル: api_index.py プロジェクト: ikaryshin/bbs
def user():
    u = current_user()
    if u is None:
        return json_fail(user=User.guest())
    else:
        return json_succeed(user=u.json())