|  | from flask import Flask, request, render_template_string, 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="./") | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | 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('/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 = ''' | 
					
						
						|  | <!doctype html> | 
					
						
						|  | <html lang="en"> | 
					
						
						|  | <head> | 
					
						
						|  | <meta charset="utf-8"> | 
					
						
						|  | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | 
					
						
						|  | <title>Contacts</title> | 
					
						
						|  | <style> | 
					
						
						|  | table { | 
					
						
						|  | width: 70%; | 
					
						
						|  | border-collapse: collapse; | 
					
						
						|  | } | 
					
						
						|  | th, td { | 
					
						
						|  | border: 1px solid black; | 
					
						
						|  | padding: 8px; | 
					
						
						|  | text-align: left; | 
					
						
						|  | } | 
					
						
						|  | th { | 
					
						
						|  | background-color: #f2f2f2; | 
					
						
						|  | } | 
					
						
						|  | </style> | 
					
						
						|  | </head> | 
					
						
						|  | <body> | 
					
						
						|  | <h1>Contacts</h1> | 
					
						
						|  | <table> | 
					
						
						|  | <tr> | 
					
						
						|  | <th>Name</th> | 
					
						
						|  | <th>Phone</th> | 
					
						
						|  | <th>Email</th> | 
					
						
						|  | </tr> | 
					
						
						|  | {% for contact in contacts %} | 
					
						
						|  | <tr> | 
					
						
						|  | <td>{{ contact[0] }}</td> | 
					
						
						|  | <td>{{ contact[1] }}</td> | 
					
						
						|  | <td>{{ contact[2] }}</td> | 
					
						
						|  | </tr> | 
					
						
						|  | {% endfor %} | 
					
						
						|  | </table> | 
					
						
						|  | </body> | 
					
						
						|  | </html> | 
					
						
						|  | ''' | 
					
						
						|  |  | 
					
						
						|  | 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))) | 
					
						
						|  |  |