Update app.py
Browse files
app.py
CHANGED
|
@@ -95,7 +95,7 @@ def init_db(db_name):
|
|
| 95 |
pr3 TEXT,
|
| 96 |
pr4 TEXT,
|
| 97 |
pr5 TEXT,
|
| 98 |
-
|
| 99 |
key_pr TEXT,
|
| 100 |
n_con TEXT,
|
| 101 |
canal TEXT,
|
|
@@ -306,7 +306,7 @@ def load_data_from_json(json_data):
|
|
| 306 |
user_data.setdefault('pr3', '')
|
| 307 |
user_data.setdefault('pr4', '')
|
| 308 |
user_data.setdefault('pr5', '')
|
| 309 |
-
user_data.setdefault('
|
| 310 |
user_data.setdefault('key_pr', '')
|
| 311 |
user_data.setdefault('n_con', '')
|
| 312 |
user_data.setdefault('canal', '')
|
|
@@ -317,9 +317,9 @@ def load_data_from_json(json_data):
|
|
| 317 |
|
| 318 |
query = '''
|
| 319 |
INSERT INTO contacts (
|
| 320 |
-
name, phone, email, vk_id, chat_id, ws_st, ws_stop, web_st, fin_prog, b_city, b_fin, b_ban, b_ign, b_baners, b_butt, b_mess, shop_st, pr1, pr2, pr3, pr4, pr5,
|
| 321 |
) VALUES (
|
| 322 |
-
:Имя, :Телефон, :Email, :vk_id, :chat_id, :ws_st, :ws_stop, :web_st, :fin_prog, :b_city, :b_fin, :b_ban, :b_ign, :b_baners, :b_butt, :b_mess, :shop_st, :pr1, :pr2, :pr3, :pr4, :pr5, :
|
| 323 |
)
|
| 324 |
'''
|
| 325 |
cursor.execute(query, user_data)
|
|
@@ -449,169 +449,6 @@ def start_mailings():
|
|
| 449 |
|
| 450 |
|
| 451 |
|
| 452 |
-
@app.route('/add_data_gc', methods=['GET'])
|
| 453 |
-
def add_data_gc():
|
| 454 |
-
try:
|
| 455 |
-
api_sys_control = request.args.get('api_sys')
|
| 456 |
-
|
| 457 |
-
if api_sys_control != api_key_sys:
|
| 458 |
-
return "err api key", 200
|
| 459 |
-
|
| 460 |
-
name = request.args.get('name')
|
| 461 |
-
phone = request.args.get('phone')
|
| 462 |
-
email = request.args.get('email')
|
| 463 |
-
vk_id = request.args.get('vk_id', '')
|
| 464 |
-
chat_id = request.args.get('chat_id')
|
| 465 |
-
ws_statys = request.args.get('ws_st')
|
| 466 |
-
ws_stop = request.args.get('ws_stop')
|
| 467 |
-
web_statys = request.args.get('web_st', 0, type=int)
|
| 468 |
-
fin_progress = request.args.get('fin_prog', 0, type=int)
|
| 469 |
-
shop_statys_full = request.args.get('shop_st')
|
| 470 |
-
pr1 = request.args.get('pr1')
|
| 471 |
-
pr2 = request.args.get('pr2')
|
| 472 |
-
pr3 = request.args.get('pr3')
|
| 473 |
-
pr4 = request.args.get('pr4')
|
| 474 |
-
pr5 = request.args.get('pr5')
|
| 475 |
-
ad_url = request.args.get('ad_url')
|
| 476 |
-
curator = request.args.get('curator')
|
| 477 |
-
key_pr = request.args.get('key_pr', '')
|
| 478 |
-
n_con = request.args.get('n_con', '')
|
| 479 |
-
canal = request.args.get('canal', '')
|
| 480 |
-
|
| 481 |
-
if not name or not phone or not email:
|
| 482 |
-
return "Parameters 'name', 'phone', and 'email' are required.", 400
|
| 483 |
-
|
| 484 |
-
# Clean up phone number by removing any leading plus sign
|
| 485 |
-
if phone.startswith('+'):
|
| 486 |
-
phone = phone[1:]
|
| 487 |
-
|
| 488 |
-
# Получение текущего времени в московском часовом поясе
|
| 489 |
-
utc_now = datetime.utcnow()
|
| 490 |
-
msk_tz = pytz.timezone('Europe/Moscow')
|
| 491 |
-
msk_now = utc_now.replace(tzinfo=pytz.utc).astimezone(msk_tz)
|
| 492 |
-
data_t = msk_now.strftime('%Y-%m-%d %H:%M:%S')
|
| 493 |
-
|
| 494 |
-
conn = sqlite3.connect('data_gc.db')
|
| 495 |
-
cursor = conn.cursor()
|
| 496 |
-
cursor.execute('SELECT * FROM contacts WHERE phone = ? OR email = ?', (phone, email))
|
| 497 |
-
existing_contact = cursor.fetchone()
|
| 498 |
-
|
| 499 |
-
if existing_contact:
|
| 500 |
-
cursor.execute('''
|
| 501 |
-
UPDATE contacts SET
|
| 502 |
-
name = ?, email = ?, vk_id = ?, chat_id = ?, ws_st = ?, ws_stop = ?,
|
| 503 |
-
web_st = ?, fin_prog = ?, shop_st = ?, pr1 = ?, pr2 = ?,
|
| 504 |
-
pr3 = ?, pr4 = ?, pr5 = ?, ad_url = ?, curator = ?, key_pr = ?, n_con = ?,
|
| 505 |
-
canal = ?, data_t = ?
|
| 506 |
-
WHERE phone = ? OR email = ?
|
| 507 |
-
''', (name, email, vk_id, chat_id, ws_statys, ws_stop, web_statys, fin_progress,
|
| 508 |
-
shop_statys_full, pr1, pr2, pr3, pr4, pr5, ad_url, curator, key_pr, n_con,
|
| 509 |
-
canal, data_t, phone, email))
|
| 510 |
-
else:
|
| 511 |
-
cursor.execute('''
|
| 512 |
-
INSERT INTO contacts (
|
| 513 |
-
name, phone, email, vk_id, chat_id, ws_st, ws_stop, web_st, fin_prog,
|
| 514 |
-
shop_st, pr1, pr2, pr3, pr4, pr5, ad_url, curator, key_pr, n_con, canal, data_t
|
| 515 |
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
| 516 |
-
''', (name, phone, email, vk_id, chat_id, ws_statys, ws_stop, web_statys, fin_progress,
|
| 517 |
-
shop_statys_full, pr1, pr2, pr3, pr4, pr5, ad_url, curator, key_pr, n_con, canal, data_t))
|
| 518 |
-
|
| 519 |
-
conn.commit()
|
| 520 |
-
conn.close()
|
| 521 |
-
|
| 522 |
-
return f"Contact updated/added: {name} - {phone} - {email}", 200
|
| 523 |
-
except Exception as e:
|
| 524 |
-
print(f"Error adding/updating contact: {e}")
|
| 525 |
-
return "Internal Server Error", 500
|
| 526 |
-
|
| 527 |
-
|
| 528 |
-
|
| 529 |
-
|
| 530 |
-
|
| 531 |
-
|
| 532 |
-
|
| 533 |
-
|
| 534 |
-
@app.route('/add_data_ras', methods=['GET'])
|
| 535 |
-
def add_data_ras():
|
| 536 |
-
try:
|
| 537 |
-
api_sys_control = request.args.get('api_sys')
|
| 538 |
-
|
| 539 |
-
if api_sys_control != api_key_sys:
|
| 540 |
-
return "EUR 22", 200
|
| 541 |
-
|
| 542 |
-
name = request.args.get('name')
|
| 543 |
-
phone = request.args.get('phone')
|
| 544 |
-
email = request.args.get('email')
|
| 545 |
-
vk_id = request.args.get('vk_id', '')
|
| 546 |
-
chat_id = request.args.get('chat_id', '')
|
| 547 |
-
ws_statys = request.args.get('ws_st', '')
|
| 548 |
-
ws_stop = request.args.get('ws_stop', '')
|
| 549 |
-
web_statys = request.args.get('web_st', 0, type=int)
|
| 550 |
-
fin_progress = request.args.get('fin_prog', 0, type=int)
|
| 551 |
-
shop_statys_full = request.args.get('shop_st', '')
|
| 552 |
-
pr1 = request.args.get('pr1', '')
|
| 553 |
-
pr2 = request.args.get('pr2', '')
|
| 554 |
-
pr3 = request.args.get('pr3', '')
|
| 555 |
-
pr4 = request.args.get('pr4', '')
|
| 556 |
-
pr5 = request.args.get('pr5', '')
|
| 557 |
-
ad_url = request.args.get('ad_url', '')
|
| 558 |
-
curator = request.args.get('curator', '')
|
| 559 |
-
key_pr = request.args.get('key_pr', '')
|
| 560 |
-
n_con = request.args.get('n_con', '')
|
| 561 |
-
canal = request.args.get('canal', '')
|
| 562 |
-
|
| 563 |
-
if not name or not phone or not email:
|
| 564 |
-
return "Parameters 'name', 'phone', and 'email' are required.", 400
|
| 565 |
-
|
| 566 |
-
# Clean up phone number by removing any leading plus sign
|
| 567 |
-
if phone.startswith('+'):
|
| 568 |
-
phone = phone[1:]
|
| 569 |
-
|
| 570 |
-
# Получение текущего времени в московском часовом поясе
|
| 571 |
-
utc_now = datetime.utcnow()
|
| 572 |
-
msk_tz = pytz.timezone('Europe/Moscow')
|
| 573 |
-
msk_now = utc_now.replace(tzinfo=pytz.utc).astimezone(msk_tz)
|
| 574 |
-
data_t = msk_now.strftime('%Y-%m-%d %H:%M:%S')
|
| 575 |
-
|
| 576 |
-
conn = sqlite3.connect('data1.db')
|
| 577 |
-
cursor = conn.cursor()
|
| 578 |
-
cursor.execute('SELECT * FROM contacts WHERE phone = ? OR email = ?', (phone, email))
|
| 579 |
-
existing_contact = cursor.fetchone()
|
| 580 |
-
|
| 581 |
-
if existing_contact:
|
| 582 |
-
cursor.execute('''
|
| 583 |
-
UPDATE contacts SET
|
| 584 |
-
name = ?, email = ?, vk_id = ?, chat_id = ?, ws_st = ?, ws_stop = ?,
|
| 585 |
-
web_st = ?, fin_prog = ?, shop_st = ?, pr1 = ?, pr2 = ?,
|
| 586 |
-
pr3 = ?, pr4 = ?, pr5 = ?, ad_url = ?, curator = ?, key_pr = ?, n_con = ?,
|
| 587 |
-
canal = ?, data_t = ?
|
| 588 |
-
WHERE phone = ? OR email = ?
|
| 589 |
-
''', (name, email, vk_id, chat_id, ws_statys, ws_stop, web_statys, fin_progress,
|
| 590 |
-
shop_statys_full, pr1, pr2, pr3, pr4, pr5, ad_url, curator, key_pr, n_con,
|
| 591 |
-
canal, data_t, phone, email))
|
| 592 |
-
else:
|
| 593 |
-
cursor.execute('''
|
| 594 |
-
INSERT INTO contacts (
|
| 595 |
-
name, phone, email, vk_id, chat_id, ws_st, ws_stop, web_st, fin_prog,
|
| 596 |
-
shop_st, pr1, pr2, pr3, pr4, pr5, ad_url, curator, key_pr, n_con, canal, data_t
|
| 597 |
-
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
| 598 |
-
''', (name, phone, email, vk_id, chat_id, ws_statys, ws_stop, web_statys, fin_progress,
|
| 599 |
-
shop_statys_full, pr1, pr2, pr3, pr4, pr5, ad_url, curator, key_pr, n_con, canal, data_t))
|
| 600 |
-
|
| 601 |
-
conn.commit()
|
| 602 |
-
conn.close()
|
| 603 |
-
|
| 604 |
-
return f"Contact updated/added: {name} - {phone} - {email}", 200
|
| 605 |
-
except Exception as e:
|
| 606 |
-
print(f"Error adding/updating contact: {e}")
|
| 607 |
-
return "Internal Server Error", 500
|
| 608 |
-
|
| 609 |
-
|
| 610 |
-
|
| 611 |
-
|
| 612 |
-
|
| 613 |
-
|
| 614 |
-
|
| 615 |
|
| 616 |
|
| 617 |
|
|
@@ -721,7 +558,7 @@ def data_gc_tab_out():
|
|
| 721 |
cursor.execute('''
|
| 722 |
SELECT id, name, phone, email, vk_id, chat_id, ws_st, ws_stop, web_st, fin_prog,
|
| 723 |
b_city, b_fin, b_ban, b_ign, b_baners, b_butt, b_mess, shop_st, curator,
|
| 724 |
-
pr1, pr2, pr3, pr4, pr5,
|
| 725 |
FROM contacts
|
| 726 |
''')
|
| 727 |
contacts = cursor.fetchall()
|
|
@@ -734,7 +571,7 @@ def data_gc_tab_out():
|
|
| 734 |
'b_ban': contact[12], 'b_ign': contact[13], 'b_baners': contact[14], 'b_butt': contact[15],
|
| 735 |
'b_mess': contact[16], 'shop_st': contact[17], 'curator': contact[18], 'pr1': contact[19],
|
| 736 |
'pr2': contact[20], 'pr3': contact[21], 'pr4': contact[22], 'pr5': contact[23],
|
| 737 |
-
'
|
| 738 |
'data_t': contact[28],'utm_source': contact[29], 'utm_medium': contact[30], 'utm_campaign': contact[31],
|
| 739 |
'utm_term': contact[32], 'utm_content': contact[33]
|
| 740 |
} for contact in contacts]
|
|
|
|
| 95 |
pr3 TEXT,
|
| 96 |
pr4 TEXT,
|
| 97 |
pr5 TEXT,
|
| 98 |
+
gc_url TEXT,
|
| 99 |
key_pr TEXT,
|
| 100 |
n_con TEXT,
|
| 101 |
canal TEXT,
|
|
|
|
| 306 |
user_data.setdefault('pr3', '')
|
| 307 |
user_data.setdefault('pr4', '')
|
| 308 |
user_data.setdefault('pr5', '')
|
| 309 |
+
user_data.setdefault('gc_url', '')
|
| 310 |
user_data.setdefault('key_pr', '')
|
| 311 |
user_data.setdefault('n_con', '')
|
| 312 |
user_data.setdefault('canal', '')
|
|
|
|
| 317 |
|
| 318 |
query = '''
|
| 319 |
INSERT INTO contacts (
|
| 320 |
+
name, phone, email, vk_id, chat_id, ws_st, ws_stop, web_st, fin_prog, b_city, b_fin, b_ban, b_ign, b_baners, b_butt, b_mess, shop_st, pr1, pr2, pr3, pr4, pr5, gc_url, curator, key_pr, n_con, canal, data_t
|
| 321 |
) VALUES (
|
| 322 |
+
:Имя, :Телефон, :Email, :vk_id, :chat_id, :ws_st, :ws_stop, :web_st, :fin_prog, :b_city, :b_fin, :b_ban, :b_ign, :b_baners, :b_butt, :b_mess, :shop_st, :pr1, :pr2, :pr3, :pr4, :pr5, :gc_url, :curator, :key_pr, :n_con, :canal, :data_t
|
| 323 |
)
|
| 324 |
'''
|
| 325 |
cursor.execute(query, user_data)
|
|
|
|
| 449 |
|
| 450 |
|
| 451 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 452 |
|
| 453 |
|
| 454 |
|
|
|
|
| 558 |
cursor.execute('''
|
| 559 |
SELECT id, name, phone, email, vk_id, chat_id, ws_st, ws_stop, web_st, fin_prog,
|
| 560 |
b_city, b_fin, b_ban, b_ign, b_baners, b_butt, b_mess, shop_st, curator,
|
| 561 |
+
pr1, pr2, pr3, pr4, pr5, gc_url, key_pr, n_con, canal, data_t, utm_source, utm_medium, utm_campaign, utm_term, utm_content
|
| 562 |
FROM contacts
|
| 563 |
''')
|
| 564 |
contacts = cursor.fetchall()
|
|
|
|
| 571 |
'b_ban': contact[12], 'b_ign': contact[13], 'b_baners': contact[14], 'b_butt': contact[15],
|
| 572 |
'b_mess': contact[16], 'shop_st': contact[17], 'curator': contact[18], 'pr1': contact[19],
|
| 573 |
'pr2': contact[20], 'pr3': contact[21], 'pr4': contact[22], 'pr5': contact[23],
|
| 574 |
+
'gc_url': contact[24], 'key_pr': contact[25], 'n_con': contact[26], 'canal': contact[27],
|
| 575 |
'data_t': contact[28],'utm_source': contact[29], 'utm_medium': contact[30], 'utm_campaign': contact[31],
|
| 576 |
'utm_term': contact[32], 'utm_content': contact[33]
|
| 577 |
} for contact in contacts]
|