ginipick commited on
Commit
c96c458
·
verified ·
1 Parent(s): ee4c075

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -25
app.py CHANGED
@@ -138,35 +138,24 @@ def load_and_process_data():
138
  response = requests.get(url)
139
  df = pd.read_parquet(BytesIO(response.content))
140
 
141
- # 30일치 데이터 준비
142
  thirty_days_ago = datetime.now() - timedelta(days=30)
143
  df['createdAt'] = pd.to_datetime(df['createdAt'])
144
  df = df[df['createdAt'] >= thirty_days_ago].copy()
145
 
146
- # 날짜별 데이터 처리
147
  dates = pd.date_range(start=thirty_days_ago, end=datetime.now(), freq='D')
148
  daily_ranks = []
149
 
150
  for date in dates:
151
- # 해당 날짜의 데이터 추출
152
  date_data = df[df['createdAt'].dt.date <= date.date()].copy()
153
-
154
- # trendingScore가 같은 경우 id로 정렬하여 유니크한 순위 보장
155
  date_data = date_data.sort_values(['trendingScore', 'id'], ascending=[False, True])
156
-
157
- # 순위 계산
158
  date_data['rank'] = range(1, len(date_data) + 1)
159
  date_data['date'] = date.date()
160
-
161
- # 필요한 컬럼만 선택
162
  daily_ranks.append(
163
  date_data[['id', 'date', 'rank', 'trendingScore', 'createdAt']]
164
  )
165
 
166
- # 전체 데이터 병합
167
  daily_ranks_df = pd.concat(daily_ranks, ignore_index=True)
168
 
169
- # 최신 날짜의 top 100 추출
170
  latest_date = daily_ranks_df['date'].max()
171
  top_100_spaces = daily_ranks_df[
172
  (daily_ranks_df['date'] == latest_date) &
@@ -244,21 +233,17 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
244
  Experience the pulse of the AI community through our daily updated rankings and discover what's making waves in the world of practical AI applications.
245
  """)
246
 
247
- # JavaScript 통한 카드 클릭 이벤트 처리
248
  space_grid.click(
249
- fn=lambda: None,
250
- inputs=[],
251
- outputs=[],
252
- _js="""
253
- function() {
254
- document.addEventListener('click', function(e) {
255
- if (e.target.closest('.space-card')) {
256
- const spaceId = e.target.closest('.space-card').dataset.spaceId;
257
- document.querySelector(`input[type="radio"][value="${spaceId}"]`).click();
258
- }
259
- });
260
- }
261
- """
262
  )
263
 
264
  space_selection.change(
 
138
  response = requests.get(url)
139
  df = pd.read_parquet(BytesIO(response.content))
140
 
 
141
  thirty_days_ago = datetime.now() - timedelta(days=30)
142
  df['createdAt'] = pd.to_datetime(df['createdAt'])
143
  df = df[df['createdAt'] >= thirty_days_ago].copy()
144
 
 
145
  dates = pd.date_range(start=thirty_days_ago, end=datetime.now(), freq='D')
146
  daily_ranks = []
147
 
148
  for date in dates:
 
149
  date_data = df[df['createdAt'].dt.date <= date.date()].copy()
 
 
150
  date_data = date_data.sort_values(['trendingScore', 'id'], ascending=[False, True])
 
 
151
  date_data['rank'] = range(1, len(date_data) + 1)
152
  date_data['date'] = date.date()
 
 
153
  daily_ranks.append(
154
  date_data[['id', 'date', 'rank', 'trendingScore', 'createdAt']]
155
  )
156
 
 
157
  daily_ranks_df = pd.concat(daily_ranks, ignore_index=True)
158
 
 
159
  latest_date = daily_ranks_df['date'].max()
160
  top_100_spaces = daily_ranks_df[
161
  (daily_ranks_df['date'] == latest_date) &
 
233
  Experience the pulse of the AI community through our daily updated rankings and discover what's making waves in the world of practical AI applications.
234
  """)
235
 
236
+ # 수정된 JavaScript 이벤트 처리
237
  space_grid.click(
238
+ None,
239
+ None,
240
+ None,
241
+ js="""async (event) => {
242
+ if (event.target.closest('.space-card')) {
243
+ const spaceId = event.target.closest('.space-card').dataset.spaceId;
244
+ document.querySelector(`input[type="radio"][value="${spaceId}"]`).click();
245
+ }
246
+ }"""
 
 
 
 
247
  )
248
 
249
  space_selection.change(