Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import random | |
| # Meme/GIF URLs | |
| MEMES = [ | |
| "https://media.giphy.com/media/3o7aD2saalBwwftBIY/giphy.gif", | |
| "https://media.giphy.com/media/l0HlBO7eyXzSZkJri/giphy.gif", | |
| "https://media.giphy.com/media/13HgwGsXF0aiGY/giphy.gif", | |
| "https://i.imgur.com/5QF9xO7.jpg", | |
| "https://i.imgur.com/3vT7U1U.jpeg" | |
| ] | |
| # List of contacts | |
| CONTACTS = ["naveen", "kumar", "nikhil", "rohit", "prahas"] | |
| chat_history = [] | |
| def send_message(user_message, include_meme, contact_name): | |
| if not user_message.strip(): | |
| return chat_history, "Please enter a message before sending." | |
| # Append user's message | |
| chat_history.append(("You", f"To {contact_name.title()}: {user_message}")) | |
| # Simulate reply | |
| reply = f"📩 Message sent to {contact_name.title()}: {user_message}" | |
| chat_history.append((contact_name.title(), reply)) | |
| if include_meme: | |
| selected_meme = random.choice(MEMES) | |
| chat_history.append(("Meme", selected_meme)) | |
| return chat_history, "" | |
| def format_chat(chat): | |
| display = "" | |
| for sender, message in chat: | |
| if sender == "Meme": | |
| display += f"<img src='{message}' width='200px'><br>" | |
| else: | |
| display += f"<b>{sender}:</b> {message}<br>" | |
| return display | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# 💬 Chat Box with Contacts, Memes & GIFs") | |
| with gr.Row(): | |
| with gr.Column(): | |
| contact_dropdown = gr.Dropdown(choices=CONTACTS, label="Select Contact", value="naveen") | |
| msg_input = gr.Textbox(placeholder="Type your message here...", label="Your Message") | |
| include_meme = gr.Checkbox(label="Include a random meme/GIF?") | |
| send_btn = gr.Button("Send") | |
| with gr.Column(): | |
| chat_output = gr.HTML() | |
| status_output = gr.Textbox(label="Status", interactive=False) | |
| send_btn.click(fn=send_message, | |
| inputs=[msg_input, include_meme, contact_dropdown], | |
| outputs=[chat_output, status_output])\ | |
| .then(fn=format_chat, inputs=[chat_output], outputs=[chat_output]) | |
| demo.launch() | |