goversetv commited on
Commit
05d84c1
โ€ข
1 Parent(s): f4b17cb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -16
app.py CHANGED
@@ -5,7 +5,7 @@ import pykakasi
5
  import os
6
 
7
  # ๋ฒ„์ „ ์ •๋ณด
8
- __version__ = "1.8.13"
9
 
10
  # Kakasi ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ฐ ์„ค์ •
11
  kakasi = pykakasi.kakasi()
@@ -27,13 +27,19 @@ def convert_text(japanese_text, conversion_type):
27
  return converted
28
 
29
  def search_and_update_history(keyword, conversion_type):
30
- result, japanese_keyword = search(keyword, conversion_type)
31
 
32
- if japanese_keyword:
33
- audio_path = generate_audio_file(japanese_keyword)
34
- return result, gr.update(value=audio_path, visible=True)
 
 
 
 
 
 
35
  else:
36
- return result, gr.update(visible=False)
37
 
38
  def search(keyword, conversion_type):
39
  try:
@@ -42,11 +48,9 @@ def search(keyword, conversion_type):
42
 
43
  converted_keyword = convert_text(japanese_keyword, conversion_type)
44
 
45
- url = f"https://www.irasutoya.com/search?q={converted_keyword}"
46
  result_text = (
47
  f"**๊ฒ€์ƒ‰์–ด:** {keyword}\n"
48
- f"**์ผ๋ณธ์–ด ๋ฒˆ์—ญ ({conversion_type}):** {converted_keyword}\n"
49
- f"[๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๋ณด๊ธฐ]({url})\n\n"
50
  f"**์•ˆ๋‚ด:** ์„ ํƒํ•œ ๋ณ€ํ™˜ ์œ ํ˜•์— ๋”ฐ๋ผ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."
51
  )
52
  return result_text, converted_keyword
@@ -63,30 +67,64 @@ def generate_audio_file(japanese_text):
63
  return None
64
 
65
  def clear_inputs():
66
- return "", "", gr.update(visible=False)
67
 
68
  with gr.Blocks(css="""
69
  #container {
70
  width: 50%;
71
  margin: auto;
72
  }
73
- #search_button, #clear_button {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  width: 100%;
75
  }
 
 
 
76
  """) as demo:
77
  with gr.Column(elem_id="container"):
78
  gr.Markdown("<h2 style='text-align: center;'>์ด๋ผ์Šคํ† ์•ผ ์ผ๋Ÿฌ์ŠคํŠธ ๊ฒ€์ƒ‰๊ธฐ</h2>")
79
 
80
- keyword_input = gr.Textbox(label="ํ•œ๊ธ€ ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ", placeholder="ํ•œ๊ธ€๋กœ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", elem_id="keyword_input")
 
 
 
 
81
  conversion_type = gr.Radio(
82
  label="๋ณ€ํ™˜ ์œ ํ˜• ์„ ํƒ",
83
  choices=["๊ธฐ๋ณธ", "ํžˆ๋ผ๊ฐ€๋‚˜", "๊ฐ€ํƒ€์นด๋‚˜", "ํ•œ์ž"],
84
  value="๊ธฐ๋ณธ",
85
  elem_id="conversion_type"
86
  )
 
87
  search_button = gr.Button("๊ฒ€์ƒ‰", elem_id="search_button")
88
  clear_button = gr.Button("์ง€์šฐ๊ธฐ", elem_id="clear_button")
89
-
 
90
  result_output = gr.Markdown()
91
  play_audio = gr.Audio(visible=False, label="์ผ๋ณธ์–ด ๋ฐœ์Œ ๋“ฃ๊ธฐ")
92
 
@@ -94,18 +132,18 @@ with gr.Blocks(css="""
94
  keyword_input.submit(
95
  fn=search_and_update_history,
96
  inputs=[keyword_input, conversion_type],
97
- outputs=[result_output, play_audio],
98
  )
99
 
100
  search_button.click(
101
  fn=search_and_update_history,
102
  inputs=[keyword_input, conversion_type],
103
- outputs=[result_output, play_audio],
104
  )
105
 
106
  clear_button.click(
107
  fn=clear_inputs,
108
- outputs=[keyword_input, result_output, play_audio],
109
  )
110
 
111
  # ์•ˆ๋‚ด ๋ฌธ๊ตฌ๋ฅผ UI ๋‚ด๋ถ€๏ฟฝ๏ฟฝ ์ด๋™
 
5
  import os
6
 
7
  # ๋ฒ„์ „ ์ •๋ณด
8
+ __version__ = "1.8.23"
9
 
10
  # Kakasi ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๋ฐ ์„ค์ •
11
  kakasi = pykakasi.kakasi()
 
27
  return converted
28
 
29
  def search_and_update_history(keyword, conversion_type):
30
+ result, converted_keyword = search(keyword, conversion_type)
31
 
32
+ if converted_keyword:
33
+ audio_path = generate_audio_file(converted_keyword)
34
+ url = f"https://www.irasutoya.com/search?q={converted_keyword}"
35
+ result_button_html = f'''
36
+ <a href="{url}" target="_blank">
37
+ <button id="result_button" style="background-color: #28a745; color: white; font-size: 16px; padding: 10px; border: none; border-radius: 5px; cursor: pointer; width: 100%;">๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๋ณด๊ธฐ</button>
38
+ </a>
39
+ '''
40
+ return result, gr.update(value=audio_path, visible=True), gr.update(value=result_button_html, visible=True)
41
  else:
42
+ return result, gr.update(visible=False), gr.update(visible=False)
43
 
44
  def search(keyword, conversion_type):
45
  try:
 
48
 
49
  converted_keyword = convert_text(japanese_keyword, conversion_type)
50
 
 
51
  result_text = (
52
  f"**๊ฒ€์ƒ‰์–ด:** {keyword}\n"
53
+ f"**์ผ๋ณธ์–ด ๋ฒˆ์—ญ ({conversion_type}):** {converted_keyword}\n\n"
 
54
  f"**์•ˆ๋‚ด:** ์„ ํƒํ•œ ๋ณ€ํ™˜ ์œ ํ˜•์— ๋”ฐ๋ผ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."
55
  )
56
  return result_text, converted_keyword
 
67
  return None
68
 
69
  def clear_inputs():
70
+ return "", "", gr.update(visible=False), gr.update(visible(False))
71
 
72
  with gr.Blocks(css="""
73
  #container {
74
  width: 50%;
75
  margin: auto;
76
  }
77
+ button#search_button {
78
+ background-color: #1E90FF;
79
+ color: white;
80
+ font-size: 16px;
81
+ padding: 10px;
82
+ border: none;
83
+ border-radius: 5px;
84
+ cursor: pointer;
85
+ }
86
+ button#clear_button {
87
+ background-color: #A9A9A9;
88
+ color: white;
89
+ font-size: 16px;
90
+ padding: 10px;
91
+ border: none;
92
+ border-radius: 5px;
93
+ cursor: pointer;
94
+ }
95
+ button#result_button {
96
+ background-color: #28a745;
97
+ color: white;
98
+ font-size: 16px;
99
+ padding: 10px;
100
+ border: none;
101
+ border-radius: 5px;
102
+ cursor: pointer;
103
  width: 100%;
104
  }
105
+ button:hover {
106
+ background-color: inherit;
107
+ }
108
  """) as demo:
109
  with gr.Column(elem_id="container"):
110
  gr.Markdown("<h2 style='text-align: center;'>์ด๋ผ์Šคํ† ์•ผ ์ผ๋Ÿฌ์ŠคํŠธ ๊ฒ€์ƒ‰๊ธฐ</h2>")
111
 
112
+ keyword_input = gr.Textbox(
113
+ label="ํ•œ๊ธ€ ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ",
114
+ placeholder="ํ•œ๊ธ€๋กœ ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”",
115
+ elem_id="keyword_input"
116
+ )
117
  conversion_type = gr.Radio(
118
  label="๋ณ€ํ™˜ ์œ ํ˜• ์„ ํƒ",
119
  choices=["๊ธฐ๋ณธ", "ํžˆ๋ผ๊ฐ€๋‚˜", "๊ฐ€ํƒ€์นด๋‚˜", "ํ•œ์ž"],
120
  value="๊ธฐ๋ณธ",
121
  elem_id="conversion_type"
122
  )
123
+
124
  search_button = gr.Button("๊ฒ€์ƒ‰", elem_id="search_button")
125
  clear_button = gr.Button("์ง€์šฐ๊ธฐ", elem_id="clear_button")
126
+
127
+ result_button = gr.HTML(visible=False) # ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๋ณด๊ธฐ ๋ฒ„ํŠผ์„ ์ด ์œ„์น˜๋กœ ์ด๋™
128
  result_output = gr.Markdown()
129
  play_audio = gr.Audio(visible=False, label="์ผ๋ณธ์–ด ๋ฐœ์Œ ๋“ฃ๊ธฐ")
130
 
 
132
  keyword_input.submit(
133
  fn=search_and_update_history,
134
  inputs=[keyword_input, conversion_type],
135
+ outputs=[result_output, play_audio, result_button],
136
  )
137
 
138
  search_button.click(
139
  fn=search_and_update_history,
140
  inputs=[keyword_input, conversion_type],
141
+ outputs=[result_output, play_audio, result_button],
142
  )
143
 
144
  clear_button.click(
145
  fn=clear_inputs,
146
+ outputs=[keyword_input, result_output, play_audio, result_button],
147
  )
148
 
149
  # ์•ˆ๋‚ด ๋ฌธ๊ตฌ๋ฅผ UI ๋‚ด๋ถ€๏ฟฝ๏ฟฝ ์ด๋™