import gradio as gr from epub2txt import epub2txt class GUI: def __init__(self, *args, **kwargs): with gr.Blocks() as demo: with gr.Row(): gr.Markdown(scale=2).attach_load_event(self.hello, None) gr.LoginButton() gr.LogoutButton() self.out = gr.Markdown() inp = gr.File(file_types=['.epub']) inp.change(self.process, inp, self.out) demo.launch() def process(self, file, profile: gr.OAuthProfile | None): if profile is None: return gr.update(value='Login to access the tool.') ch_list = epub2txt(file.name, outputlist=True) chapter_titles = epub2txt.content_titles title = epub2txt.title return gr.update( value=f"# {title}\n\n" + "\n\n".join( [f"## {ct}\n\n{c}" for ct, c in zip(chapter_titles, ch_list)])) def hello(self, profile: gr.OAuthProfile | None): if profile is None: return '# ePub summarization tool\n\nLogin to access the tool.' return f"# ePub summarization tool\n\nWelcome {profile.name}!!" GUI()