コード例 #1
0
def get_rule(trash_name):
    response = dict()
    try:
        # full match 
        trashes = db_session.query(Trash).filter(Trash.name==trash_name)
        if trashes.count()!=1:
            search_name = '%' + trash_name  # 後方一致
            trashes = db_session.query(Trash).filter(Trash.name.like(search_name)).limit(10)
        if trashes.count()>=1:
            trash_list = []
            for trash in trashes:
                trash_dic = dict()
                trash_dic["trash_name"] = trash.name
                categories = []
                for rule in trash.throw_rules:
                    rule_dic = dict()
                    rule_dic['id'] = rule.category.category_id
                    rule_dic['category_name'] = rule.category.name
                    categories.append(rule_dic)
                trash_dic["categories"] = categories
                trash_dic["detail"] = trash.detail
                trash_list.append(trash_dic)          
            response["result"] = trash_list
            response["code"] = 200
        else:
            response = error_message(204)
    except:
        response = error_message(204)
    return jsonify(response)
コード例 #2
0
def edit_update(title):
    if ("name" in session):
        if (not session["name"] == None):
            app.add_template_global(name="status", f="login")
            post = db_session.query(BlogContent).filter_by(title=title).first()
            if post:
                if (request.form["title"]) and (request.form["body"]):
                    new_title = request.form["title"]
                    new_body = request.form["body"]
                    if (title == new_title):
                        post.body = new_body
                        db_session.commit()
                        return redirect(url_for("post", title=title))
                    else:
                        post_check = db_session.query(BlogContent).filter_by(
                            title=new_title).first()
                        if post_check:
                            message = new_title + "は既に使われています"
                            return render_template("edit_post.html",
                                                   post=post_check,
                                                   message=message)
                        else:
                            post.title = new_title
                            post.body = new_body
                            db_session.commit()
                            return redirect(url_for("post", title=new_title))
                else:
                    return redirect(url_for("edit", title=title))
            else:
                return redirect(url_for("index"))
    else:
        return redirect(url_for("login"))
コード例 #3
0
def monthly_point_ranking_json():
    try:
        # とりあえず全ユーザー送る
        # monthly_pointsの降順でソート
        users = db_session.query(User.user_id, User.name,
                                 User.total_badges).all()
        user_list = []
        for user in users:
            user_id, name, total_badges = user
            user_point_history = PointUser.query.filter(
                PointUser.user_id == user_id).all()
            points = 0
            for data in user_point_history:
                if (int(data.get_date[5:7]) == datetime.datetime.now().month):
                    points += data.point
            user_list.append((user_id, name, total_badges, points))

        user_list.sort(key=lambda x: x[3], reverse=True)

        result_list = []
        for user in user_list:
            user_id, name, total_badges, monthly_points = user
            user_dic = {
                'user_id': user_id,
                'name': name,
                'badge': total_badges,
                'point': monthly_points,
            }
            #  [{user_id, name, badge, point}, {user_id, name, badge, point}, {…}]のようにレスポンス
            result_list.append(user_dic)
        return jsonify(results=result_list)
    except Exception as e:
        abort(404, {'code': 'Not found', 'message': str(e)})
コード例 #4
0
def meal_ranking_json():
    try:
        # CookHistoryから人気料理ランキングを取得
        # 各meal_idをcountして個数の降順でソート
        # meal_idからmeal_nameを取得
        import collections
        hists = db_session.query(CookHistory.meal_id).all()
        hists = list(collections.Counter(hists).items())
        hists.sort(key=lambda x: x[1], reverse=True)
        count_list = []
        for hist in hists:
            meal_id, count = hist
            meal_id = meal_id[0]
            if meal_id is None:
                continue
            meal_name = MealContent.query.filter(
                MealContent.meal_id == meal_id).all()[0].name
            count_dic = {
                'meal_id': meal_id,
                'meal_name': meal_name,
                'count': count,
            }
            count_list.append(count_dic)
        return jsonify(results=count_list)
    except Exception as e:
        abort(404, {'code': 'Not found', 'message': str(e)})
コード例 #5
0
def index(page=1):
    invoice_list, page_context = cloud_accounting.get_invoice_list(page)
    json.dumps(invoice_list)
    printed_invoices = set(
        [f.zoho_id for f in db_session.query(Factura).all()])
    return render_template('index.html',
                           invoices=invoice_list, printed=printed_invoices, page_context=page_context)
コード例 #6
0
def add_post():
    if ("name" in session):
        if (not session["name"] == None):
            app.add_template_global(name="status", f="login")
            if (request.form["title"]) and (request.form["body"]):
                title = request.form["title"]
                body = request.form["body"]
                check_title = db_session.query(BlogContent).filter_by(
                    title=title).first()
                if check_title:
                    message = title + "は既に使われています"
                    return render_template("add_post.html",
                                           message=message,
                                           title=title,
                                           body=body)
                else:
                    post_data = BlogContent(title, body)
                    db_session.add(post_data)
                    db_session.commit()
                    return redirect(url_for("post", title=title))
            else:
                if request.form["title"]:
                    return render_template("add_post.html",
                                           title=request.form["title"])
                if request.form["body"]:
                    return render_template("add_post.html",
                                           body=request.form["body"])
                if (not request.form["title"]) and (not request.form["body"]):
                    return redirect(url_for("add"))
    else:
        return redirect(url_for("login"))
コード例 #7
0
def followee_total_point_ranking_json():
    try:
        # total_pointsの降順でソート
        # user_id = 2 # とりあえず2
        user_id = get_user_id()
        flwee = [user_id]
        flwee_raw = UserRelation.query.filter(
            UserRelation.follower_id == user_id).all()
        for f in flwee_raw:
            flwee.append(f.followed_id)
        # この時点でflwee = [2,1]
        flwee = db_session.query(User).filter(User.user_id.in_(flwee)).all()
        flwee_users = []
        for user in flwee:
            flwee_users.append((user.user_id, user.name, user.total_badges,
                                user.total_points))
        flwee_users.sort(key=lambda x: x[3], reverse=True)

        user_list = []
        for user in flwee_users:
            user_id, name, total_badges, total_points = user
            user_dic = {
                'user_id': user_id,
                'name': name,
                'badge': total_badges,
                'point': total_points,
            }
            #  [{user_id, name, badge, point}, {user_id, name, badge, point}, {…}]のようにレスポンス
            user_list.append(user_dic)
        return jsonify(results=user_list)
    except Exception as e:
        abort(404, {'code': 'Not found', 'message': str(e)})
コード例 #8
0
def delete(title):
    if ("name" in session):
        if (not session["name"] == None):
            app.add_template_global(name="status", f="login")
            post_check = db_session.query(BlogContent).filter_by(
                title=title).first()
            if post_check:
                post = db_session.query(BlogContent).filter_by(
                    title=title).first()
                db_session.delete(post)
                db_session.commit()
                return redirect(url_for("index"))
            else:
                return redirect(url_for("index"))
    else:
        return redirect(url_for("login"))
コード例 #9
0
def index():
    # if ("name" in session):
    #     if (not session["name"] == None):
    #         app.add_template_global(name="status",f="login")
    # else:
    app.add_template_global(name="status", f="n")
    posts = db_session.query(BlogContent).order_by(BlogContent.id.desc())
    return render_template("index.html", posts=posts)
コード例 #10
0
 def rate(self, request):
     rating = request.form.get('rate')
     ratingText = request.form.get('text')
     ratingText = None if ratingText == '' else ratingText
     db_session.add(ShopRatings(rating, ratingText))
     db_session.commit()
     self.avg_rating = db_session.query(
         func.avg(ShopRatings.rating).label('average')).first().average
     return jsonify(status='success')
コード例 #11
0
def index():
    if "user_name" in session:
        name = session["user_name"]
        #all_contents = db_session.query(PaperContent.title_en, PaperContent.date).all()
        latest = db_session.query(func.max(PaperContent.date),
                                  PaperContent.url).all()  #最新日付とそのURLを取得
        latest_contents = db_session.query(
            PaperContent.title_en, PaperContent.title_jp, PaperContent.abst_en,
            PaperContent.abst_jp, PaperContent.date, PaperContent.id,
            PaperContent.prob, PaperContent.sol, PaperContent.app,
            PaperContent.prob_est, PaperContent.sol_est,
            PaperContent.app_est).filter(PaperContent.url == latest[0]
                                         [1]).all()  #最新URLと同じURLをDBから引っ張ってくる
        return render_template("index.html",
                               name=name,
                               all_contents=latest_contents)
    else:
        return redirect(url_for("top"))
コード例 #12
0
def login_check():
    name = request.form["name"]
    password = request.form["password"]
    user = db_session.query(Users).filter_by(name=name,
                                             password=password).first()
    if user:
        session["name"] = name
        return redirect(url_for("index"))
    else:
        return render_template("login.html", message="NameまたはPasswordが違います")
コード例 #13
0
def post(title):
    if ("name" in session):
        if (not session["name"] == None):
            app.add_template_global(name="status", f="login")
    else:
        app.add_template_global(name="status", f="n")
    post_data = db_session.query(BlogContent).filter_by(title=title).first()
    if post_data:
        return render_template("post.html", post=post_data)
    else:
        return render_template("notfound.html")
コード例 #14
0
ファイル: app.py プロジェクト: Genmai-Cha/tech-jam-yanbaru
def patch_comments_edit(comment_id):
    comment = db_session.query(Comments).filter(
        Comments.id == comment_id).first()
    comment.content = request.form['content']
    db_session.add(comment)
    db_session.commit()

    return jsonify({
        'id': comment.id,
        'question_id': comment.question_id,
        'content': comment.content,
    })
コード例 #15
0
ファイル: app.py プロジェクト: oonya/familyFavorite
def show_stock(family_id):
    res = {"twi_link": "", "twi_img": ""}
    s = db_session.query(Stocks).filter(Stocks.family_id == family_id).first()

    if s:
        res["twi_link"] = s.twi_link
        res["twi_img"] = s.twi_img
    else:
        res["twi_link"] = "nothing"
        res["twi_img"] = "nothing"

    return res
コード例 #16
0
def edit(title):
    if ("name" in session):
        if (not session["name"] == None):
            app.add_template_global(name="status", f="login")
            post_check = db_session.query(BlogContent).filter_by(
                title=title).first()
            if post_check:
                return render_template("edit_post.html", post=post_check)
            else:
                return redirect(url_for("index"))
    else:
        return redirect(url_for("login"))
コード例 #17
0
def learn():
    #全データをDBから吸い出し
    all_data = db_session.query(PaperContent.abst_en, PaperContent.prob,
                                PaperContent.sol, PaperContent.app).all()
    #ML.pyのlearning関数へ引き渡し、前処理、学習、モデルの保存
    model_score = learning(all_data)
    print("モデルの各カテゴリの精度は" + str(model_score) + "です。")

    #
    #

    return redirect(url_for("index"))
コード例 #18
0
ファイル: app.py プロジェクト: oonya/familyFavorite
def delete_stock():
    # return jsonify(dict(request.headers))

    # family_id = request.form.get('family_id')

    f = request.get_data()
    form_data = json.loads(f.decode('utf-8'))
    family_id = form_data['family_id']

    s = db_session.query(Stocks).filter(Stocks.family_id == family_id).first()
    db_session.delete(s)
    db_session.commit()

    return show_stock(family_id)
コード例 #19
0
ファイル: app.py プロジェクト: oonya/familyFavorite
def show(family_id):
    with open('responses/config.json',
              mode="r",
              buffering=-1,
              encoding='utf-8') as f:
        res = json.loads(f.read())

    all_family_member = db_session.query(Affiliation).filter(
        Affiliation.family_id == family_id).all()

    for m in all_family_member:
        res['twi_id'].append(m.twi_id)

    return jsonify(res)
コード例 #20
0
def reset():
    if request.method == "POST":
        reset = request.form["reset"]
        if reset == "reset":
            db_session.query(Teacher).delete()
            db_session.query(Lecture).delete()
            db_session.query(Review).delete()
            db_session.commit()
    return redirect(url_for("teachers"))
コード例 #21
0
ファイル: app.py プロジェクト: oonya/familyFavorite
def deltee_config():
    f = request.get_data()
    form_data = json.loads(f.decode('utf-8'))

    print("\n\n\n", form_data)

    family_id = form_data['family_id']
    twi_id = form_data['twi_id']

    a = db_session.query(Affiliation).filter(
        Affiliation.family_id == family_id).all()
    for m in a:
        if m.twi_id == twi_id:
            db_session.delete(m)
            db_session.commit()

    return show(family_id)
コード例 #22
0
def followee_monthly_point_ranking_json():
    try:
        # とりあえず全ユーザー送る
        # monthly_pointsの降順でソート
        # user_id = 2 # とりあえず2
        user_id = get_user_id()
        flwee = [user_id]
        flwee_raw = UserRelation.query.filter(
            UserRelation.follower_id == user_id).all()
        for f in flwee_raw:
            flwee.append(f.followed_id)
        # この時点でflwee = [2,1]
        flwee = db_session.query(User).filter(User.user_id.in_(flwee)).all()
        flwee_users = []
        for user in flwee:
            flwee_users.append((user.user_id, user.name, user.total_badges))

        user_list = []
        for user in flwee_users:
            user_id, name, total_badges = user
            user_point_history = PointUser.query.filter(
                PointUser.user_id == user_id).all()
            points = 0
            for data in user_point_history:
                if (int(data.get_date[5:7]) == datetime.datetime.now().month):
                    points += data.point
            user_list.append((user_id, name, total_badges, points))

        user_list.sort(key=lambda x: x[3], reverse=True)

        result_list = []
        for user in user_list:
            user_id, name, total_badges, monthly_points = user
            user_dic = {
                'user_id': user_id,
                'name': name,
                'badge': total_badges,
                'point': monthly_points,
            }
            #  [{user_id, name, badge, point}, {user_id, name, badge, point}, {…}]のようにレスポンス
            result_list.append(user_dic)
        return jsonify(results=result_list)
    except Exception as e:
        abort(404, {'code': 'Not found', 'message': str(e)})
コード例 #23
0
def throw_rule(trash_name):
    response = dict()
    try:
        trash = db_session.query(Trash).filter(Trash.name==trash_name).first()
        categories = []
        for rule in trash.throw_rules:
            tmp = dict()
            tmp['id'] = rule.category.category_id
            tmp['name'] = rule.category.name
            categories.append(tmp)
        
        rule = dict()
        rule['categories'] = categories
        rule['detail'] = trash.detail
        response["rule"] = rule
        response["code"] = 200
    except:
        response = error_message(204)
    return jsonify(response)
コード例 #24
0
def add_record(record):

    time = datetime.now()

    trash_list = [record[GARBAGE_NAME]]
    if record[SIMILAR_WORDS] != "":
        trash_list.extend(record[SIMILAR_WORDS].split(' '))

    if record[OTHER_RULE] != "":
        category_list = [record[RULE], record[OTHER_RULE]]
    else:
        category_list = [record[RULE]]

    for trash_name in trash_list:
        # register trash
        trash = Trash()
        trash.name = trash_name
        trash.detail = record[HOW_TO]
        trash.created_at = time
        trash.updated_at = time
        db_session.add(trash)
        db_session.commit()

        # insert categories and throw_rules
        for category_name in category_list:
            category = db_session.query(Category).filter_by(
                name=category_name).first()
            if (category is None):
                category = Category()
                category.name = category_name
                category.created_at = time
                category.updated_at = time
                db_session.add(category)
                db_session.commit()

            throw_rule = ThrowRule()
            throw_rule.trash_id = trash.trash_id
            throw_rule.category_id = category.category_id
            throw_rule.created_at = time
            throw_rule.updated_at = time
            db_session.add(throw_rule)
            db_session.commit()
コード例 #25
0
def total_point_ranking_json():
    try:
        # とりあえず全ユーザー送る
        # total_pointsの降順でソート
        users = db_session.query(User.user_id, User.name).all()
        #users.sort(key=lambda x: x[3], reverse=True)
        user_list = []
        for user in users:
            user_id, name = user
            user_dic = {
                'user_id': user_id,
                'name': name,
                'badge': 0,
                'point': 0,
            }
            #  [{user_id, name, badge, point}, {user_id, name, badge, point}, {…}]のようにレスポンス
            user_list.append(user_dic)
        return jsonify(results=user_list)
    except Exception as e:
        abort(404, {'code': 'Not found', 'message': str(e)})
コード例 #26
0
ファイル: app.py プロジェクト: oonya/familyFavorite
def get_favorites(family_id):
    with open('responses/get_favorites.json',
              mode="r",
              buffering=-1,
              encoding='utf-8') as f:
        res = json.loads(f.read())

    twi_ids = []
    all_family_member = db_session.query(Affiliation).filter(
        Affiliation.family_id == family_id).all()

    for m in all_family_member:
        twi_ids.append(m.twi_id)

    for twi_id in twi_ids:
        favorite_tweets = get_favorite_tweets(twi_id)
        hash = collect_favorite_img_tweet(favorite_tweets)
        # hash = store_cash(favorite_tweets)
        res["res"].extend(hash)

    return jsonify(res)
コード例 #27
0
ファイル: main.py プロジェクト: Tonoyama/cafe_page_nginx
def getCurrData():
    users = db_session.query(SensorCurrent).first()

    j = users.j_merged_num
    z = users.z_merged_num
    date = datetime.now()

    print(j, z, date)
    data = SensorCurrent(j ,z , date)

    db_session.add(data)
    db_session.commit()
    db_session.close()
    people = SensorCurrent.query.first()

    json_data = {
        'j_merged_num': people.j_merged_num,
        'z_merged_num': people.z_merged_num
    }

    print(json_data)
    return jsonify(Result=json.dumps(json_data))
コード例 #28
0
ファイル: app.py プロジェクト: oonya/familyFavorite
def update():
    # family_id = request.form['family_id']
    # twi_id = request.form['twi_id']

    f = request.get_data()
    form_data = json.loads(f.decode('utf-8'))

    print("\n\n\n", form_data)

    family_id = form_data['family_id']
    twi_id = form_data['twi_id']

    all_family_member = db_session.query(Affiliation).filter(
        Affiliation.family_id == family_id).all()
    for m in all_family_member:
        if m.twi_id == twi_id:
            return jsonify({"res": "already twi_id used"})

    a_object = Affiliation(family_id=family_id, twi_id=twi_id)
    db_session.add(a_object)
    db_session.commit()

    return show(family_id)
コード例 #29
0
ファイル: app.py プロジェクト: oonya/familyFavorite
def stock():
    # family_id = request.form['family_id']
    # twi_link = request.form['twi_link']

    f = request.get_data()
    form_data = json.loads(f.decode('utf-8'))
    family_id = form_data['family_id']
    twi_link = form_data['twi_link']
    twi_img = form_data['twi_img']

    s = db_session.query(Stocks).filter(Stocks.family_id == family_id).first()
    if not s:
        s_object = Stocks(family_id=family_id,
                          twi_link=twi_link,
                          twi_img=twi_img)
        db_session.add(s_object)
        db_session.commit()
    else:
        s.twi_link = twi_link
        s.twi_img = twi_img
        db_session.commit()

    return show_stock(family_id)
コード例 #30
0
def weekly_meal_ranking_json():
    try:
        # CookHistoryから人気料理ランキングを取得
        # 各meal_idをcountして個数の降順でソート
        # meal_idからmeal_nameを取得
        import collections
        hists = db_session.query(CookHistory.meal_id,
                                 CookHistory.post_id).all()
        meal_list = []
        for hist in hists:
            meal_id, post_id = hist
            if post_id is None or meal_id is None:
                continue
            create_at = Post.query.filter(
                Post.post_id == post_id).all()[0].create_at
            d_create_at = datetime.date(year=int(create_at[:4]),
                                        month=int(create_at[5:7]),
                                        day=int(create_at[8:10]))
            if abs(datetime.date.today() - d_create_at).days < 7:
                meal_list.append(meal_id)

        hists = list(collections.Counter(meal_list).items())
        hists.sort(key=lambda x: x[1], reverse=True)
        count_list = []
        for hist in hists:
            meal_id, count = hist
            meal_name = MealContent.query.filter(
                MealContent.meal_id == meal_id).all()[0].name
            count_dic = {
                'meal_id': meal_id,
                'meal_name': meal_name,
                'count': count,
            }
            count_list.append(count_dic)
        return jsonify(results=count_list)
    except Exception as e:
        abort(404, {'code': 'Not found', 'message': str(e)})