File size: 1,161 Bytes
4dd70a8
 
f8a041b
 
 
 
4dd70a8
e66e891
 
4dd70a8
f8a041b
 
 
 
 
 
 
 
 
 
 
 
 
00764df
f8a041b
 
 
 
 
4dd70a8
 
 
 
e66e891
4dd70a8
e66e891
00764df
eb02e01
8863982
 
 
687d26a
8863982
4dd70a8
f8a041b
4dd70a8
 
e66e891
 
 
 
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
51
52
'''Main script to run gradio interface and MCP server.'''

import logging
from pathlib import Path
from logging.handlers import RotatingFileHandler

import gradio as gr
import assets.html as html
from functions import tools as tool_funcs

# Make sure log directory exists
Path('logs').mkdir(parents=True, exist_ok=True)

# Set-up logger
logger = logging.getLogger()

logging.basicConfig(
    handlers=[RotatingFileHandler(
        'logs/rss_server.log',
        maxBytes=100000,
        backupCount=10,
        mode='w'
    )],
    level=logging.INFO,
    format='%(levelname)s - %(name)s - %(message)s'
)

logger = logging.getLogger(__name__)


with gr.Blocks() as demo:

    with gr.Row():
        gr.HTML(html.TITLE)

    gr.Markdown(html.DESCRIPTION)
    website_url = gr.Textbox('hackernews.com', label='Website')
    output = gr.Textbox(label='RSS entries', lines=10)
    submit_button = gr.Button('Submit')

    submit_button.click( # pylint: disable=no-member
        fn=tool_funcs.get_feed,
        inputs=website_url,
        outputs=output,
        api_name='Get RSS feed content'
    )


if __name__ == '__main__':

    demo.launch(mcp_server=True)