|
import requests |
|
import gradio as gr |
|
import time |
|
from IPython.display import Javascript, display |
|
|
|
def get_public_ip(): |
|
response = requests.get('https://api.ipify.org?format=json') |
|
return response.json()["ip"] |
|
|
|
def keep_alive(): |
|
|
|
js_code = """ |
|
var element = document.querySelector('.output_scroll'); |
|
if (element) { |
|
element.scrollBy(0, 10); |
|
} |
|
""" |
|
return jsonify(js=js_code) |
|
|
|
|
|
iface = gr.Interface( |
|
fn=[get_public_ip, keep_alive], |
|
inputs=[], |
|
outputs=["text", "json"], |
|
title="Public IP Retriever (And Experimental Keep-Alive)", |
|
description="Displays the approximate public IP address associated with this Colab notebook. The '/keepalive' endpoint might help prevent idle timeouts (use with caution)." |
|
) |
|
|
|
iface.launch(share=True) |
|
|
|
|
|
display(Javascript(""" |
|
var element = document.querySelector('.output_scroll'); |
|
if (element) { |
|
element.scrollBy(0, 10); |
|
} |
|
""")) |
|
|