Spaces:
Runtime error
Runtime error
File size: 1,631 Bytes
ccec886 3110228 91bbd67 4de0319 ccec886 91bbd67 ccec886 91bbd67 4de0319 ccec886 91bbd67 4de0319 91bbd67 4de0319 91bbd67 4de0319 91bbd67 4de0319 ccec886 4de0319 ccec886 91bbd67 3110228 91bbd67 3110228 91bbd67 3110228 91bbd67 3110228 91bbd67 3110228 91bbd67 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
import gradio as gr
import gradio.blocks
import gradio.networking
import gradio.utils
from auth import attach_oauth
if gradio.utils.get_space() is not None:
URL, PORT = "https://wauplin-gradio-oauth-test.hf.space", 7860
else:
URL, PORT = "http://localhost:5173", 5173
TEMPLATE = """
### Name: {name}
### Username: {preferred_username}
### Profile: {profile}
### Website: {website}
![Profile Picture]({picture})
You can manage your connected applications in your [settings](https://huggingface.co/settings/connected-applications).
"""
def show_profile(request: gr.Request) -> str:
fastapi_request = request.request
if fastapi_request is None or "user" not in request.request.session:
return "Please login first"
return TEMPLATE.format(**request.request.session["user"])
def js_open(url: str) -> str:
# Taken from https://cmgdo.com/external-link-in-gradio-button/
return f"function() {{window.open('{url}', '_blank');}}"
with gr.Blocks() as demo:
login_button = gr.Button("Login")
login_button.click(None, None, None, _js=js_open(f"{URL}/login/huggingface"))
logout_button = gr.Button("Logout")
logout_button.click(None, None, None, _js=js_open(f"{URL}/logout"))
profile_btn = gr.Button("Show profile")
output = gr.Markdown()
profile_btn.click(fn=show_profile, outputs=output)
old_create_app = gradio.networking.App.create_app
def patched_create_app(*args, **kwargs):
app = old_create_app(*args, **kwargs)
attach_oauth(app)
return app
gradio.networking.App.create_app = patched_create_app
print(URL)
demo.launch(server_port=PORT)
|