openfree commited on
Commit
2840034
ยท
verified ยท
1 Parent(s): 4ac0f03

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -12
app.py CHANGED
@@ -2,6 +2,8 @@ from flask import Flask, render_template, request, jsonify
2
  import requests
3
  import os
4
  from collections import Counter
 
 
5
 
6
  ##############################################################################
7
  # 1) ์ „์—ญ ๋ณ€์ˆ˜ & ๋”๋ฏธ ๋ฐ์ดํ„ฐ
@@ -24,7 +26,8 @@ def generate_dummy_spaces(count):
24
  'title': f'Dummy Space {i+1}',
25
  'description': 'This is a fallback dummy space.',
26
  'likes': 100 - i,
27
- 'createdAt': '2023-01-01T00:00:00.000Z', # createdAt๋„ ์˜ˆ์‹œ๋กœ ์ถ”๊ฐ€
 
28
  'hardware': 'cpu',
29
  'user': {
30
  'avatar_url': 'https://huggingface.co/front/thumbnails/huggingface/default-avatar.svg',
@@ -242,20 +245,26 @@ def new_created_spaces():
242
  """
243
  ensure_cache_loaded()
244
 
245
- # createdAt ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
246
- # createdAt์ด ์—†๋Š” ๊ฒฝ์šฐ(๋”๋ฏธ ๋“ฑ) '' ๊ธฐ๋ณธ๊ฐ’ โ†’ ๊ทธ๋Ÿด ๋• ๋น„๊ต๊ฐ€ ๋’ค๋กœ ๋ฐ€๋ฆด ์ˆ˜๋„ ์žˆ์Œ
247
- # ๋ฌธ์ž์—ด ๋น„๊ต ํ˜•ํƒœ๊ฐ€ "YYYY-MM-DD..."์ด๋ฉด ์—ญ์ˆœ ์ •๋ ฌ ๊ฐ€๋Šฅ
 
 
 
 
 
 
248
  sorted_by_new = sorted(
249
  SPACE_CACHE,
250
- key=lambda s: s.get('createdAt', ''),
251
  reverse=True
252
  )
253
 
254
- # ์ตœ๋Œ€ 500๊ฐœ๊นŒ์ง€๋งŒ
255
- newest_500 = sorted_by_new[:100]
256
 
257
  final = []
258
- for i, sp in enumerate(newest_500):
259
  # rank๋Š” ๋‹จ์ˆœ i+1 ๋กœ
260
  detail = get_space_details(sp, i, 0)
261
  if detail:
@@ -274,7 +283,6 @@ if __name__ == '__main__':
274
 
275
  # -------------------
276
  # index.html ์ „์ฒด ์ƒ์„ฑ
277
- # ์•„๋ž˜๋Š” ๊ธฐ์กด ์ฝ”๋“œ + "New Created" ํƒญ ์ถ”๊ฐ€ ๋ถ€๋ถ„
278
  # -------------------
279
  with open('templates/index.html', 'w', encoding='utf-8') as f:
280
  f.write('''<!DOCTYPE html>
@@ -1447,7 +1455,7 @@ if __name__ == '__main__':
1447
  }
1448
 
1449
  // --------------------- NEW CREATED ---------------------
1450
- // ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์ŠคํŽ˜์ด์Šค(์ตœ์‹  ์ˆœ 500๊ฐœ) ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
1451
  function loadNewCreatedSpaces() {
1452
  setLoading(true);
1453
  fetch('/api/new-created-spaces')
@@ -1476,7 +1484,7 @@ if __name__ == '__main__':
1476
  return;
1477
  }
1478
 
1479
- // ์ตœ์‹  ์ƒ์„ฑ๋œ ์ŠคํŽ˜์ด์Šค 500๊ฐœ๋ฅผ ํ‘œ์‹œํ•˜๋ฏ€๋กœ, rank๋Š” i+1 ๋กœ ๋‹จ์ˆœ ๋ถ€์—ฌ
1480
  spaces.forEach((item) => {
1481
  try {
1482
  const {
@@ -1834,5 +1842,4 @@ if __name__ == '__main__':
1834
  </html>
1835
  ''')
1836
 
1837
- # Flask ์„œ๋ฒ„ ์‹คํ–‰
1838
  app.run(host='0.0.0.0', port=7860)
 
2
  import requests
3
  import os
4
  from collections import Counter
5
+ from datetime import datetime
6
+ import dateutil.parser # โ† ์ถ”๊ฐ€
7
 
8
  ##############################################################################
9
  # 1) ์ „์—ญ ๋ณ€์ˆ˜ & ๋”๋ฏธ ๋ฐ์ดํ„ฐ
 
26
  'title': f'Dummy Space {i+1}',
27
  'description': 'This is a fallback dummy space.',
28
  'likes': 100 - i,
29
+ # createdAt๋„ ์˜ˆ์‹œ๋กœ ์ถ”๊ฐ€ (๋ชจ๋‘ ๋™์ผ ๋‚ ์งœ)
30
+ 'createdAt': '2023-01-01T00:00:00.000Z',
31
  'hardware': 'cpu',
32
  'user': {
33
  'avatar_url': 'https://huggingface.co/front/thumbnails/huggingface/default-avatar.svg',
 
245
  """
246
  ensure_cache_loaded()
247
 
248
+ # createdAt์ด ISO8601 ํ˜•ํƒœ์ธ์ง€ ํ™•์ธ ํ›„ ํŒŒ์‹ฑ. ์‹คํŒจ ์‹œ datetime.min ์‚ฌ์šฉ
249
+ def parse_created_at(space):
250
+ date_str = space.get('createdAt', '')
251
+ try:
252
+ return dateutil.parser.isoparse(date_str)
253
+ except:
254
+ return datetime.min
255
+
256
+ # createdAt ๊ธฐ์ค€์œผ๋กœ ํŒŒ์‹ฑํ•˜์—ฌ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
257
  sorted_by_new = sorted(
258
  SPACE_CACHE,
259
+ key=lambda s: parse_created_at(s),
260
  reverse=True
261
  )
262
 
263
+ # ์ตœ๋Œ€ 100๊ฐœ๊นŒ์ง€๋งŒ
264
+ newest_100 = sorted_by_new[:100]
265
 
266
  final = []
267
+ for i, sp in enumerate(newest_100):
268
  # rank๋Š” ๋‹จ์ˆœ i+1 ๋กœ
269
  detail = get_space_details(sp, i, 0)
270
  if detail:
 
283
 
284
  # -------------------
285
  # index.html ์ „์ฒด ์ƒ์„ฑ
 
286
  # -------------------
287
  with open('templates/index.html', 'w', encoding='utf-8') as f:
288
  f.write('''<!DOCTYPE html>
 
1455
  }
1456
 
1457
  // --------------------- NEW CREATED ---------------------
1458
+ // ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ์ŠคํŽ˜์ด์Šค(์ตœ์‹  ์ˆœ 100๊ฐœ) ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
1459
  function loadNewCreatedSpaces() {
1460
  setLoading(true);
1461
  fetch('/api/new-created-spaces')
 
1484
  return;
1485
  }
1486
 
1487
+ // ์ตœ์‹  ์ƒ์„ฑ๋œ ์ŠคํŽ˜์ด์Šค 100๊ฐœ๋ฅผ ํ‘œ์‹œํ•˜๋ฏ€๋กœ, rank๋Š” i+1 ๋กœ ๋‹จ์ˆœ ๋ถ€์—ฌ
1488
  spaces.forEach((item) => {
1489
  try {
1490
  const {
 
1842
  </html>
1843
  ''')
1844
 
 
1845
  app.run(host='0.0.0.0', port=7860)