Felguk commited on
Commit
48bc3a2
·
verified ·
1 Parent(s): 80fb263

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +43 -13
app.py CHANGED
@@ -12,23 +12,53 @@ def is_valid_url(url):
12
 
13
  def convert_to_text(url):
14
  if not is_valid_url(url):
15
- return "Ошибка: Введите корректный URL."
16
 
17
  try:
18
- response = requests.get(url)
 
 
 
 
19
  response.raise_for_status() # Проверка на ошибки HTTP (например, 404, 500)
20
- return response.text
21
- except requests.exceptions.RequestException:
22
- return "" # Возвращаем пустую строку в случае ошибки
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
  # Создаем интерфейс Gradio
25
- iface = gr.Interface(
26
- fn=convert_to_text, # Функция, которая будет вызываться
27
- inputs="text", # Входные данные: текстовое поле для ввода ссылки
28
- outputs="text", # Выходные данные: текстовое поле для вывода результата
29
- title="Конвертер ссылки на исходный код в текст",
30
- description="Введите ссылку на исходный код (например, GitHub), чтобы получить его текстовое содержимое."
31
- )
 
 
 
 
 
 
 
 
32
 
33
  # Запускаем интерфейс
34
- iface.launch()
 
12
 
13
  def convert_to_text(url):
14
  if not is_valid_url(url):
15
+ return "Ошибка: Введите корректный URL.", "" # Возвращаем сообщение об ошибке и пустую строку
16
 
17
  try:
18
+ # Устанавливаем заголовки, чтобы имитировать запрос от браузера
19
+ headers = {
20
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
21
+ }
22
+ response = requests.get(url, headers=headers)
23
  response.raise_for_status() # Проверка на ошибки HTTP (например, 404, 500)
24
+
25
+ # Возвращаем результаты
26
+ status = f"Статус запроса: {response.status_code}"
27
+ content_length = f"Размер содержимого: {len(response.text)} символов"
28
+ results = f"{status}\n{content_length}"
29
+ return results, response.text # Возвращаем результаты и содержимое
30
+ except requests.exceptions.RequestException as e:
31
+ return f"Ошибка: {e}", "" # Возвращаем сообщение об ошибке и пустую строку
32
+
33
+ # HTML и JavaScript для кнопки "Скопировать"
34
+ copy_button_html = """
35
+ <script>
36
+ function copyText() {
37
+ const text = document.querySelector("#output-text textarea").value;
38
+ navigator.clipboard.writeText(text).then(() => {
39
+ alert("Текст скопирован!");
40
+ });
41
+ }
42
+ </script>
43
+ <button onclick="copyText()">Скопировать текст</button>
44
+ """
45
 
46
  # Создаем интерфейс Gradio
47
+ with gr.Blocks() as demo:
48
+ gr.Markdown("## Конвертер ссылки в текст")
49
+ gr.Markdown("Введите ссылку на любой сайт, чтобы получить его текстовое содержимое и результаты запроса.")
50
+
51
+ with gr.Row():
52
+ url_input = gr.Textbox(label="Введите URL", placeholder="https://example.com")
53
+
54
+ with gr.Row():
55
+ results_output = gr.Textbox(label="Результаты запроса", interactive=False)
56
+ text_output = gr.Textbox(label="Текстовое содержимое", interactive=True)
57
+
58
+ gr.HTML(copy_button_html) # Добавляем кнопку "Скопировать"
59
+
60
+ submit_button = gr.Button("Загрузить")
61
+ submit_button.click(fn=convert_to_text, inputs=url_input, outputs=[results_output, text_output])
62
 
63
  # Запускаем интерфейс
64
+ demo.launch()