Eluza133 commited on
Commit
f0bc730
·
verified ·
1 Parent(s): a90ffca

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -27
app.py CHANGED
@@ -96,7 +96,7 @@ def register():
96
 
97
  data['users'][username] = {'password': password}
98
  save_data(data)
99
- logging.info(f"Пользователь {username} зарегистрирован с паролем {password}")
100
  flash('Регистрация успешна! Войдите в систему.')
101
  return redirect(url_for('login'))
102
 
@@ -150,19 +150,11 @@ def login():
150
  password = request.form.get('password')
151
  data = load_data()
152
 
153
- logging.debug(f"Попытка входа: {username}, введённый пароль: {password}")
154
- if username in data['users']:
155
- stored_password = data['users'][username]['password']
156
- logging.debug(f"Сохранённый пароль для {username}: {stored_password}")
157
- if stored_password == password:
158
- session['username'] = username
159
- session.permanent = True
160
- logging.info(f"Успешный вход: {username}, сессия: {session['username']}")
161
- return redirect(url_for('video_feed'))
162
- else:
163
- logging.warning(f"Неверный пароль для {username}")
164
- else:
165
- logging.warning(f"Пользователь {username} не найден")
166
  flash('Неверный логин или пароль!')
167
  return redirect(url_for('login'))
168
 
@@ -215,14 +207,13 @@ def logout():
215
  logging.info("Пользователь вышел из системы")
216
  return redirect(url_for('video_feed'))
217
 
218
- # Главная страница - лента видео с превью (доступна всем)
219
  @app.route('/')
220
  def video_feed():
221
  data = load_data()
222
  videos = data['videos']
223
  is_authenticated = 'username' in session
224
  username = session.get('username', None)
225
- logging.debug(f"Сессия на главной: is_authenticated={is_authenticated}, username={username}")
226
  html = '''
227
  <!DOCTYPE html>
228
  <html lang="ru">
@@ -271,7 +262,7 @@ def video_feed():
271
  <h1>Лента видео</h1>
272
  <div class="video-grid">
273
  {% for video in videos %}
274
- <a href="{{ url_for('video_page', title=video['title']) }}" class="video-item">
275
  <img src="https://via.placeholder.com/300x200?text={{ video['title'] }}" alt="{{ video['title'] }}">
276
  <h2>{{ video['title'] }}</h2>
277
  <p>{{ video['description'] }}</p>
@@ -290,11 +281,11 @@ def video_feed():
290
  '''
291
  return render_template_string(html, videos=videos, is_authenticated=is_authenticated, username=username)
292
 
293
- # Страница отдельного видео (доступна всем)
294
- @app.route('/video/<title>')
295
- def video_page(title):
296
  data = load_data()
297
- video = next((v for v in data['videos'] if v['title'] == title), None)
298
  if not video:
299
  return "Видео не найдено", 404
300
 
@@ -363,7 +354,7 @@ def video_page(title):
363
  '''
364
  return render_template_string(html, video=video, repo_id=REPO_ID, is_authenticated=is_authenticated, username=username)
365
 
366
- # Страница профиля (только для авторизованных)
367
  @app.route('/profile', methods=['GET', 'POST'])
368
  def profile():
369
  if 'username' not in session:
@@ -431,8 +422,10 @@ def profile():
431
  {% if user_videos %}
432
  {% for video in user_videos %}
433
  <div class="video-item">
434
- <img src="https://via.placeholder.com/300x200?text={{ video['title'] }}" alt="{{ video['title'] }}">
435
- <h3>{{ video['title'] }}</h3>
 
 
436
  <p>{{ video['description'] }}</p>
437
  <p>{{ video['upload_date'] }}</p>
438
  <form method="POST">
@@ -456,7 +449,7 @@ def profile():
456
  '''
457
  return render_template_string(html, username=username, user_videos=user_videos)
458
 
459
- # С��раница загрузки видео (только для авторизованных)
460
  @app.route('/upload', methods=['GET', 'POST'])
461
  def upload_video():
462
  if 'username' not in session:
@@ -488,9 +481,11 @@ def upload_video():
488
  commit_message=f"Добавлено видео: {title} пользователем {uploader}"
489
  )
490
 
491
- # Обновление базы данных
492
  data = load_data()
493
  video_id = f"video_{len(data['videos']) + 1}"
 
 
494
  data['videos'].append({
495
  'id': video_id,
496
  'title': title,
@@ -500,7 +495,7 @@ def upload_video():
500
  'upload_date': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
501
  })
502
  save_data(data)
503
- logging.info(f"Видео {title} загружено пользователем {uploader}")
504
 
505
  if os.path.exists(temp_path):
506
  os.remove(temp_path)
 
96
 
97
  data['users'][username] = {'password': password}
98
  save_data(data)
99
+ logging.info(f"Пользователь {username} зарегистрирован")
100
  flash('Регистрация успешна! Войдите в систему.')
101
  return redirect(url_for('login'))
102
 
 
150
  password = request.form.get('password')
151
  data = load_data()
152
 
153
+ if username in data['users'] and data['users'][username]['password'] == password:
154
+ session['username'] = username
155
+ session.permanent = True
156
+ logging.info(f"Успешный вход: {username}")
157
+ return redirect(url_for('video_feed'))
 
 
 
 
 
 
 
 
158
  flash('Неверный логин или пароль!')
159
  return redirect(url_for('login'))
160
 
 
207
  logging.info("Пользователь вышел из системы")
208
  return redirect(url_for('video_feed'))
209
 
210
+ # Главная страница - лента видео
211
  @app.route('/')
212
  def video_feed():
213
  data = load_data()
214
  videos = data['videos']
215
  is_authenticated = 'username' in session
216
  username = session.get('username', None)
 
217
  html = '''
218
  <!DOCTYPE html>
219
  <html lang="ru">
 
262
  <h1>Лента видео</h1>
263
  <div class="video-grid">
264
  {% for video in videos %}
265
+ <a href="{{ url_for('video_page', video_id=video['id']) }}" class="video-item">
266
  <img src="https://via.placeholder.com/300x200?text={{ video['title'] }}" alt="{{ video['title'] }}">
267
  <h2>{{ video['title'] }}</h2>
268
  <p>{{ video['description'] }}</p>
 
281
  '''
282
  return render_template_string(html, videos=videos, is_authenticated=is_authenticated, username=username)
283
 
284
+ # Страница отдельного видео
285
+ @app.route('/video/<video_id>')
286
+ def video_page(video_id):
287
  data = load_data()
288
+ video = next((v for v in data['videos'] if v['id'] == video_id), None)
289
  if not video:
290
  return "Видео не найдено", 404
291
 
 
354
  '''
355
  return render_template_string(html, video=video, repo_id=REPO_ID, is_authenticated=is_authenticated, username=username)
356
 
357
+ # Страница профиля
358
  @app.route('/profile', methods=['GET', 'POST'])
359
  def profile():
360
  if 'username' not in session:
 
422
  {% if user_videos %}
423
  {% for video in user_videos %}
424
  <div class="video-item">
425
+ <a href="{{ url_for('video_page', video_id=video['id']) }}">
426
+ <img src="https://via.placeholder.com/300x200?text={{ video['title'] }}" alt="{{ video['title'] }}">
427
+ <h3>{{ video['title'] }}</h3>
428
+ </a>
429
  <p>{{ video['description'] }}</p>
430
  <p>{{ video['upload_date'] }}</p>
431
  <form method="POST">
 
449
  '''
450
  return render_template_string(html, username=username, user_videos=user_videos)
451
 
452
+ # Страница загрузки видео
453
  @app.route('/upload', methods=['GET', 'POST'])
454
  def upload_video():
455
  if 'username' not in session:
 
481
  commit_message=f"Добавлено видео: {title} пользователем {uploader}"
482
  )
483
 
484
+ # Обновление базы данных с уникальным ID
485
  data = load_data()
486
  video_id = f"video_{len(data['videos']) + 1}"
487
+ while any(v['id'] == video_id for v in data['videos']):
488
+ video_id = f"video_{len(data['videos']) + 1}_{int(time.time())}"
489
  data['videos'].append({
490
  'id': video_id,
491
  'title': title,
 
495
  'upload_date': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
496
  })
497
  save_data(data)
498
+ logging.info(f"Видео {title} загружено пользователем {uploader} с ID {video_id}")
499
 
500
  if os.path.exists(temp_path):
501
  os.remove(temp_path)