import gradio as gr from epub2txt import epub2txt class GUI: def __init__(self): with gr.Blocks() as demo: self.out = gr.Markdown().attach_load_event(self.hello, None) demo.launch() def process(self, file): ch_list = epub2txt(file, outputlist=True) chapter_titles = epub2txt.content_titles title = epub2txt.title return f"# {title}\n\n" + "\n\n".join([f"## {ct}\n\n{c}" for ct, c in zip(chapter_titles, ch_list)]) def greet(self, name): return "Hello " + name + "!!" def hello(self, profile: gr.OAuthProfile | None): if profile is None: with gr.Blocks(css=".lbtn {float: right;}") as demo: with gr.Row(): gr.LoginButton(elem_classes="lbtn") return ( '# ePub summarization tool ' '

Login to access the tool.

' ) with gr.Blocks(css=".lbtn {float: right;}") as demo: with gr.Row(): gr.LoginButton(elem_classes="lbtn") gr.LogoutButton(elem_classes="lbtn") inp = gr.File(file_types=['.epub']) inp.change(self.process, inp, self.out) return self.greet(profile.name) GUI()