awacke1's picture
Create app.py
457bc51
raw
history blame
1.41 kB
import streamlit as st
import base64
from io import StringIO
def get_clipboard_html():
with open("clipboard.html", "r") as f:
content = f.read()
b64 = base64.b64encode(content.encode()).decode()
return f"data:text/html;base64,{b64}"
def main():
st.title("Clipboard Monitor")
st.write("Paste your data in the input box below:")
clipboard_data = st.empty()
data_type = st.empty()
data_contents = st.empty()
st.write(f'<iframe src="{get_clipboard_html()}" width="100%" height="300" style="border:none"></iframe>', unsafe_allow_html=True)
event = st.experimental_get_query_params().get("event", [None])[0]
if event == "clipboard-update":
st.experimental_set_query_params(event="")
clipboard_text = st.experimental_get_query_params().get("data", [""])[0]
clipboard_text = base64.urlsafe_b64decode(clipboard_text).decode(errors="ignore")
clipboard_data.write(f"Clipboard Data: {clipboard_text}")
if clipboard_text.startswith("{") and clipboard_text.endswith("}"):
data_type.write("Data Type: JSON")
elif clipboard_text.startswith("<") and clipboard_text.endswith(">"):
data_type.write("Data Type: XML/HTML")
else:
data_type.write("Data Type: Plain Text")
data_contents.write(f"Data Contents: {clipboard_text}")
if __name__ == "__main__":
main()