File size: 1,353 Bytes
a235177
1748047
a235177
75642d2
10ac278
 
 
 
 
341551d
10ac278
 
 
341551d
10ac278
 
 
 
 
b089d6a
6bf8b90
b089d6a
c786d64
 
4da7dd9
b089d6a
af35d61
49cee1b
035484e
3d2bc32
a235177
 
 
 
676df7e
341551d
3bda8ad
a235177
 
 
b089d6a
98aa43b
a235177
 
 
 
7c2f2b2
49cee1b
 
a235177
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import gradio as gr
import xmltodict
import requests
import json
style="""
.title_div{
    font-size: x-large;
    font-weight: 700;
    margin-bottom: 10px;
    color: white;
}
.card_div{
    background: #050523;
    color: white;
    margin: 10px;
    padding: 15px;
    border-radius: 5px;
}
"""

head = """
<script>
function run(inn) {
    console.log(inn);
}
</script>
"""
def search(q,rn):
    api="http://export.arxiv.org/api/query?search_query=SQ&start=0&max_results=MR"
    r=requests.get(api.replace("SQ",q).replace("MR",str(rn)))
    cont=xmltodict.parse(r.content)['feed']['entry']
    html=""
    for i,c in enumerate(cont):
        pdflink=c['id'].replace('/abs/','/pdf/')
        html+=f"""<div class='card_div' id='id{i}' onclick="run({c})">"""
        html+=f"<div class='title_div'>{c['title']}</div>"
        html+=f"<div style='color:white;'>{c['summary']}</div>"
        html+=f"<div><a href='{pdflink}' target='_blank'>{pdflink}</a></div>"
        html+="</div>"
    return(json.dumps(cont,indent=4)),html
with gr.Blocks(css=style,head=head) as b:
    with gr.Group():
        with gr.Row():
            query=gr.Textbox(label="Query")
            num=gr.Number(label="Count",step=1,value=10)
            sub=gr.Button()
    html_out=gr.HTML()
    json_out=gr.JSON()
    sub.click(search,[query,num],[json_out,html_out])
b.launch()