Spaces:
Running
Running
import requests | |
import gradio as gr | |
import json | |
def get_random_quote(lang='en'): | |
""" | |
Fetches a random quote from the Forismatic API. | |
Args: | |
lang (str): Language code for the quote. Default is 'en'. | |
Returns: | |
str: Formatted quote string with author. | |
""" | |
url = "http://api.forismatic.com/api/1.0/" | |
params = { | |
'method': 'getQuote', | |
'lang': lang, | |
'format': 'json' | |
} | |
response = requests.get(url, params=params) | |
try: | |
# Try to decode raw JSON safely | |
cleaned_text = response.text.replace('\\', '\\\\') | |
data = json.loads(cleaned_text) | |
except json.JSONDecodeError: | |
return "Failed to parse quote. Please try again." | |
quote = data.get('quoteText', 'No quote available').strip() | |
author = data.get('quoteAuthor', 'Unknown').strip() | |
return f'"{quote}"\n— {author}' | |
# Create Gradio interface | |
app = gr.Interface( | |
fn=get_random_quote, | |
inputs=[], | |
outputs=gr.Textbox(label="Random Quote"), | |
title="Random Quote Generator", | |
description="Click the button to get an inspiring random quote." | |
) | |
if __name__ == "__main__": | |
app.launch(mcp_server=True) |