Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -714,7 +714,7 @@ def data_gc_tab_out():
|
|
| 714 |
|
| 715 |
|
| 716 |
|
| 717 |
-
|
| 718 |
|
| 719 |
|
| 720 |
|
|
@@ -724,7 +724,20 @@ def data_gc_tab_out():
|
|
| 724 |
|
| 725 |
DATABASE_NAME = 'data_gc.db'
|
| 726 |
|
| 727 |
-
def
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 728 |
conn = sqlite3.connect(db_name)
|
| 729 |
cursor = conn.cursor()
|
| 730 |
|
|
@@ -744,11 +757,7 @@ def update_or_insert_user(db_name, user_data, mapping_template):
|
|
| 744 |
if user:
|
| 745 |
current_web_st = user[0] if user[0] is not None and user[0] != "" else 0
|
| 746 |
web_st_value = int(current_web_st) + 1
|
| 747 |
-
logging.debug(f"Calculated web_st_value: {web_st_value}")
|
| 748 |
-
|
| 749 |
current_messages = user[1] if user[1] is not None else ""
|
| 750 |
-
logging.debug(f"Current messages: {current_messages}")
|
| 751 |
-
|
| 752 |
cursor.execute("UPDATE contacts SET web_st = ? WHERE email = ?", (web_st_value, email))
|
| 753 |
conn.commit()
|
| 754 |
conn.close()
|
|
@@ -763,7 +772,6 @@ def update_or_insert_user(db_name, user_data, mapping_template):
|
|
| 763 |
transformed_data = {}
|
| 764 |
for json_key, db_column in mapping_template.items():
|
| 765 |
value = user_data.get(json_key, "")
|
| 766 |
-
|
| 767 |
if isinstance(value, list):
|
| 768 |
if all(isinstance(item, str) for item in value):
|
| 769 |
transformed_data[db_column] = "; ".join(value)
|
|
@@ -823,49 +831,9 @@ def update_or_insert_user(db_name, user_data, mapping_template):
|
|
| 823 |
conn.close()
|
| 824 |
logging.debug(f"User with email {email} processed successfully")
|
| 825 |
|
| 826 |
-
|
| 827 |
-
|
| 828 |
-
|
| 829 |
-
"usp=pp_url"
|
| 830 |
-
f"&name={data.get('name', '')}"
|
| 831 |
-
f"&email={data.get('email', '')}"
|
| 832 |
-
f"&phone={data.get('phone', '')}"
|
| 833 |
-
f"&vk_id={data.get('vk_id', '')}"
|
| 834 |
-
f"&chat_id={data.get('chat_id', '')}"
|
| 835 |
-
f"&ws_st={data.get('ws_st', '')}"
|
| 836 |
-
f"&ws_stop={data.get('ws_stop', '')}"
|
| 837 |
-
f"&web_st={data.get('web_st', '')}"
|
| 838 |
-
f"&fin_prog={data.get('fin_prog', '')}"
|
| 839 |
-
f"&b_city={data.get('b_city', '')}"
|
| 840 |
-
f"&b_fin={data.get('b_fin', '')}"
|
| 841 |
-
f"&b_ban={data.get('b_ban', '')}"
|
| 842 |
-
f"&b_ign={data.get('b_ign', '')}"
|
| 843 |
-
f"&b_baners={data.get('b_baners', '')}"
|
| 844 |
-
f"&b_butt={data.get('b_butt', '')}"
|
| 845 |
-
f"&b_mess={data.get('b_mess', '')}"
|
| 846 |
-
f"&shop_st={data.get('shop_st', '')}"
|
| 847 |
-
f"&curator={data.get('curator', '')}"
|
| 848 |
-
f"&pr1={data.get('pr1', '')}"
|
| 849 |
-
f"&pr2={data.get('pr2', '')}"
|
| 850 |
-
f"&pr3={data.get('pr3', '')}"
|
| 851 |
-
f"&pr4={data.get('pr4', '')}"
|
| 852 |
-
f"&pr5={data.get('pr5', '')}"
|
| 853 |
-
f"&gc_url={data.get('gc_url', '')}"
|
| 854 |
-
f"&key_pr={data.get('key_pr', '')}"
|
| 855 |
-
f"&n_con={data.get('n_con', '')}"
|
| 856 |
-
f"&canal={data.get('canal', '')}"
|
| 857 |
-
f"&data_t={data.get('data_t', '')}"
|
| 858 |
-
f"&utm_source={data.get('utm_source', '')}"
|
| 859 |
-
f"&utm_medium={data.get('utm_medium', '')}"
|
| 860 |
-
f"&utm_campaign={data.get('utm_campaign', '')}"
|
| 861 |
-
f"&utm_term={data.get('utm_term', '')}"
|
| 862 |
-
f"&utm_content={data.get('utm_content', '')}"
|
| 863 |
-
)
|
| 864 |
-
response = requests.post(form_url)
|
| 865 |
-
if response.status_code == 200:
|
| 866 |
-
logging.info("Data successfully sent to Google Forms")
|
| 867 |
-
else:
|
| 868 |
-
logging.error(f"Failed to send data to Google Forms: {response.status_code}")
|
| 869 |
|
| 870 |
@app.route('/send_request', methods=['POST'])
|
| 871 |
def send_request():
|
|
@@ -883,6 +851,9 @@ def send_request():
|
|
| 883 |
else:
|
| 884 |
return jsonify({'error': 'Failed to fetch data from the API'}), response.status_code
|
| 885 |
|
|
|
|
|
|
|
|
|
|
| 886 |
@app.route('/send_get_request', methods=['GET'])
|
| 887 |
def send_get_request():
|
| 888 |
token = request.args.get('token')
|
|
@@ -891,7 +862,7 @@ def send_get_request():
|
|
| 891 |
|
| 892 |
try:
|
| 893 |
response = requests.get(url, headers={'X-Token': token})
|
| 894 |
-
response.raise_for_status()
|
| 895 |
data = response.json()
|
| 896 |
|
| 897 |
if data is None or 'report' not in data:
|
|
@@ -923,8 +894,7 @@ def send_get_request():
|
|
| 923 |
user_data['messages'] = user_messages
|
| 924 |
email = user_data.get('email')
|
| 925 |
if email and email not in processed_emails:
|
| 926 |
-
update_or_insert_user(DATABASE_NAME, user_data, mapping_template)
|
| 927 |
-
send_to_google_forms(user_data)
|
| 928 |
processed_emails.add(email)
|
| 929 |
|
| 930 |
return jsonify({'status': 'User data saved successfully'})
|
|
@@ -973,18 +943,14 @@ def webhookbz():
|
|
| 973 |
user_data['messages'] = user_messages
|
| 974 |
email = user_data.get('email')
|
| 975 |
if email and email not in processed_emails:
|
| 976 |
-
update_or_insert_user(DATABASE_NAME, user_data, mapping_template)
|
| 977 |
-
send_to_google_forms(user_data)
|
| 978 |
processed_emails.add(email)
|
| 979 |
|
| 980 |
return jsonify({'status': 'User data saved successfully'})
|
| 981 |
else:
|
| 982 |
return jsonify({'error': 'Failed to fetch data from the API'}), response.status_code
|
| 983 |
|
| 984 |
-
|
| 985 |
-
|
| 986 |
-
|
| 987 |
-
|
| 988 |
|
| 989 |
|
| 990 |
|
|
|
|
| 714 |
|
| 715 |
|
| 716 |
|
| 717 |
+
gog_url = "https://docs.google.com/formResponse/d/e/1FAIpQLSc-JbmXvgpgGq6KrkXsYSsfMACVMyIDnNqrHy6jImGeSRcpiQ/{viewform}?usp=pp_url&entry.1556100878={name}&entry.1477412341={email}&entry.1634985541={phone}&entry.1736544219={vk_id}&entry.62153872={chat_id}&entry.1913752768={ws_st}&entry.1768186232={ws_stop}&entry.1198983592={web_st}&entry.994770784={fin_prog}&entry.910932310={b_city}&entry.1923801792={b_fin}&entry.2005444720={b_ban}&entry.741087361={b_ign}&entry.1316159837={b_baners}&entry.355123557={b_butt}&entry.395996312={b_mess}&entry.646571729={shop_st}&entry.578527800={curator}&entry.1936838964={pr1}&entry.1375537366={pr2}&entry.1249356084={pr3}&entry.752547226={pr4}&entry.704766458={pr5}&entry.1837661={gc_url}&entry.398837750={key_pr}&entry.225564240={n_con}&entry.1642320872={canal}&entry.1581826411={data_t}&entry.311131724={utm_source}&entry.1904279859={utm_medium}&entry.740234546={utm_campaign}&entry.880981295={utm_term}&entry.431306383={utm_content}"
|
| 718 |
|
| 719 |
|
| 720 |
|
|
|
|
| 724 |
|
| 725 |
DATABASE_NAME = 'data_gc.db'
|
| 726 |
|
| 727 |
+
def send_to_google_forms(user_data, gog_url):
|
| 728 |
+
# Формирование URL с параметрами
|
| 729 |
+
url = gog_url.format(**user_data)
|
| 730 |
+
|
| 731 |
+
# Отправка POST-запроса
|
| 732 |
+
response = requests.post(url)
|
| 733 |
+
|
| 734 |
+
if response.status_code == 200:
|
| 735 |
+
logging.debug(f"Data sent to Google Forms successfully for user: {user_data.get('email')}")
|
| 736 |
+
else:
|
| 737 |
+
logging.error(f"Failed to send data to Google Forms for user: {user_data.get('email')}. Response: {response.text}")
|
| 738 |
+
|
| 739 |
+
|
| 740 |
+
def update_or_insert_user(db_name, user_data, mapping_template, gog_url):
|
| 741 |
conn = sqlite3.connect(db_name)
|
| 742 |
cursor = conn.cursor()
|
| 743 |
|
|
|
|
| 757 |
if user:
|
| 758 |
current_web_st = user[0] if user[0] is not None and user[0] != "" else 0
|
| 759 |
web_st_value = int(current_web_st) + 1
|
|
|
|
|
|
|
| 760 |
current_messages = user[1] if user[1] is not None else ""
|
|
|
|
|
|
|
| 761 |
cursor.execute("UPDATE contacts SET web_st = ? WHERE email = ?", (web_st_value, email))
|
| 762 |
conn.commit()
|
| 763 |
conn.close()
|
|
|
|
| 772 |
transformed_data = {}
|
| 773 |
for json_key, db_column in mapping_template.items():
|
| 774 |
value = user_data.get(json_key, "")
|
|
|
|
| 775 |
if isinstance(value, list):
|
| 776 |
if all(isinstance(item, str) for item in value):
|
| 777 |
transformed_data[db_column] = "; ".join(value)
|
|
|
|
| 831 |
conn.close()
|
| 832 |
logging.debug(f"User with email {email} processed successfully")
|
| 833 |
|
| 834 |
+
# Отправка данных в Google Forms
|
| 835 |
+
send_to_google_forms(transformed_data, gog_url)
|
| 836 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 837 |
|
| 838 |
@app.route('/send_request', methods=['POST'])
|
| 839 |
def send_request():
|
|
|
|
| 851 |
else:
|
| 852 |
return jsonify({'error': 'Failed to fetch data from the API'}), response.status_code
|
| 853 |
|
| 854 |
+
|
| 855 |
+
|
| 856 |
+
|
| 857 |
@app.route('/send_get_request', methods=['GET'])
|
| 858 |
def send_get_request():
|
| 859 |
token = request.args.get('token')
|
|
|
|
| 862 |
|
| 863 |
try:
|
| 864 |
response = requests.get(url, headers={'X-Token': token})
|
| 865 |
+
response.raise_for_status() # Проверка на ошибки HTTP
|
| 866 |
data = response.json()
|
| 867 |
|
| 868 |
if data is None or 'report' not in data:
|
|
|
|
| 894 |
user_data['messages'] = user_messages
|
| 895 |
email = user_data.get('email')
|
| 896 |
if email and email not in processed_emails:
|
| 897 |
+
update_or_insert_user(DATABASE_NAME, user_data, mapping_template, gog_url)
|
|
|
|
| 898 |
processed_emails.add(email)
|
| 899 |
|
| 900 |
return jsonify({'status': 'User data saved successfully'})
|
|
|
|
| 943 |
user_data['messages'] = user_messages
|
| 944 |
email = user_data.get('email')
|
| 945 |
if email and email not in processed_emails:
|
| 946 |
+
update_or_insert_user(DATABASE_NAME, user_data, mapping_template, gog_url)
|
|
|
|
| 947 |
processed_emails.add(email)
|
| 948 |
|
| 949 |
return jsonify({'status': 'User data saved successfully'})
|
| 950 |
else:
|
| 951 |
return jsonify({'error': 'Failed to fetch data from the API'}), response.status_code
|
| 952 |
|
| 953 |
+
|
|
|
|
|
|
|
|
|
|
| 954 |
|
| 955 |
|
| 956 |
|