Example #1
0
def create_board():
    form = CreateBoardform(request.form)
    if request.method == "GET":
        return render_template("createboard.html",
                               form=form,
                               sign_in_username=session["username"])

    if request.method == "POST" and form.validate():
        userdoc = models.User().fetch_userdoc(session["username"])
        boardli = models.Board().fetch_boardli_from_boardids(
            userdoc["boardids"]
        )  # UserCollectionで管理中のBoardのIDにリストを引数にBoardのリストをBoardCollから(ry

        for board in boardli:  # 既に同一ネームのボードが存在した時、templateにエラー出力
            if board == form.board.data:
                return render_template(
                    "createboard.html",
                    form=form,
                    create_board_error=gettext(u"This boardname is created"),
                    sign_in_username=session["username"])
        boardid = models.Board().add(form.board.data, form.description.data,
                                     session["username"])

        userdoc['boardids'].append(
            boardid)  # 新規登録されたボードのIDをUser Collectionでボードfieldに追加
        models.User().save(userdoc)
        return redirect(url_for("userboards", username=session["username"]))
    else:
        return render_template("createboard.html",
                               form=form,
                               sign_in_username=session["username"])
Example #2
0
def sign_in():
    if request.is_xhr is True:
        form2 = Sign_inform()
        data = request.form["data"]
        dict = {}
        for i in data.split("&"):
            dict[i.split("=")[0]] = i.split("=")[1]

        (form2.username.data, form2.password.data) = (dict["username"],
                                                      dict["password"])
        if form2.validate():
            if models.User().sign_in(dict["username"], dict["password"]):
                session["username"] = dict["username"]
                return jsonify(res="success")
            else:
                return jsonify(res=gettext("Wrong username or password"),
                               op="sign_in")
        else:
            for field_name, field_errors in form2.errors.items():
                for error in field_errors:
                    return jsonify(res=error, op="sign_in")

    form2 = Sign_inform(request.form)
    if request.is_xhr is False and form2.validate():
        if models.User().sign_in(form2.username.data, form2.password.data):
            session["username"] = form2.username.data
            return redirect(url_for("index"))
        else:
            flash(gettext(u"Wrong username or password"), "sign_in")
            return redirect(url_for("submit"))
    else:
        for field_name, field_errors in form2.errors.items():
            for error in field_errors:
                flash(error, "sign_in")
        return redirect(url_for("submit"))
Example #3
0
def setting():
    form = Settingform(request.form)
    userdoc = models.User().fetch_userdoc(session["username"])
    if request.method == "GET":
        (form.email.data, form.aboutuser.data) = (userdoc["email"],
                                                  userdoc["aboutuser"])
        return render_template("setting.html",
                               form=form,
                               sign_in_username=session['username'])

    if request.method == "POST" and form.validate():

        # サインインしているユーザー以外のメルアドが入力されたらエラー分岐されます
        if models.User().update_email(username=session["username"],
                                      email=form.email.data,
                                      aboutuser=form.aboutuser.data):
            return render_template("setting.html",
                                   form=form,
                                   sign_in_username=session['username'],
                                   update_email_error=gettext(
                                       u"This email belongs to another user"))
        return redirect(url_for("userboards", username=session["username"]))
    else:
        return render_template("setting.html",
                               form=form,
                               sign_in_username=session['username'])
Example #4
0
def send_email():
    if 'username' in session: return redirect(url_for("index"))
    if request.method == "GET":
        form = Passwordform(request.form)
        form1 = Sign_upform(request.form)
        form2 = Sign_inform(request.form)
        return render_template("anonymous/send_email.html",
                               form=form,
                               form1=form1,
                               form2=form2)

    form = Passwordform()
    form.username.data = request.form["data"]
    if request.method == "POST" and request.is_xhr is True and form.validate():
        userdoc = models.User().fetch_userdoc(form.username.data)
        if not userdoc or not userdoc["email"]:  # 未登録のユーザとemailが未登録のユーザーはエラー分岐
            return jsonify(res="error",
                           message=gettext("this user don't use email"))

        # 外部のメールサーバーとソケット通信します
        keyforreset = client.connectExtServer(userdoc["username"],
                                              userdoc["email"])
        models.User().add_keyforreset(userdoc["username"], keyforreset)
        return jsonify(
            res="success",
            message=gettext(
                "an email will be sent to that account's address shortly"))
    else:
        return jsonify(res="error",
                       message=gettext("this user don't use email"))
Example #5
0
def sign_up():
    if request.is_xhr == True:
        form1 = Sign_upform()
        data = request.form["data"]
        dict = {}
        for i in data.split("&"):
            dict[i.split("=")[0]] = i.split("=")[1]
        (form1.username.data, form1.password.data) = (dict["username"],
                                                      dict["password"])
        if dict["email"]:  # 以下4行Emailの@のreplace
            r = re.compile("(%40)")
            form1.email.data = r.sub("@", dict["email"])
        else:
            form1.email.data = ""

        if form1.validate():
            judge = models.User().sign_up(email=form1.email.data,
                                          username=form1.username.data,
                                          password=form1.password.data)
            if not judge:
                judge = form1.validate_banned_username()

            if not judge:  # 登録成功の分岐
                session["username"] = form1.username.data
                return jsonify(res="success")
            else:
                message = gettext(u"This username is used"
                                  ) if judge == "username" else gettext(
                                      u"This email is used")
                return jsonify(res=message, op="sign_up")
        else:
            for field_name, field_errors in form1.errors.items():
                for error in field_errors:
                    return jsonify(res=error, op="sign_up")

    form1 = Sign_upform(request.form)
    if request.is_xhr == False and form1.validate():
        judge = models.User().sign_up(email=form1.email.data,
                                      username=form1.username.data,
                                      password=form1.password.data)
        if not judge:
            judge = form1.validate_banned_username()

        if not judge:  # 登録成功の分岐
            session["username"] = form1.username.data
            return redirect(url_for("index"))
        else:
            message = gettext(
                u"This username is used") if judge == "username" else gettext(
                    u"This email is used")
            flash(message, 'sign_up')
            return redirect(url_for("submit"))
    else:
        for field_name, field_errors in form1.errors.items():
            for error in field_errors:
                flash(error, 'sign_up')
        return redirect(url_for("submit"))
Example #6
0
def signup():
    form = forms.RegisterForm()
    #    form.language.choices = [('pc', 'Pascal'), ('cb', 'Cobol'),('jv', 'Java')]

    if request.method == 'POST':
        if form.validate_on_submit():
            try:
                password_hashed = generate_password_hash(form.password.data,
                                                         method='sha256')
                new_user = models.User(username=form.username.data,
                                       email=form.email.data,
                                       password=password_hashed,
                                       userhash=str(random.getrandbits(128)),
                                       dni=form.dni.data,
                                       silo=form.dni.data[3])
                send_email(new_user.email,
                           'Por favor, confirmar correo.',
                           'mail/new_user',
                           user=new_user)
                db.session.add(new_user)
                db.session.commit()
                flash("User created successfully")
                return redirect(url_for('login'))
            except:
                db.session.rollback()
                flash(
                    "Something went wrong. User has not been created. Please try again."
                )
    return render_template("signup.html", page="signup", form=form)
Example #7
0
def start(message):

    dict_of_user = message.from_user
    user_id = models.User.objects(id_user=str(dict_of_user.id)).first()
    print(user_id)

    print(dict_of_user.id)
    if not models.User.objects(id_user=str(dict_of_user.id)):
        data_of_user = models.User(
            **{
                'id_user': str(dict_of_user.id),
                'first_name': dict_of_user.first_name,
                'username': dict_of_user.username,
                'last_name': dict_of_user.last_name
            }).save()

    greeting_str = f'Hello {dict_of_user.first_name} {dict_of_user.last_name}'
    keyboard = ReplyKB().generate_kb(*keyboards.beginning_kb.values())
    bot.send_message(message.chat.id, greeting_str, reply_markup=keyboard)

    real_user_id = models.User.objects(id_user=str(dict_of_user.id)).first()
    print(real_user_id)

    if not models.Cart.objects(user=user_id, active=True):
        cart_user = models.Cart(**{'user': real_user_id}).save()
    else:
        pass
def createUser(requestBody: User, db: Session = Depends(get_db)):
    new_user = models.User(**toUserModel(requestBody),
                           passwordHash=Hash.bcrypt(requestBody.password))
    db.add(new_user)
    db.commit()
    db.refresh(new_user)
    return new_user
Example #9
0
def delete_userboard(username, board):
    if username != session["username"]: return abort(404)
    removedid = models.Board().delete(
        session["username"],
        board)  # BoardとImg docsが削除され、BoardのIDが返る。...ファイル削除しない方向で...
    models.User().pop_boardid(session["username"], removedid)
    models.Img().delete_multi(session["username"], board)
    return redirect(url_for("userboards", username=session["username"]))
Example #10
0
async def create_user(db: AsyncSession, request: User):
    new_user = models.User(name=request.name,
                           email=request.email,
                           password=Hash.encrypt(request.password))
    db.add(new_user)
    await db.commit()
    await db.refresh(new_user)
    return ShowUser.from_orm(new_user)
Example #11
0
def create_user(db: Session, user: schemas.UserCreate):
    #! The password is not hashed!!!
    fake_hashed_password = user.password + "notreallyhashed"
    db_user = models.User(email=user.email, hashed_password=fake_hashed_password)
    db.add(db_user)
    db.commit()
    db.refresh(db_user)
    return db_user
Example #12
0
def add_to_cart(call):
    if call.from_user.id not in models.User.objects.distinct("user_id"):
        user_obj = models.User(**{"user_id" : call.from_user.id}).save()
    else:
        user_obj = models.User.objects.get(user_id=call.from_user.id)
    product_obj = models.Product.objects.get(id=call.data.split('_')[1])
    models.Cart(**{"user" : user_obj, "product": product_obj}).save()
    bot.send_message(call.message.chat.id, "Товар " + product_obj.title + " добавлен в корзину")
Example #13
0
def create(request: schemas.User, db: Session):
    hashedPassword = Hash.bcrypt(request.password)
    user = models.User(name=request.name,
                       email=request.email,
                       password=hashedPassword)
    db.add(user)
    db.commit()
    db.refresh(user)
    return user
Example #14
0
def register():
    try:
        params = request.json
        user_service.register(
            models.User(None, params['username'], params['password'],
                        params['nickname'], ""))
        return ResultResp(20000, '注册成功!', None).to_resp()
    except Exception as e:
        print(e)
        return ResultResp(50001, '注册失败!', None).to_resp()
Example #15
0
def update_info(id):
    try:
        params = request.json
        user_service.update_user_info(
            models.User(id, params['username'], params['password'],
                        params['nickname'], ""))
        return ResultResp(20000, '修改用户信息成功', None).to_resp()
    except Exception as e:
        print(e)
        return ResultResp(50001, '修改用户信息失败', None).to_resp()
Example #16
0
    def setUp(self):
        models.db.drop_all()
        models.db.create_all()

        self.role = models.Role(name="regular")
        self.role.save()

        self.user_1 = models.User(name="Joseph Cobhams",
                                  email="*****@*****.**",
                                  password=sha256_crypt.hash('andela'))
        self.user_1.save()
Example #17
0
def add_to_cart(call):
    # user_last_name = call.from_user.last_name
    # user_first_name = call.from_user.first_name
    if call.from_user.id not in models.User.objects.distinct("user_id"):
        user_obj = models.User(**{"user_id": call.from_user.id}).save()
    else:
        user_obj = models.User.objects.get(user_id=call.from_user.id)
    product_obj = models.Product.objects.get(id=call.data.split('_')[1])
    models.Cart(**{"user": user_obj, "product": product_obj}).save()
    print(
        str("Пользователь: " + str(call.from_user.id) +
            " добавил в корзину товар: " + call.data.split('_')[1]))
Example #18
0
def reset_password(keyforreset):
    if 'username' in session: return redirect(url_for("index"))
    if models.User().fetch_userdoc(None, keyforreset):
        form = ResetPwform(request.form)
        form1 = Sign_upform(request.form)
        form2 = Sign_inform(request.form)
        return render_template("anonymous/resetpassword.html",
                               form=form,
                               form1=form1,
                               form2=form2)
    else:
        return redirect(url_for("send_email"))
Example #19
0
def create_gif():
    form = CreateGifform(request.form)
    boards_li = models.User().fetch_boards(session["username"])
    form.board.choices = [
        (index, board)
        for (index, board) in zip(range(1,
                                        len(boards_li) + 1), boards_li)
    ]  # 動的にoption要素の値を出力するための下処理
    source_url_encoded = urllib.quote_plus(
        request.args.get("source_url"))  # querystrigをURIエンコード

    if request.method == 'GET':
        return render_template("creategif.html",
                               form=form,
                               sign_in_username=session['username'],
                               source_url_encoded=source_url_encoded,
                               source_gifurl=request.args.get("source_gifurl"))

    if request.method == 'POST' and form.validate() and form.validate_tags(
            request.form.getlist("item[tags][]")):
        filename = "".join([
            random.choice(string.ascii_letters + string.digits + '_')
            for i in range(21)
        ]) + ".gif"
        dir = os.path.join(app.config['UPLOAD_FOLDER'], filename)
        urllib.urlretrieve(request.args.get("source_gifurl"), dir)
        agifjudge = Agifjudge(dir)

        if agifjudge.validate() == 'gif/create':  # アニメイトしていないor5M以上のGifの場合の分岐
            return render_template(
                "creategif.html",
                form=form,
                sign_in_username=session['username'],
                source_url_encoded=source_url_encoded,
                source_gifurl=request.args.get("source_gifurl"),
                gif_error=True)

        board = boards_li[int(request.form["board"]) - 1]
        models.Img().add(username=session["username"],
                         filename=filename,
                         description=form.description.data,
                         tags=request.form.getlist("item[tags][]"),
                         board=board,
                         from_externalurl=request.args.get("source_gifurl"))
        return redirect(url_for("index"))

    else:
        return render_template("creategif.html",
                               form=form,
                               sign_in_username=session['username'],
                               source_url_encoded=source_url_encoded,
                               source_gifurl=request.args.get("source_gifurl"))
Example #20
0
def change_password():
    form = ChangePwform(request.form)
    userdoc = models.User().fetch_userdoc({"username": session["username"]})
    if request.method == "GET":
        return render_template("change_password.html",
                               form=form,
                               sign_in_username=session["username"])

    if request.method == "POST" and form.validate():
        if not models.User().sign_in(session["username"], form.currentpw.data):
            return render_template(
                "change_password.html",
                form=form,
                sign_in_username=session["username"],
                current_pw_error=gettext(
                    u"Your current password was incorrectly. Please enter it again."
                ))
        models.User().update_pw(form.newpw.data, session["username"])
        return redirect(url_for("userboards", username=session['username']))
    else:
        return render_template("change_password.html",
                               form=form,
                               sign_in_username=session["username"])
Example #21
0
def userboards(username):
    userdoc = models.User().fetch_userdoc(username)
    if not userdoc: return abort(404)  # ユーザー名が登録されていない場合404へ

    userboards = models.User().fetch_userboards(username)
    if userboards:
        (userboards,
         cp) = itertools.tee(userboards)  # ユーザーボードのイテレータobjectのコピーを生成するため分割させる
        username = list(cp)[0][0]["username"]
    else:
        userboards = []

    if "username" not in session:
        return render_template("anonymous/userboards.html",
                               userboards=userboards,
                               useritem=userdoc,
                               form1=Sign_upform(request.form),
                               form2=Sign_inform(request.form))

    return render_template("userboards.html",
                           userboards=userboards,
                           sign_in_username=session["username"],
                           useritem=userdoc)
Example #22
0
def edit_userboard(username, board):
    boarddoc = models.Board().fetch_boarddoc(username, board)
    form = EditBoardform(request.form)
    if boarddoc['username'] != session['username']:
        return abort(404)  # ボードの管理ページに非管理者ユーザーが接続してきた場合404へ

    if request.method == "GET":
        return render_template("edit_userboard.html",
                               form=form,
                               boarddoc=boarddoc,
                               sign_in_username=session["username"],
                               placeho_board=boarddoc['board'],
                               placeho_description=boarddoc['description'])

    if request.method == "POST" and form.validate():
        (existing_boards,
         existing_ids) = models.User().fetch_boards(username, edit="edit")

        for (existing_board,
             existing_id) in zip(existing_boards,
                                 existing_ids):  # 既に存在しているボード名の場合の条件分岐
            if existing_board == form.board.data and existing_id != str(
                    boarddoc["_id"]):
                return render_template(
                    "edit_userboard.html",
                    form=form,
                    boarddoc=boarddoc,
                    placeho_board=boarddoc['board'],
                    sign_in_username=session["username"],
                    placeho_description=boarddoc['description'],
                    edit_board_error=gettext(u"This boardname is created"))

        models.Board().change_board(
            username=username,
            oldboard=board,
            newboard=form.board.data,
            description=form.description.data)  # Board Collectionの該当docをUpdate
        models.Img().change_board(
            username=username, oldboard=board,
            newboard=form.board.data)  # Img Collectionの該当docsをUpdate
        return redirect(
            url_for("userboard", username=username, board=form.board.data))
    else:
        return render_template("edit_userboard.html",
                               form=form,
                               boarddoc=boarddoc,
                               sign_in_username=session["username"],
                               placeho_board=boarddoc['board'],
                               placeho_description=boarddoc['description'])
Example #23
0
def add_product_to_cart(call):

    product = models.Product.objects(id=call.data.split('_')[1]).get()

    if not models.User.objects(user_id=str(call.from_user.id)):
        models.User(user_id=str(call.from_user.id),
                    user_name=call.from_user.username).save()

    user = models.User.objects(user_id=str(call.from_user.id)).get()
    if not user.show_cart:
        models.Cart(user=user).save()

    cart = models.Cart.objects(user=user.id, active=True).get()
    cart.add_to_cart(product)
    cart.save()

    bot.send_message(call.message.chat.id,
                     f'{product.title} добавлен в корзину')
Example #24
0
    def create_new_user(self, user_data):
        if 'role' in user_data:
            role = user_data['role']
        else:
            role = 'user'

        # check if user already exists
        user = self.get_user(user_data['username'])

        if user:
            return user.to_json_dict()

        # create new user
        password = PasswordGenerator.generate()
        print(password)

        load_finding_files = user_data.get('loadFindingFiles')

        user = models.User(username=user_data['username'],
                           password=password,
                           name=user_data['name'],
                           role=role,
                           email=user_data['email'],
                           created_on=datetime.now(),
                           load_finding_files=load_finding_files)

        db.session.add(user)
        db.session.commit()

        # clone the worklist file from the given user
        if 'clone_from_user' in user_data:
            clone_from = user_data['clone_from_user']

            worklist_file = os.path.join(self.worklist_dir,
                                         user_data['username'])

            copyfile(os.path.join(self.worklist_dir, clone_from),
                     worklist_file)
            self.load_user(user.username, user.name, worklist_file)

        user_dict = user.to_json_dict()
        user_dict['password'] = password

        return user_dict
Example #25
0
def regif(pagename):
    imgdoc = models.Img().fetch_imgdoc(pagename)
    if imgdoc["username"] == session["username"]:
        return abort(404)  # GifのRegifページに管理者ユーザーが接続してきた場合404へ

    form = Regifform(request.form)
    boards_li = models.User().fetch_boards(session["username"])
    form.board.choices = [
        (index, board)
        for (index, board) in zip(range(1,
                                        len(boards_li) + 1), boards_li)
    ]  # 動的にoption要素の値を出力するための下処理

    if request.method == "GET":
        return render_template("regif.html",
                               form=form,
                               item=imgdoc,
                               sign_in_username=session["username"])

    if request.method == "POST" and form.validate() and form.validate_tags(
            request.form.getlist("item[tags][]")):
        index = request.form["board"]
        tags = request.form.getlist("item[tags][]")
        description = request.form["description"]
        regifed_board = boards_li[int(index) - 1]
        fromimgid = str(imgdoc["fromimgid"]) if "fromimgid" in imgdoc else str(
            imgdoc["_id"])

        imgid = models.Img().add(username=session["username"],
                                 filename=imgdoc["filename"],
                                 description=description,
                                 tags=tags,
                                 fromimgid=fromimgid,
                                 board=regifed_board)

        return redirect(
            url_for("userboard",
                    username=session["username"],
                    board=regifed_board))
    else:
        return render_template("regif.html",
                               form=form,
                               item=imgdoc,
                               sign_in_username=session["username"])
Example #26
0
def receive_resetpassword():
    if request.is_xhr is True:
        data = request.form["data"]
        keyforreset = request.args.get("keyforreset")
        form = ResetPwform()
        dict = {}
        for i in data.split("&"):
            dict[i.split("=")[0]] = i.split("=")[1]
        (form.newpassword.data,
         form.verifypassword.data) = (dict["newpassword"],
                                      dict["verifypassword"])
        if form.validate():
            userdoc = models.User().update_pw(form.newpassword.data, None,
                                              keyforreset)  # 変更したユーザードキュメントを代入
            session["username"] = userdoc["username"]
            return jsonify(res="success")
        else:
            for field_name, field_errors in form.errors.items():
                for error in field_errors:
                    return jsonify(res="error", message=error)
Example #27
0
 def post(self):
     try:
         reqData = parser.parse_args()
         vPassword = _validators.checkPassword(reqData['password'])
         if _functions.resultError(vPassword):
             return vPassword.flaskResp()
         hashPassword = _auth.hashPassword(reqData['password'])
         if _functions.resultError(hashPassword):
             return hashPassword
         newRoundsMan = _models.User(
             username=reqData['username'],
             password=hashPassword,
         )
         newRoundsMan.save()
         return _functions.setModuleSuccess(
             payload='User created successfully', status=200).flaskResp()
     except Exception as e:
         return _functions.setModuleError(
             payload=e,
             error='Error crating new user, try it later...',
             status=500).flaskResp()
Example #28
0
def edit_gifpage(pagename):
    imgdoc = models.Img().fetch_imgdoc(pagename)
    if imgdoc["username"] != session["username"]:
        return abort(404)  # Gifの編集ページに非管理者ユーザーが接続してきた場合404へ

    form = EditGifform(request.form)
    boards_li = models.User().fetch_boards(session["username"])
    form.board.choices = [
        (index, board)
        for (index, board) in zip(range(1,
                                        len(boards_li) + 1), boards_li)
    ]  # 動的にoption要素の値を出力するための下処理

    if request.method == "GET":
        form.description.data = imgdoc["description"]
        return render_template("edit_gif.html",
                               form=form,
                               item=imgdoc,
                               sign_in_username=session["username"])

    if request.method == "POST" and form.validate() and form.validate_tags(
            request.form.getlist("item[tags][]")):
        tags = request.form.getlist("item[tags][]")

        index = request.form["board"]
        newboard = boards_li[int(index) - 1]
        description = request.form["description"]
        models.Img().change_board(pagename=pagename,
                                  newboard=newboard,
                                  tags=tags,
                                  description=description)  # 単一Gifのボード名変更
        return redirect(url_for("gifpage", pagename=pagename))
    else:
        return render_template("edit_gif.html",
                               form=form,
                               item=imgdoc,
                               sign_in_username=session["username"])
Example #29
0
def receive_uploaded_file():
    if request.is_xhr is True and request.method == "POST":
        if request.headers['Content-Type'] == 'application/octet-stream':
            filename = "".join([
                random.choice(string.ascii_letters + string.digits + '_')
                for i in range(21)
            ]) + ".gif"
            dir = os.path.join(app.config['UPLOAD_FOLDER'], filename)
            f = open(dir, 'wb')
            f.write(request.data)
            f.close()
            agifjudge = Agifjudge(dir, 'upload/receiver')
            if agifjudge.validate() == 'upload/receiver':
                return ""  # アニメイトしていないGifの場合の分岐

            models.Readyimg().add(session["username"], filename)
            boards = models.User().fetch_boards(session["username"])
            imgid = models.Readyimg().fetch_imgid(filename)

            return jsonify(success="success",
                           username=session['username'],
                           fname=filename,
                           boards=boards,
                           dataid=imgid)
Example #30
0
def init_db():
    from models import models
    Base.metadata.create_all(bind=engine)

    # 初期データ登録
    # ユーザ {email,名前、パスワード、トータルバッチ、トータルポイント}
    db_session.add(models.User("rakuten.com", "楽天パンダ", "hoge", 8, 1100))
    db_session.add(models.User("a.com", "木村太郎", "hoge", 3, 200))
    db_session.add(models.User("b.com", "木村花子", "hoge", 2, 200))
    db_session.add(models.User("c.com", "木本一郎", "hoge", 2, 200))
    db_session.add(models.User("panda.com", "お買い物パンダ", "hoge", 2, 200))
    db_session.add(models.User("cardman.com", "楽天カードマン", "hoge", 8, 1100))

    # 料理名 {料理名、ポイント数}
    db_session.add(models.Meal_content("カレー", 100))
    db_session.add(models.Meal_content("餃子", 100))
    db_session.add(models.Meal_content("チャーハン", 100))
    db_session.add(models.Meal_content("ビーフストロガノフ", 100))
    db_session.add(models.Meal_content("味噌汁", 100))
    db_session.add(models.Meal_content("ゴーヤチャンプル", 100))
    db_session.add(models.Meal_content("親子丼", 100))
    db_session.add(models.Meal_content("そば", 100))
    db_session.add(models.Meal_content("うどん", 100))
    db_session.add(models.Meal_content("卵焼き", 100))
    db_session.add(models.Meal_content("ラーメン", 100))
    db_session.add(models.Meal_content("サラダ", 100))
    db_session.add(models.Meal_content("お茶漬け", 100))
    db_session.add(models.Meal_content("たけのこご飯", 100))
    db_session.add(models.Meal_content("オムライス", 100))

    # ポイント獲得 {ユーザid、獲得ポイント、日付}
    db_session.add(models.Point_user(1, 100, '2020-09-01'))
    db_session.add(models.Point_user(1, 100, '2020-09-02'))
    db_session.add(models.Point_user(1, 100, '2020-09-02'))
    db_session.add(models.Point_user(6, 100, '2020-09-02'))
    db_session.add(models.Point_user(6, 100, '2020-09-03'))
    db_session.add(models.Point_user(6, 100, '2020-09-04'))
    db_session.add(models.Point_user(1, 100, '2020-09-04'))
    db_session.add(models.Point_user(1, 100, '2020-09-05'))
    db_session.add(models.Point_user(6, 100, '2020-09-05'))
    db_session.add(models.Point_user(6, 100, '2020-09-05'))
    db_session.add(models.Point_user(6, 100, '2020-09-06'))
    db_session.add(models.Point_user(6, 100, '2020-09-06'))
    db_session.add(models.Point_user(6, 100, '2020-09-07'))
    db_session.add(models.Point_user(6, 100, '2020-09-07'))
    db_session.add(models.Point_user(6, 100, '2020-09-07'))
    db_session.add(models.Point_user(6, 100, '2020-09-08'))
    db_session.add(models.Point_user(2, 100, '2020-09-08'))
    db_session.add(models.Point_user(3, 100, '2020-09-08'))
    db_session.add(models.Point_user(4, 100, '2020-09-08'))
    db_session.add(models.Point_user(5, 100, '2020-09-08'))
    db_session.add(models.Point_user(1, 100, '2020-09-08'))
    db_session.add(models.Point_user(1, 100, '2020-09-08'))
    db_session.add(models.Point_user(1, 100, '2020-09-08'))
    db_session.add(models.Point_user(1, 100, '2020-09-09'))
    db_session.add(models.Point_user(1, 100, '2020-09-09'))
    db_session.add(models.Point_user(1, 100, '2020-09-09'))
    db_session.add(models.Point_user(2, 100, '2020-09-09'))
    db_session.add(models.Point_user(3, 100, '2020-09-09'))
    db_session.add(models.Point_user(4, 100, '2020-09-09'))
    db_session.add(models.Point_user(5, 100, '2020-09-09'))

    # ポスト {ユーザid、mealid1~5、画像保存先URL、レシピURL、コメント、投稿時間}
    # カレー
    db_session.add(
        models.Post(
            1, 1, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/00909f7aad976843392a084534cefa02933ac089.53.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1730000030/?l-id=recipe_list_detail_recipe",
            "おいしかった", "2020-09-01 19:08:24"))
    db_session.add(
        models.Post(
            1, 1, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/d5e4d49c509fc535570a5757133353ed195ce795.32.1.1.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1730000030/?l-id=recipe_list_detail_recipe",
            "おいしかった", "2020-09-02 18:12:44"))
    db_session.add(
        models.Post(
            1, 1, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/fa3117b7037beaf99e2576983ddfce2fc6772063.94.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1050010613/?l-id=recipe_list_detail_recipe",
            "おいしかった", "2020-09-02 15:28:34"))
    db_session.add(
        models.Post(
            6, 1, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/3afca6116d09b0fbea3205036a15501ccf702099.46.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1730000014/?l-id=recipe_list_detail_recipe",
            "おいしかった", "2020-09-02 21:05:28"))
    db_session.add(
        models.Post(
            6, 1, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/0f2ac2514732d18ee5761e44c157d65f6be80723.32.1.1.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1050010613/?l-id=recipe_list_detail_recipe",
            "おいしかった", "2020-09-03 10:08:24"))
    db_session.add(
        models.Post(
            6, 1, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/cdc775f860420a48e44a9888acada13a93031b25.81.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1200010691/?l-id=recipe_list_detail_recipe",
            "おいしかった", "2020-09-04 12:43:12"))
    db_session.add(
        models.Post(
            1, 1, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/b954be62b6060d6fc88800bbc23b24a9fb77a8b5.84.1.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1800000034/?l-id=recipe_list_detail_recipe",
            "おいしかった", "2020-09-04 19:57:51"))
    db_session.add(
        models.Post(
            1, 1, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/d63aee84c9a1bfd1342a301da776bd2480b3b9b3.83.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1810004197/?l-id=recipe_list_detail_recipe",
            "おいしかった", "2020-09-05 17:39:27"))
    db_session.add(
        models.Post(
            6, 1, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/143e054b129be9e7a615dffe2cad48933e13ff4a.78.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1740010600/?l-id=recipe_list_detail_recipe",
            "おいしかった", "2020-09-05 22:01:21"))

    db_session.add(
        models.Post(
            6, 2, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/8f1149dce961d89981efc54d3aea0911853c69c4.46.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1050005813/", "おいしかった",
            "2020-09-05 12:43:12"))
    db_session.add(
        models.Post(
            6, 3, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/d91df891dd7723749e0e8ef520af3960d899ef15.12.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1240018924/", "まずかった",
            "2020-09-06 19:57:51"))
    db_session.add(
        models.Post(
            6, 4, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/66e9e6a54c7015b255ba8b34b6b37aa349b3c15d.45.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1030011769/", "まずかった",
            "2020-09-06 19:08:24"))
    db_session.add(
        models.Post(
            6, 5, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/bf49fbc90f4523eb8943c540f34e94a4b6d816f7.36.2.3.2.jpg?thum=58",
            "https://www.kurashiru.com/recipes/7ebf6849-4961-48e4-8fd1-3ff54ad1d5f5",
            "まずかった", "2020-09-07 17:39:27"))
    db_session.add(
        models.Post(
            6, 6, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/a5fe503e18f2f5abfe27357997b9dd67ceab4db2.74.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1310001611/", "まずかった",
            "2020-09-07 22:01:21"))
    db_session.add(
        models.Post(
            6, 7, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/a381a1be986ee90661a4a9de3ba9abd8dede698c.08.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1190004346/", "まずかった",
            "2020-09-07 15:28:34"))
    db_session.add(
        models.Post(
            6, 8, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/49b7e752f7fb56f4abf96bcf2bd21f174ffa5576.11.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1560003298/?l-id=recipe_list_detail_recipe",
            "まずかった", "2020-09-08 19:08:24"))

    db_session.add(
        models.Post(
            2, 9, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/ae8230dcc14750ad02bda59d3b042ec9d4fa74d0.91.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1380004305/?l-id=recipe_list_detail_recipe",
            "まずかった", "2020-09-08 22:01:21"))
    db_session.add(
        models.Post(
            3, 10, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/8ba3daadf08faa47e4606e49efb5b0373e5ba166.29.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1270005906/", "まずかった",
            "2020-09-08 17:39:27"))
    db_session.add(
        models.Post(
            4, 11, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/10c8b5fa25a31a189f4b7f959332879ded3c0a03.53.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1870009550/", "まずかった",
            "2020-09-08 15:28:34"))
    db_session.add(
        models.Post(
            5, 12, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/68e298e01d968acfc0d70e03ca0e8773f674777e.97.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1540011747/?l-id=recipe_list_detail_recipe",
            "まずかった", "2020-09-08 19:08:24"))

    #TODO 楽天パンダ用に6つ
    db_session.add(
        models.Post(
            1, 2, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/cec263837c9c6768cf2a0681d5821560c9004983.86.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1890007735/", "まずかった",
            "2020-09-07 22:01:21"))
    db_session.add(
        models.Post(
            1, 3, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/c25e04a0972d9a0645800dfe7384c710674f9616.01.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1600005392/", "まずかった",
            "2020-09-08 22:01:21"))
    db_session.add(
        models.Post(
            1, 4, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/1eca7aceac0c663e71f55123772d2307741256f0.00.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1450013465/", "まずかった",
            "2020-09-07 22:01:21"))
    db_session.add(
        models.Post(
            1, 5, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/15fd04051637c8010813fd95c1a512e24e10ea2c.82.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1310000340/?l-id=recipe_list_detail_recipe",
            "まずかった", "2020-09-07 22:01:21"))
    db_session.add(
        models.Post(
            1, 6, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/67ddf46d928560336de1891de6b822a87e7b60cb.91.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1390023051/?l-id=recipe_list_detail_recipe",
            "まずかった", "2020-09-08 22:01:21"))
    db_session.add(
        models.Post(
            1, 7, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/8034f7003601936adb77ac83859b6a11fb672110.02.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1800022074/?l-id=recipe_list_detail_recipe",
            "まずかった", "2020-09-07 22:01:21"))
    #TODO その他の4人が餃子を作る
    db_session.add(
        models.Post(
            2, 2, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/a10fe08c1956a12082a04885c032bcbaef127021.18.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1970005448/", "まずかった",
            "2020-09-08 22:01:21"))
    db_session.add(
        models.Post(
            3, 2, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/c60304f1db698d6a98f29cd6fec74bd9f75a46f1.83.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1620000309/?l-id=recipe_list_detail_recipe",
            "まずかった", "2020-09-08 22:01:21"))
    db_session.add(
        models.Post(
            4, 2, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/5f143bd45e4552b55ceb47a5302ab315f697d029.02.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1230000935/?l-id=recipe_list_detail_recipe",
            "まずかった", "2020-09-08 22:01:21"))
    db_session.add(
        models.Post(
            5, 2, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/97f528bc5501754bce0045aa94752be2e280d2d3.40.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1150003162/?l-id=recipe_list_detail_recipe",
            "まずかった", "2020-09-08 22:01:21"))
    #カレーを別の人が作る
    db_session.add(
        models.Post(
            2, 1, None, None, None, None,
            "https://jp.rakuten-static.com/recipe-space/d/strg/ctrl/3/fa3117b7037beaf99e2576983ddfce2fc6772063.94.2.3.2.jpg?thum=58",
            "https://recipe.rakuten.co.jp/recipe/1080009668/?l-id=recipe_list_detail_recipe",
            "おいしかった", "2020-09-09 11:28:34"))

    # 料理履歴 {meal_id、ユーザid、ポストid}
    #TODO つじつま合わせ
    db_session.add(models.Cook_history(1, 1, 1))
    db_session.add(models.Cook_history(1, 1, 2))
    db_session.add(models.Cook_history(1, 1, 3))
    db_session.add(models.Cook_history(1, 6, 4))
    db_session.add(models.Cook_history(1, 6, 5))
    db_session.add(models.Cook_history(1, 6, 6))
    db_session.add(models.Cook_history(1, 1, 7))
    db_session.add(models.Cook_history(1, 1, 8))
    db_session.add(models.Cook_history(1, 6, 9))
    db_session.add(models.Cook_history(2, 6, 10))
    db_session.add(models.Cook_history(3, 6, 11))
    db_session.add(models.Cook_history(4, 6, 12))
    db_session.add(models.Cook_history(5, 6, 13))
    db_session.add(models.Cook_history(6, 6, 14))
    db_session.add(models.Cook_history(7, 6, 15))
    db_session.add(models.Cook_history(8, 6, 16))
    db_session.add(models.Cook_history(9, 2, 17))
    db_session.add(models.Cook_history(10, 3, 18))
    db_session.add(models.Cook_history(11, 4, 19))
    db_session.add(models.Cook_history(12, 5, 20))

    #TODO つじつま合わせ
    db_session.add(models.Cook_history(2, 1, 21))
    db_session.add(models.Cook_history(3, 1, 22))
    db_session.add(models.Cook_history(4, 1, 23))
    db_session.add(models.Cook_history(5, 1, 24))
    db_session.add(models.Cook_history(6, 1, 25))
    db_session.add(models.Cook_history(7, 1, 26))

    db_session.add(models.Cook_history(2, 2, 27))
    db_session.add(models.Cook_history(2, 3, 28))
    db_session.add(models.Cook_history(2, 4, 29))
    db_session.add(models.Cook_history(2, 5, 30))

    db_session.add(models.Cook_history(1, 2, 31))
    # フォローフォロワー関係 {フォローid、フォロワーid}
    db_session.add(models.User_relation(2, 6))
    db_session.add(models.User_relation(6, 2))
    db_session.add(models.User_relation(6, 3))
    db_session.add(models.User_relation(6, 4))
    db_session.add(models.User_relation(1, 3))
    db_session.add(models.User_relation(2, 1))
    db_session.add(models.User_relation(4, 1))

    # バッジ数 {ユーザid、料理id、レベル}
    db_session.add(models.Badges(1, 1, 2))
    db_session.add(models.Badges(1, 2, 1))
    db_session.add(models.Badges(1, 3, 1))
    db_session.add(models.Badges(1, 4, 1))
    db_session.add(models.Badges(1, 5, 1))
    db_session.add(models.Badges(1, 6, 1))
    db_session.add(models.Badges(1, 7, 1))
    db_session.add(models.Badges(6, 1, 1))
    db_session.add(models.Badges(6, 2, 1))
    db_session.add(models.Badges(6, 3, 1))
    db_session.add(models.Badges(6, 4, 1))
    db_session.add(models.Badges(6, 5, 1))
    db_session.add(models.Badges(6, 6, 1))
    db_session.add(models.Badges(6, 7, 1))
    db_session.add(models.Badges(6, 8, 1))
    db_session.add(models.Badges(2, 9, 1))
    db_session.add(models.Badges(3, 10, 1))
    db_session.add(models.Badges(4, 11, 1))
    db_session.add(models.Badges(5, 12, 1))
    db_session.add(models.Badges(2, 2, 1))
    db_session.add(models.Badges(3, 2, 1))
    db_session.add(models.Badges(4, 2, 1))
    db_session.add(models.Badges(5, 2, 1))
    db_session.add(models.Badges(2, 1, 1))

    db_session.commit()