import gradio as gr import qrcode import flask from flask import Flask, request # Flask server for handling QR code scans app = Flask(__name__) # Store user IPs and WhatsApp IDs (simulate a DB) user_data = {} @app.route("/link", methods=["GET"]) def link_user(): user_id = request.args.get("user_id") whatsapp_id = request.args.get("whatsapp_id") user_ip = request.remote_addr # Save user data user_data[user_id] = {"whatsapp_id": whatsapp_id, "ip": user_ip} return f"User {user_id} linked with WhatsApp ID: {whatsapp_id} from IP: {user_ip}" # Function to generate QR code def generate_qr(user_id, whatsapp_id): base_url = "http://localhost:5000/link" # Replace with external Flask URL if deploying qr_data = f"{base_url}?user_id={user_id}&whatsapp_id={whatsapp_id}" # Generate QR code qr = qrcode.make(qr_data) qr.save("qr_code.png") return "qr_code.png" # Gradio interface for generating user-specific QR codes def gradio_interface(user_id, whatsapp_id): qr_code_path = generate_qr(user_id, whatsapp_id) return qr_code_path # Gradio app def launch_gradio(): demo = gr.Interface( fn=gradio_interface, inputs=[ gr.Textbox(label="User ID"), gr.Textbox(label="WhatsApp ID"), ], outputs=gr.Image(type="filepath", label="Generated QR Code"), title="Generate User-Specific QR Code", ) demo.launch(share=True) # Run Flask server in the background from threading import Thread def run_flask(): app.run(host="0.0.0.0", port=5000) if __name__ == "__main__": flask_thread = Thread(target=run_flask, daemon=True) flask_thread.start() # Start Flask server launch_gradio() # Start Gradio app