Eluza133 commited on
Commit
63a3963
·
verified ·
1 Parent(s): 1c5c1ac

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -28
app.py CHANGED
@@ -27,9 +27,9 @@ logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(
27
  if not HF_TOKEN_WRITE:
28
  logging.error("HF_TOKEN_WRITE не установлен. Убедитесь, что переменная окружения HF_TOKEN задана.")
29
  else:
30
- logging.info("HF_TOKEN_WRITE успешно установлен (первые 5 символов: {0}...)".format(HF_TOKEN_WRITE[:5]))
31
 
32
- # Инициализация файла базы данных при старте
33
  def initialize_data_file():
34
  if not os.path.exists(DATA_FILE):
35
  logging.info(f"Файл {DATA_FILE} не найден, создается новый.")
@@ -39,26 +39,35 @@ def initialize_data_file():
39
  @cache.memoize(timeout=300)
40
  def load_data():
41
  try:
42
- download_db_from_hf()
43
- with open(DATA_FILE, 'r', encoding='utf-8') as file:
44
- data = json.load(file)
45
- if not isinstance(data, dict):
46
- logging.warning("Данные не в формате dict, инициализация пустой базы")
47
- return {'users': {}, 'files': {}}
48
- data.setdefault('users', {})
49
- data.setdefault('files', {})
50
- for token, user_data in data['users'].items():
51
- if 'folders' in user_data:
52
- user_data['files'] = user_data['folders'].get('root', {}).get('files', [])
53
- del user_data['folders']
54
- if 'storage_used' not in user_data:
55
- user_data['storage_used'] = 0
56
- logging.info("Данные успешно загружены")
57
- return data
 
 
 
 
 
 
 
 
58
  except Exception as e:
59
  logging.error(f"Ошибка при загрузке данных: {e}")
60
  initialize_data_file()
61
- return {'users': {}, 'files': {}}
 
62
 
63
  def save_data(data):
64
  try:
@@ -75,7 +84,6 @@ def upload_db_to_hf():
75
  try:
76
  if not os.path.exists(DATA_FILE):
77
  logging.warning(f"Файл {DATA_FILE} не существует, пропускаем загрузку")
78
- initialize_data_file()
79
  return
80
  api = HfApi()
81
  api.upload_file(
@@ -86,9 +94,9 @@ def upload_db_to_hf():
86
  token=HF_TOKEN_WRITE,
87
  commit_message=f"Бэкап {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
88
  )
89
- logging.info("База данных загружена на Hugging Face")
90
  except Exception as e:
91
- logging.error(f"Ошибка при загрузке базы данных: {e}")
92
 
93
  def download_db_from_hf():
94
  try:
@@ -100,7 +108,7 @@ def download_db_from_hf():
100
  local_dir=".",
101
  local_dir_use_symlinks=False
102
  )
103
- logging.info("База данных скачана с Hugging Face")
104
  except Exception as e:
105
  logging.error(f"Ошибка при скачивании базы данных: {e}")
106
  if not os.path.exists(DATA_FILE):
@@ -344,7 +352,7 @@ def register():
344
 
345
  html = '''
346
  <!DOCTYPE html>
347
- <html lang="en">
348
  <head>
349
  <meta charset="UTF-8">
350
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -385,7 +393,7 @@ def login():
385
 
386
  html = '''
387
  <!DOCTYPE html>
388
- <html lang="en">
389
  <head>
390
  <meta charset="UTF-8">
391
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -456,10 +464,10 @@ def dashboard():
456
  file.save(temp_path)
457
  file_size = os.path.getsize(temp_path)
458
 
459
- # Логика загрузки файла на Hugging Face (взята из Code 1)
460
  api = HfApi()
461
  file_path = f"cloud_files/{token}_{filename}"
462
  try:
 
463
  api.upload_file(
464
  path_or_fileobj=temp_path,
465
  path_in_repo=file_path,
@@ -479,7 +487,7 @@ def dashboard():
479
  file_info = {
480
  'filename': filename,
481
  'path': file_path,
482
- 'type': get_file_type(filename),
483
  'upload_date': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
484
  'size': file_size
485
  }
@@ -495,7 +503,7 @@ def dashboard():
495
 
496
  html = '''
497
  <!DOCTYPE html>
498
- <html lang="en">
499
  <head>
500
  <meta charset="UTF-8">
501
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
@@ -613,6 +621,7 @@ def logout():
613
  return redirect(url_for('login'))
614
 
615
  if __name__ == '__main__':
 
616
  initialize_data_file()
617
  threading.Thread(target=periodic_backup, daemon=True).start()
618
  app.run(debug=True, host='0.0.0.0', port=7860)
 
27
  if not HF_TOKEN_WRITE:
28
  logging.error("HF_TOKEN_WRITE не установлен. Убедитесь, что переменная окружения HF_TOKEN задана.")
29
  else:
30
+ logging.info(f"HF_TOKEN_WRITE установлен (первые 5 символов: {HF_TOKEN_WRITE[:5]}...)")
31
 
32
+ # Инициализация файла базы данных только если он не существует
33
  def initialize_data_file():
34
  if not os.path.exists(DATA_FILE):
35
  logging.info(f"Файл {DATA_FILE} не найден, создается новый.")
 
39
  @cache.memoize(timeout=300)
40
  def load_data():
41
  try:
42
+ # Сначала пытаемся загрузить локальный файл, если он существует
43
+ if os.path.exists(DATA_FILE):
44
+ with open(DATA_FILE, 'r', encoding='utf-8') as file:
45
+ data = json.load(file)
46
+ logging.info("Данные загружены из локального файла")
47
+ else:
48
+ # Если локального файла нет, скачиваем с Hugging Face
49
+ download_db_from_hf()
50
+ with open(DATA_FILE, 'r', encoding='utf-8') as file:
51
+ data = json.load(file)
52
+ logging.info("Данные загружены с Hugging Face")
53
+
54
+ if not isinstance(data, dict):
55
+ logging.warning("Данные не в формате dict, инициализация пустой базы")
56
+ return {'users': {}, 'files': {}}
57
+ data.setdefault('users', {})
58
+ data.setdefault('files', {})
59
+ for token, user_data in data['users'].items():
60
+ if 'folders' in user_data:
61
+ user_data['files'] = user_data['folders'].get('root', {}).get('files', [])
62
+ del user_data['folders']
63
+ if 'storage_used' not in user_data:
64
+ user_data['storage_used'] = 0
65
+ return data
66
  except Exception as e:
67
  logging.error(f"Ошибка при загрузке данных: {e}")
68
  initialize_data_file()
69
+ with open(DATA_FILE, 'r', encoding='utf-8') as file:
70
+ return json.load(file)
71
 
72
  def save_data(data):
73
  try:
 
84
  try:
85
  if not os.path.exists(DATA_FILE):
86
  logging.warning(f"Файл {DATA_FILE} не существует, пропускаем загрузку")
 
87
  return
88
  api = HfApi()
89
  api.upload_file(
 
94
  token=HF_TOKEN_WRITE,
95
  commit_message=f"Бэкап {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"
96
  )
97
+ logging.info("База данных успешно загружена на Hugging Face")
98
  except Exception as e:
99
+ logging.error(f"Ошибка при загрузке базы данных на Hugging Face: {e}")
100
 
101
  def download_db_from_hf():
102
  try:
 
108
  local_dir=".",
109
  local_dir_use_symlinks=False
110
  )
111
+ logging.info("База данных успешно скачана с Hugging Face")
112
  except Exception as e:
113
  logging.error(f"Ошибка при скачивании базы данных: {e}")
114
  if not os.path.exists(DATA_FILE):
 
352
 
353
  html = '''
354
  <!DOCTYPE html>
355
+ <html lang="ru">
356
  <head>
357
  <meta charset="UTF-8">
358
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
393
 
394
  html = '''
395
  <!DOCTYPE html>
396
+ <html lang="ru">
397
  <head>
398
  <meta charset="UTF-8">
399
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
464
  file.save(temp_path)
465
  file_size = os.path.getsize(temp_path)
466
 
 
467
  api = HfApi()
468
  file_path = f"cloud_files/{token}_{filename}"
469
  try:
470
+ logging.info(f"Попытка загрузки файла: {filename} в {file_path}")
471
  api.upload_file(
472
  path_or_fileobj=temp_path,
473
  path_in_repo=file_path,
 
487
  file_info = {
488
  'filename': filename,
489
  'path': file_path,
490
+ ' éxtra': get_file_type(filename),
491
  'upload_date': datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
492
  'size': file_size
493
  }
 
503
 
504
  html = '''
505
  <!DOCTYPE html>
506
+ <html lang="ru">
507
  <head>
508
  <meta charset="UTF-8">
509
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
621
  return redirect(url_for('login'))
622
 
623
  if __name__ == '__main__':
624
+ # Инициализация только если файла нет
625
  initialize_data_file()
626
  threading.Thread(target=periodic_backup, daemon=True).start()
627
  app.run(debug=True, host='0.0.0.0', port=7860)