smartdigitalnetworks commited on
Commit
1bf3e6d
·
verified ·
1 Parent(s): 0b931d0

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +80 -0
app.py ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import time
3
+ import shutil
4
+ import requests
5
+ import gradio as gr
6
+
7
+ EN_US = os.getenv("LANG") != "zh_CN.UTF-8"
8
+ API_QR = os.getenv("api_qr")
9
+ if not API_QR:
10
+ print("请检查环境变量")
11
+ exit()
12
+
13
+
14
+ TMP_DIR = "./__pycache__"
15
+ ZH2EN = {
16
+ "二维码输出尺寸": "Image size",
17
+ "输入文本": "Input text",
18
+ "输出二维码": "QR code",
19
+ "输入文字在线生成二维码": "Enter text to generate a QR code.",
20
+ "状态栏": "Status",
21
+ "二维码生成器": "QR Code Generator",
22
+ }
23
+
24
+
25
+ def _L(zh_txt: str):
26
+ return ZH2EN[zh_txt] if EN_US else zh_txt
27
+
28
+
29
+ def clean_dir(dir_path: str):
30
+ if os.path.exists(dir_path):
31
+ shutil.rmtree(dir_path)
32
+
33
+ os.makedirs(dir_path)
34
+
35
+
36
+ def download_file(url, local_filename):
37
+ clean_dir(os.path.dirname(local_filename))
38
+ response = requests.get(url, stream=True)
39
+ response.raise_for_status()
40
+ with open(local_filename, "wb") as f:
41
+ for chunk in response.iter_content(chunk_size=8192):
42
+ f.write(chunk)
43
+
44
+ return local_filename
45
+
46
+
47
+ def infer(img_size: int, input_txt: str):
48
+ status = "Success"
49
+ img = None
50
+ try:
51
+ if (not input_txt) or input_txt == "0":
52
+ raise ValueError("Please input valid text!")
53
+
54
+ img = download_file(
55
+ f"{API_QR}/?size={img_size}x{img_size}&data={input_txt}" if EN_US else f"{API_QR}/?text={input_txt}&size={img_size}",
56
+ f"{TMP_DIR}/qrcode.jpg",
57
+ )
58
+
59
+ time.sleep(0.1)
60
+
61
+ except Exception as e:
62
+ status = f"{e}"
63
+
64
+ return status, img
65
+
66
+
67
+ if __name__ == "__main__":
68
+ gr.Interface(
69
+ fn=infer,
70
+ inputs=[
71
+ gr.Slider(35, 1000, 217, label=_L("二维码输出尺寸")),
72
+ gr.Textbox(label=_L("输入文本"), placeholder=_L("输入文字在线生成二维码")),
73
+ ],
74
+ outputs=[
75
+ gr.Textbox(label=_L("状态栏"), show_copy_button=True),
76
+ gr.Image(label=_L("输出二维码"), show_share_button=False),
77
+ ],
78
+ flagging_mode="never",
79
+ title=_L("二维码生成器")
80
+ ).launch()