Quazim0t0 commited on
Commit
d64cf2b
·
verified ·
1 Parent(s): 72e8234

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -33
app.py CHANGED
@@ -50,7 +50,7 @@ if not benchmarks or len(benchmarks) == 0:
50
  else:
51
  print(f"Found {len(benchmarks)} existing benchmarks.")
52
 
53
- # Custom CSS with better theme compatibility
54
  css = """
55
  /* Theme-adaptive colored info box */
56
  .info-text {
@@ -102,40 +102,22 @@ input[type="text"], input[type="password"], textarea {
102
  color: var(--body-text-color) !important;
103
  }
104
 
105
- /* Make Textbox placeholders more visible */
106
- ::placeholder {
107
- color: var(--body-text-color-subdued) !important;
108
- opacity: 0.7 !important;
109
- }
110
-
111
- /* Make tab labels more visible */
112
- .tab-nav button {
113
- color: var(--body-text-color) !important;
114
- }
115
-
116
- /* Improve contrast in dataframes */
117
- table.dataframe th, table.dataframe td {
118
- color: var(--body-text-color) !important;
119
- }
120
-
121
- /* Ensure buttons have visible text */
122
- button.primary {
123
- color: white !important;
124
- }
125
-
126
- /* Force high contrast for dropdown/select options */
127
- .select-option {
128
- color: var(--body-text-color) !important;
129
- }
130
-
131
- /* Improve visibility in dark mode specifically */
132
  @media (prefers-color-scheme: dark) {
133
- .info-text {
134
- background-color: rgba(53, 130, 220, 0.2);
 
 
 
 
135
  }
136
  }
137
  """
138
 
 
 
 
 
139
  # Start evaluation queue worker
140
  def start_queue_worker():
141
  # Wait a moment to ensure app is initialized
@@ -147,7 +129,32 @@ def start_queue_worker():
147
  print(f"Error starting queue worker: {e}")
148
 
149
  # Create Gradio app
150
- with gr.Blocks(css=css, title="Dynamic Highscores", theme=gr.themes.Default()) as app:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  gr.Markdown("# 🏆 Dynamic Highscores", elem_classes=["header"])
152
  gr.Markdown("""
153
  Welcome to Dynamic Highscores - a community benchmark platform for evaluating and comparing language models.
@@ -159,8 +166,8 @@ with gr.Blocks(css=css, title="Dynamic Highscores", theme=gr.themes.Default()) a
159
  """, elem_classes=["info-text"])
160
 
161
  # Authentication UI
162
- login_button, logout_button, token_input, user_info = create_login_ui()
163
- setup_auth_handlers(login_button, logout_button, token_input, user_info, auth_manager)
164
 
165
  # Main tabs
166
  with gr.Tabs() as tabs:
@@ -182,6 +189,13 @@ with gr.Blocks(css=css, title="Dynamic Highscores", theme=gr.themes.Default()) a
182
 
183
  Created by Quazim0t0
184
  """, elem_classes=["footer"])
 
 
 
 
 
 
 
185
 
186
  # Launch the app
187
  if __name__ == "__main__":
 
50
  else:
51
  print(f"Found {len(benchmarks)} existing benchmarks.")
52
 
53
+ # Custom CSS with theme awareness
54
  css = """
55
  /* Theme-adaptive colored info box */
56
  .info-text {
 
102
  color: var(--body-text-color) !important;
103
  }
104
 
105
+ /* Fix dark mode text visibility */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  @media (prefers-color-scheme: dark) {
107
+ input, textarea, select {
108
+ color: #ffffff !important;
109
+ }
110
+
111
+ ::placeholder {
112
+ color: rgba(255, 255, 255, 0.5) !important;
113
  }
114
  }
115
  """
116
 
117
+ # Check if the server is running in a HuggingFace Space
118
+ def is_running_in_hf_space():
119
+ return 'SPACE_ID' in os.environ
120
+
121
  # Start evaluation queue worker
122
  def start_queue_worker():
123
  # Wait a moment to ensure app is initialized
 
129
  print(f"Error starting queue worker: {e}")
130
 
131
  # Create Gradio app
132
+ with gr.Blocks(css=css, title="Dynamic Highscores", theme=gr.themes.Soft()) as app:
133
+ auth_status = gr.State(None) # Store user auth state
134
+
135
+ # Auth status check on page load
136
+ def check_auth_on_load(request: gr.Request):
137
+ # Check if running in HF Space with OAuth
138
+ if is_running_in_hf_space():
139
+ username = request.headers.get("HF-User")
140
+ if username:
141
+ print(f"Detected logged-in user via Space OAuth: {username}")
142
+ # Get or create user
143
+ user = db.get_user_by_username(username)
144
+ if not user:
145
+ print(f"Creating new user: {username}")
146
+ is_admin = (username == "Quazim0t0") # Replace with your admin username
147
+ db.add_user(username, username, is_admin)
148
+ user = db.get_user_by_username(username)
149
+ return user, f"Logged in as {username}"
150
+ else:
151
+ # Fallback to cookie-based auth for local development
152
+ user = auth_manager.check_login(request)
153
+ if user:
154
+ return user, f"Logged in as {user['username']}"
155
+
156
+ return None, "Not logged in"
157
+
158
  gr.Markdown("# 🏆 Dynamic Highscores", elem_classes=["header"])
159
  gr.Markdown("""
160
  Welcome to Dynamic Highscores - a community benchmark platform for evaluating and comparing language models.
 
166
  """, elem_classes=["info-text"])
167
 
168
  # Authentication UI
169
+ login_button, logout_button, user_info = create_login_ui()
170
+ setup_auth_handlers(login_button, logout_button, user_info, auth_manager)
171
 
172
  # Main tabs
173
  with gr.Tabs() as tabs:
 
189
 
190
  Created by Quazim0t0
191
  """, elem_classes=["footer"])
192
+
193
+ # Check auth on load
194
+ app.load(
195
+ fn=check_auth_on_load,
196
+ inputs=[],
197
+ outputs=[auth_status, user_info]
198
+ )
199
 
200
  # Launch the app
201
  if __name__ == "__main__":