fruitpicker01 commited on
Commit
b5bb9b1
·
verified ·
1 Parent(s): 6d4c1a4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -10
app.py CHANGED
@@ -118,14 +118,44 @@ def download_current_message_database():
118
  df.drop_duplicates(inplace=True)
119
  # Сортируем по 'Дата сохранения' по убыванию
120
  df.sort_values(by='Дата сохранения', ascending=False, inplace=True)
121
- # Сохраняем Excel-файл во временное местоположение
122
- temp_dir = tempfile.gettempdir()
123
- output_file_path = os.path.join(temp_dir, 'messages.xlsx')
124
- df.to_excel(output_file_path, index=False)
125
- # Возвращаем путь к файлу
126
- return output_file_path
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  else:
128
- return None
129
 
130
 
131
  def correct_dash_usage(text):
@@ -1852,7 +1882,7 @@ with gr.Blocks() as demo:
1852
 
1853
  with gr.Row():
1854
  download_btn = gr.Button("Выгрузить актуальную базу сообщений")
1855
- download_file = gr.File(label="Скачать базу сообщений")
1856
 
1857
  # Очистка всех полей кроме prompt_display
1858
  description_input.change(
@@ -2515,10 +2545,18 @@ with gr.Blocks() as demo:
2515
  outputs=[save_meta_llama_405b_btn]
2516
  )
2517
 
 
 
 
 
 
 
 
 
2518
  download_btn.click(
2519
- fn=download_current_message_database,
2520
  inputs=[],
2521
- outputs=download_file
2522
  )
2523
 
2524
  demo.launch()
 
118
  df.drop_duplicates(inplace=True)
119
  # Сортируем по 'Дата сохранения' по убыванию
120
  df.sort_values(by='Дата сохранения', ascending=False, inplace=True)
121
+ # Сохраняем Excel-файл в памяти
122
+ output = io.BytesIO()
123
+ df.to_excel(output, index=False)
124
+ output.seek(0) # Сбрасываем указатель
125
+
126
+ # Кодируем содержимое файла в base64 для загрузки на GitHub
127
+ content = base64.b64encode(output.read()).decode('utf-8')
128
+
129
+ # Параметры для загрузки файла на GitHub
130
+ repo = "fruitpicker01/Storage_dev"
131
+ path = "messages.xlsx"
132
+ url = f"https://api.github.com/repos/{repo}/contents/{path}"
133
+
134
+ # Проверяем, существует ли файл уже
135
+ get_response = requests.get(url, headers=headers)
136
+ if get_response.status_code == 200:
137
+ sha = get_response.json()['sha']
138
+ else:
139
+ sha = None
140
+
141
+ data = {
142
+ "message": f"Обновлен файл messages.xlsx",
143
+ "content": content,
144
+ }
145
+ if sha:
146
+ data["sha"] = sha # Необходимо для обновления существующего файла
147
+
148
+ # Загружаем (или обновляем) файл на GitHub
149
+ put_response = requests.put(url, headers=headers, data=json.dumps(data))
150
+ if put_response.status_code in [200, 201]:
151
+ # Получаем ссылку для скачивания файла
152
+ download_url = f"https://raw.githubusercontent.com/{repo}/main/{path}"
153
+ return download_url # Возвращаем URL файла
154
+ else:
155
+ print(f"Ошибка при загрузке файла на GitHub: {put_response.status_code}, {put_response.text}")
156
+ return "Ошибка при загрузке файла на GitHub."
157
  else:
158
+ return "Нет данных для формирования файла."
159
 
160
 
161
  def correct_dash_usage(text):
 
1882
 
1883
  with gr.Row():
1884
  download_btn = gr.Button("Выгрузить актуальную базу сообщений")
1885
+ download_link = gr.Markdown(value="", label="Ссылка для скачивания")
1886
 
1887
  # Очистка всех полей кроме prompt_display
1888
  description_input.change(
 
2545
  outputs=[save_meta_llama_405b_btn]
2546
  )
2547
 
2548
+ # Свяжите кнопку с функцией
2549
+ def update_download_link():
2550
+ link = download_current_message_database()
2551
+ if link.startswith("http"):
2552
+ return f"[Скачать базу сообщений]({link})"
2553
+ else:
2554
+ return link # Возвращаем сообщение об ошибке
2555
+
2556
  download_btn.click(
2557
+ fn=update_download_link,
2558
  inputs=[],
2559
+ outputs=download_link
2560
  )
2561
 
2562
  demo.launch()