from flask import Flask, request, render_template_string, send_from_directory, jsonify from flask import render_template import sqlite3 import os import unittest from whatsapp_api_webhook_server_python.webhooksHandler import startServer app = Flask(__name__, template_folder="./") app.config['UPLOAD_FOLDER'] = 'static' IMAGE_FILENAME = 'latest_image.jpg' # Создание директории, если она не существует if not os.path.exists(app.config['UPLOAD_FOLDER']): os.makedirs(app.config['UPLOAD_FOLDER']) # Создание базы данных и таблицы def init_db(): try: conn = sqlite3.connect('data.db') cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS contacts ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, phone TEXT NOT NULL, email TEXT NOT NULL ) ''') conn.commit() conn.close() except Exception as e: print(f"Error initializing database: {e}") # Вызов функции для инициализации базы данных init_db() @app.route('/settings', methods=['GET']) def settings(): return render_template('settings.html') @app.route('/online', methods=['GET']) def onli(): return render_template('online.html') @app.route('/ver', methods=['GET']) def veref(): return render_template('ver.html') @app.route('/se_mes', methods=['GET']) def se_mes(): return render_template('se_mes.html') @app.route('/se_mes_im', methods=['GET']) def se_mes_im(): return render_template('se_mes_im.html') @app.route('/se_mes_im2', methods=['GET']) def se_mes_im2(): return render_template('se_mes_im2.html') @app.route('/upload', methods=['POST']) def upload_file(): if 'photo' not in request.files: return "No file part", 400 file = request.files['photo'] if file.filename == '': return "No selected file", 400 save_path = os.path.join(app.config['UPLOAD_FOLDER'], IMAGE_FILENAME) file.save(save_path) file_url = f"/{app.config['UPLOAD_FOLDER']}/{IMAGE_FILENAME}" return file_url, 200 @app.route('/image', methods=['GET']) def get_image(): return send_from_directory(app.config['UPLOAD_FOLDER'], IMAGE_FILENAME) # Маршрут для обработки GET-запроса @app.route('/add_contact', methods=['GET']) def add_contact(): try: name = request.args.get('name') phone = request.args.get('phone') email = request.args.get('email') if not name or not phone or not email: return "Parameters 'name', 'phone', and 'email' are required.", 400 conn = sqlite3.connect('data.db') cursor = conn.cursor() cursor.execute('INSERT INTO contacts (name, phone, email) VALUES (?, ?, ?)', (name, phone, email)) conn.commit() conn.close() return f"Contact added: {name} - {phone} - {email}", 200 except Exception as e: print(f"Error adding contact: {e}") return "Internal Server Error", 500 # Маршрут для отображения таблицы контактов @app.route('/contacts') def show_contacts(): try: conn = sqlite3.connect('data.db') cursor = conn.cursor() cursor.execute('SELECT name, phone, email FROM contacts') contacts = cursor.fetchall() conn.close() # HTML-шаблон для отображения таблицы html = ''' Contacts

Contacts

{% for contact in contacts %} {% endfor %}
Name Phone Email
{{ contact[0] }} {{ contact[1] }} {{ contact[2] }}
''' return render_template_string(html, contacts=contacts) except Exception as e: print(f"Error showing contacts: {e}") return "Internal Server Error", 500 if __name__ == '__main__': app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))