コード例 #1
0
def send_product_notification():
    from functions.sqlquery import sql_query2
    from pyfcm import FCMNotification
    user_id = request.form['user_id']
    prod_id = sql_query2(
        ''' SELECT * from user_side_notifications where user_id = ?''',
        (user_id, ))
    prod_id = prod_id[-1][1]
    #time = prod_id[0][1]
    # return jsonify(time)

    best_product = sql_query2(
        ''' SELECT name from product_table where product_id =?''', (prod_id, ))
    best_product = best_product[-1][0]

    time_id = get_time()

    # return "hora hai"
    push_service = FCMNotification(
        api_key=
        "AAAAYNJto2I:APA91bEHdYbm2mhUfGfBIWseFzintaOJgJDifgSyzJdfcZrCyUdLD9XPwSKlX6IMaOeXNMkdTSs52mGKVequsJ_JtdZcq-6e15L9UzjHhs2JaMhcHmpDPgBu0D0bmPyXO2pqHa2Q0q0d"
    )
    registration_id = "f8bLCD9kaoI:APA91bGN7uLHIZyefhLFBLa_HvHedRH7sq-o-LFKelIEkV9NS_ZGCrFVUePsySHjaeZZoWREfRkwF6LEcF-Z1vYpzfybfGJb7hMIwfdknVQzPcneWMsBpFsLDIlw4A7QAzFSS9vO9lVL"
    message_title = "We think you will love"
    message_body = best_product  # + time_id
    result = push_service.notify_single_device(registration_id=registration_id,
                                               message_title=message_title,
                                               message_body=message_body)
    return jsonify(result)
コード例 #2
0
def getUserTime():
    user_id = request.form['user_id']
    notif_category = request.form['notif_category']
    #ab time_id ek hi aana chaiye nahi to agar multiple aaya to algo waise aayega
    #abhi lets take only one for each category and overwrite agar jyaada liya to
    #ek hi aayega number mere pass
    time_id = request.form['time_id']
    #time_ids are derived from time_slot.csv
    from functions.sqlquery import sql_query2
    results = sql_query2(
        ''' INSERT INTO user_time (user_id, notif_category, time_id) VALUES (?,?,?)''',
        (user_id, notif_category, time_id))
    results2 = sql_query2(''' SELECT * from user_time WHERE user_id = ? ''',
                          (user_id, ))
    return jsonify(results2)
コード例 #3
0
def sql_editlink():
    from functions.sqlquery import sql_query, sql_query2
    if request.method == 'GET':
        edname = request.args.get('edname')
        eresults = sql_query2(''' SELECT * FROM data_table where drink_name = ?''', (edname))
    results = sql_query(''' SELECT * FROM data_table''')
    return render_template('sqldatabase.html', eresults=eresults, results=results)
コード例 #4
0
ファイル: flask_app.py プロジェクト: binhbt/flask-sqlite3
def sql_editlink():
    from functions.sqlquery import sql_query, sql_query2
    if request.method == 'GET':
        word = request.args.get('word')
        # efname = request.args.get('efname')
        eresults1 = sql_query2(
            ''' SELECT DISTINCT * FROM words where word = ?''', (word, ))
        # Decode base 64
        eresults = []
        for result in eresults1:
            resultx = dict()
            payload = base64.decodestring(str(result['payload']))
            resultx['word'] = word
            resultx['payload'] = payload
            resultx['created_time'] = result['created_time']
            eresults.append(resultx)

    results1 = sql_query(''' SELECT * FROM words''')
    # Decode base 64
    results = []
    for result in results1:
        resultx = dict()
        payload = json.loads(
            base64.decodestring(str(result['payload']).encode()))
        mean = json.loads(base64.decodestring(str(payload['means']).encode()))
        resultx['payload'] = mean
        resultx['word'] = result['word']
        resultx['created_time'] = result['created_time']
        results.append(resultx)
    return render_template('sqldatabase.html',
                           eresults=eresults,
                           results=results)
コード例 #5
0
def sql_editlink():
    if request.method == 'GET':
        elname = request.args.get('elname')
        efname = request.args.get('efname')
        eresults = sql_query2(''' SELECT * FROM data_table where first_name = ? and last_name = ?''', (efname,elname))
    results = sql_query(''' SELECT * FROM data_table''')
    return render_template('sqldatabase.html', eresults=eresults, results=results)
コード例 #6
0
def register():
    from functions.sqlquery import sql_query2, sql_edit_insert

    msg = ''
    if request.method == 'POST' and 'username' in request.form and 'password' in request.form and 'email' in request.form:
        email = request.form['email']
        username = request.form['username']
        password = request.form['password']
        cursor = sql_query2(''' SELECT * FROM data_table where username = ?''',
                            (username, ))
        if len(cursor) > 0:
            msg = 'Account already exists!'
        elif not re.match(r'[A-Za-z0-9]+', username):
            msg = 'Username must contain only characters and numbers!'
        elif not re.search(r'^[a-z0-9]+[\._]?[a-z0-9]+[@]\w+[.]\w{2,3}$',
                           email):
            msg = 'Email must be a valid one!'
        elif not username or not password or not email:
            msg = 'Please fill out the form !'
        else:
            sql_edit_insert(
                'INSERT INTO data_table(email,username,password) VALUES (?, ?, ?)',
                (email, username, password))
            msg = 'You have successfully registered !'
    elif request.method == 'POST':
        msg = 'Please fill out the form !'
    return render_template('register.html', msg=msg)
コード例 #7
0
def getRecom(id):
    store = id
    #results = []
    from functions.sqlquery import sql_query2
    final_answer = []
    results = sql_query2(
        ''' SELECT product_2_id FROM data_table WHERE product_1_id = ? and factor > 0.5''',
        (store, ))
    #sirf dikhaneke liye

    for i in range(len(results)):
        var = results[i][0]
        answer = sql_query2(
            ''' SELECT * FROM product_table WHERE product_id = ?''', (var, ))
        final_answer.append(answer)
    return jsonify(final_answer)
コード例 #8
0
def sql_editlink():
    from functions.sqlquery import sql_query, sql_query2
    if request.method == 'GET':
        e_artist = request.args.get('e_artist')
        e_title = request.args.get('e_artist')
        e_results = sql_query2(''' SELECT * FROM record WHERE artist = ? and
        title = ?''', (e_artist,e_title))
    results = sql_query(''' SELECT * FROM record''')
    return render_template('sqldatabase.html', eresults=eresults,
            results=results)
コード例 #9
0
def query_Selected_Row():
    from functions.sqlquery import getAllDevices, sql_query2, getSortedDeviceID
    if request.method == 'GET':
        Selected_Device_ID = request.args.get('Selected_Device_ID')
        eresults = sql_query2('''select * from Device where device_ID = ? ''',
                              (Selected_Device_ID, ))
        dresults = getSortedDeviceID()
        return render_template('admin.html',
                               eresults=eresults,
                               dresults=dresults)
コード例 #10
0
ファイル: api.py プロジェクト: ntesh21/npnprrpn
def sql_editlink():
    from functions.sqlquery import sql_query, sql_query2
    if request.method == 'GET':
        elreply = request.args.get('elreply')
        efquery = request.args.get('efquery')
        eresults = sql_query2(
            ''' SELECT * FROM dataset where query = ? and reply = ?''',
            (efquery, elreply))
    results = sql_query(''' SELECT * FROM dataset''')
    return render_template('t_board.html', eresults=eresults, results=results)
コード例 #11
0
def profile(uname):
    #get account info
    if request.method == 'POST':
        old_last_name = request.form['old_last_name']
        old_first_name = request.form['old_first_name']
        last_name = request.form['last_name']
        first_name = request.form['first_name']
        school = request.form['school']
        degree = request.form['degree']
        field = request.form['field']
        year = request.form['year']
        current_employer = request.form['current_employer']
        job_title = request.form['job_title']
        user_name = request.form['user_name']
        contact = request.form['contact']
        location = request.form['location']
        sql_edit_insert(''' UPDATE data_table set first_name=?,last_name=?,school=?,degree=?,field=?,year=?,current_employer=?,job_title=?,user_name=?,contact=?,location=? WHERE user_name=? ''', (first_name,last_name,school,degree,field,year,current_employer,job_title,user_name,contact,location,user_name))
        msg = 'Updated, return to Home page!'
        aresults = sql_query2(''' SELECT * FROM data_table where user_name = ?''', (uname,))
        return render_template('profile.html', uname=user_name, aresults=aresults, msg=msg)
    else:
        msg=''
        aresults = sql_query2(''' SELECT * FROM data_table where user_name = ?''', (uname,))
        return render_template('profile.html', uname=uname, aresults=aresults, msg=msg)
コード例 #12
0
def sql_editlink():
    from functions.sqlquery import sql_query, sql_query2
    if request.method == 'GET':
        #elname = request.args.get('elname')
        edit_title = request.args.get('edit_title')

        #efname = request.args.get('efname')
        edit_date = request.args.get('edit_date')

        eresults = sql_query2(
            ''' SELECT * FROM data_table_2 where date = ? and title = ?''',
            (edit_date, edit_title))
    results = sql_query(''' SELECT * FROM data_table_2''')
    return render_template('update_page.html',
                           eresults=eresults,
                           results=results)
コード例 #13
0
def login():
    from functions.sqlquery import sql_query2

    msg = ''
    if request.method == 'POST' and 'username' in request.form and 'password' in request.form:
        username = request.form['username']
        password = request.form['password']
        room = request.form['room']
        cursor = sql_query2(
            'SELECT * FROM data_table WHERE username = ? AND password = ?',
            (username, password))
        if len(cursor) > 0:
            account = cursor[0]
            session['loggedin'] = True
            session['room'] = room
            session['username'] = account['username']
            msg = 'Logged in successfully !'
            return render_template('chat.html',
                                   name=account['username'],
                                   room=session['room'])
        else:
            msg = 'Incorrect username / password !'
    return render_template('login.html', msg=msg)
コード例 #14
0
def sql_editlink():
    from functions.sqlquery import sql_query, sql_query2, sql_query3
    if request.method == 'GET':
        egenus = request.args['egenus']
        especies = request.args['especies']
        ecomname = request.args['ecomname']
        eresults = sql_query2(
            ''' SELECT * FROM Flowers WHERE genus = ? AND species = ? ''',
            (egenus, especies))
        sightings_results = sql_query3(
            '''SELECT * FROM SIGHTINGS WHERE NAME=? ORDER BY SIGHTED DESC''',
            (ecomname, ), 10)
        for each in sightings_results:
            print(each['person'])

    flowers_table = sql_query('''SELECT * FROM Flowers''')
    sightings_table = sql_query('''SELECT * FROM Sightings''')

    return render_template('sqldatabase.html',
                           eresults=eresults,
                           sightings_results=sightings_results,
                           sightings_table=sightings_table,
                           flowers_table=flowers_table)
コード例 #15
0
def sql_database():

    global customer_cache
    global start_time
    count = 0
    while (True):
        # print(count)
        result_list = []
        extra_cust = []
        flag = False
        # if((time.time() - start_time)/(1000*60*60) >3 ):
        print((time.time() - start_time))
        if ((time.time() - start_time) > 5555):
            # print("*********************customer cache")
            customer_cache = []
            start_time = time.time()

        # print("ok")
        fname = ["akshata", "shreya"]

        #for testing purposes

        if (time.time() - start_time > 5):
            fname.append("POPO")

        # print(customer_cache)
        for name in fname:
            if (name not in customer_cache):
                flag = True
                # print("name*****************",name)
                extra_cust.append(name)

        # print("extra cust******",extra_cust)

        if (flag == True):
            # print("***************DB CALL********************")
            results = sql_query2(
                ''' SELECT person_id, first_name,last_name,firebase_id,IsSignificant,mobile FROM Customers_master where first_name in (%s)'''
                % ','.join('?' * len(extra_cust)), extra_cust)
            count += 1

            # print("Result*****",results)
            if (len(results) == 0):
                for name in extra_cust:
                    customer_cache.append(name)

            for result in results:

                result_dict = {
                    'ID': result['person_id'],
                    'firstname': result['first_name'],
                    'lastname': result['last_name'],
                    'firebaseid': result['firebase_id'],
                    'IsSignificant': result['IsSignificant'],
                    'mobile number': result['mobile']
                }
                if (len(customer_cache) == 0):
                    start_time = time.time()
                customer_cache.append(result['first_name'])
                result_list.append(result_dict)
                name = result_dict['firstname'] + result_dict['lastname']
                sql_edit_insert(
                    ''' INSERT INTO Customers (id,Name,IsSignificant,firebase_id, mobile) VALUES (?,?,?,?,?)''',
                    (result_dict['ID'], name, result_dict['IsSignificant'],
                     result_dict['firebaseid'], result_dict['mobile number']))
                extra_cust = []
コード例 #16
0
def sql_edit():
        from functions.sqlquery import sql_query2
        name = request.args.get('episode_name')
        episode_to_edit = sql_query2(''' SELECT * FROM got WHERE `episode name` = ?''', (name, ))
        return render_template('sqlform2.html', results=episode_to_edit)
コード例 #17
0
def getBest():
    #should implement after set period
    from pyfcm import FCMNotification
    user_id = int(request.form['user_id'])
    from functions.sqlquery import sql_query2, sql_query
    results = sql_query2(
        ''' SELECT search1_id, time_spent from searches where user_id = ?''',
        (user_id, ))
    results = results[-10:]

    df = pd.read_csv('products.csv',
                     usecols=[
                         'product_id', 'number_of_purchases', 'name',
                         'actual_price', 'original_price',
                         'discount_percentage', 'number_of_offers',
                         'seller_name'
                     ])[1:162]
    df["number_of_purchases"].fillna("0", inplace=True)
    df2 = pd.read_csv('products.csv',
                      usecols=['product_id', 'number_of_purchases'])[1:162]
    df2["number_of_purchases"].fillna("1", inplace=True)

    main_data = df.values.tolist()
    data2 = df2.values.tolist()

    for i in range(len(data2)):
        data2[i][0] = int(data2[i][0])
        data2[i][1] = int(data2[i][1])

    df3 = pd.read_csv('recommendations.csv')
    data3 = df3.values.tolist()
    for i in range(len(data3)):
        data3[i][0] = int(data3[i][0])
        data3[i][1] = int(data3[i][1])

    total = 0
    for i in range(len(data2)):
        total += data2[i][1]

    max_value = 0
    final_id = 1
    result_list = []
    for i in range(len(data2)):
        pro_id = data2[i][0]
        final_prob = 0
        every_result = []
        for j in range(len(results)):
            second_id = results[j][0]
            time_value = results[j][1]
            #ab inka intersection nikaalna padta
            intersect_value = sql_query2(
                ''' SELECT factor from 
                        data_table where product_1_id = ? 
                        and product_2_id = ?''', (pro_id, second_id))

            if not intersect_value:
                value = 0.1
            else:
                value = intersect_value[0][0]

            #time aayega abhi bas

            quantity_value = sql_query2(
                ''' SELECT number_of_purchases from 
                        product_table where product_id = ? ''', (second_id, ))
            quantity = quantity_value[0][0]

            # bayes_prob = probability of A intersection B * probability of purchase b
            ratio = quantity / total
            computed_value = math.log10(quantity)
            time_log = math.log10(time_value)
            #log of denominator jaruri nahi hai because nonetheless it manages
            #itself by minusing itself from

            bayes_prob = (computed_value) * (value) * (time_log)
            final_prob += bayes_prob

        shevat = sql_query2(
            ''' SELECT name from 
                        product_table where product_id = ? ''', (pro_id, ))
        every_result = [shevat[0][0], final_prob]

        result_list.append(every_result)

        if final_prob > max_value:
            max_value = final_prob
            final_id = pro_id

    #prod_id = sql_query2(''' SELECT name from product_table where product_id = ?''', (final_id,))
    #prod_id = prod_id[0][0]
    #return jsonify(prod_id)
    #ab we have that product with us. Lets see kya aaya
    from operator import itemgetter
    result_list = sorted(result_list, key=itemgetter(1))

    time_id = str(get_time())
    time = time_id[0:2] + time_id[3:5]

    from functions.sqlquery import sql_edit_insert
    return_value = sql_edit_insert(
        '''  INSERT INTO user_side_notifications (user_id, product_id, time_id) VALUES (?,?,?) ''',
        (user_id, final_id, time))
    #ye idhar hi end hoga
    return jsonify(result_list)
コード例 #18
0
def getDetails(id):
    store = id
    from functions.sqlquery import sql_query2
    results = sql_query2(
        ''' SELECT * FROM product_table WHERE product_id = ?''', (store, ))
    return jsonify(results[0])