File size: 1,107 Bytes
615f98d
1dcd1cd
615f98d
ffab851
970a425
9f8e6cc
8341baf
9f8e6cc
 
 
362dc0e
 
ffab851
615f98d
1dcd1cd
b2f14ff
1dcd1cd
 
9f8e6cc
 
 
1dcd1cd
ffab851
 
615f98d
ffab851
 
 
 
 
 
 
caf9c68
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import gradio as gr
from epub2txt import epub2txt

class GUI:
    def __init__(self, *args, **kwargs):
        with gr.Blocks() as demo:
            with gr.Row():
                self.out = gr.Markdown(scale=2).attach_load_event(self.hello, None)
                gr.LoginButton()
                gr.LogoutButton()
            inp = gr.File(file_types=['.epub'])
            inp.change(self.process, inp, self.out)
        demo.launch()

    def process(self, file):
        ch_list = epub2txt(file.name, outputlist=True)
        chapter_titles = epub2txt.content_titles
        title = epub2txt.title
        return gr.Update(
            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:
            return (
                '# ePub summarization tool  '
                '<p style="text-align: center;">Login to access the tool.</p>'
            )
        return self.greet(profile.name)

GUI()