qqwjq1981 commited on
Commit
dcbfe74
·
verified ·
1 Parent(s): f7f554b

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +62 -0
  2. requirements.txt +18 -0
app.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import qrcode
3
+ import flask
4
+ from flask import Flask, request
5
+
6
+ # Flask server for handling QR code scans
7
+ app = Flask(__name__)
8
+
9
+ # Store user IPs and WhatsApp IDs (simulate a DB)
10
+ user_data = {}
11
+
12
+ @app.route("/link", methods=["GET"])
13
+ def link_user():
14
+ user_id = request.args.get("user_id")
15
+ whatsapp_id = request.args.get("whatsapp_id")
16
+ user_ip = request.remote_addr
17
+
18
+ # Save user data
19
+ user_data[user_id] = {"whatsapp_id": whatsapp_id, "ip": user_ip}
20
+
21
+ return f"User {user_id} linked with WhatsApp ID: {whatsapp_id} from IP: {user_ip}"
22
+
23
+ # Function to generate QR code
24
+ def generate_qr(user_id, whatsapp_id):
25
+ base_url = "http://localhost:5000/link" # Replace with external Flask URL if deploying
26
+ qr_data = f"{base_url}?user_id={user_id}&whatsapp_id={whatsapp_id}"
27
+
28
+ # Generate QR code
29
+ qr = qrcode.make(qr_data)
30
+ qr.save("qr_code.png")
31
+
32
+ return "qr_code.png"
33
+
34
+ # Gradio interface for generating user-specific QR codes
35
+ def gradio_interface(user_id, whatsapp_id):
36
+ qr_code_path = generate_qr(user_id, whatsapp_id)
37
+ return qr_code_path
38
+
39
+ # Gradio app
40
+ def launch_gradio():
41
+ demo = gr.Interface(
42
+ fn=gradio_interface,
43
+ inputs=[
44
+ gr.Textbox(label="User ID"),
45
+ gr.Textbox(label="WhatsApp ID"),
46
+ ],
47
+ outputs=gr.Image(type="filepath", label="Generated QR Code"),
48
+ title="Generate User-Specific QR Code",
49
+ )
50
+ demo.launch(share=True)
51
+
52
+ # Run Flask server in the background
53
+ from threading import Thread
54
+
55
+ def run_flask():
56
+ app.run(host="0.0.0.0", port=5000)
57
+
58
+ if __name__ == "__main__":
59
+ flask_thread = Thread(target=run_flask, daemon=True)
60
+ flask_thread.start() # Start Flask server
61
+
62
+ launch_gradio() # Start Gradio app
requirements.txt ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ qrcode
2
+ flask
3
+ gradio
4
+ newspaper3k
5
+ transformers
6
+ sentence-transformers
7
+ openai
8
+ todoist-api-python
9
+ flask
10
+ twilio
11
+ fastapi
12
+ uvicorn
13
+ ffmpy
14
+ google-cloud-storage
15
+ fpdf
16
+ markdown
17
+ nest_asyncio
18
+ reportlab