Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import requests | |
| import xmltodict | |
| import bs4 | |
| import lxml | |
| import json | |
| def read_rss(): | |
| f = open('feeds.json') | |
| data = json.load(f) | |
| return data | |
| def find_rss(rss_url): | |
| json_box=[] | |
| json_dict={} | |
| json_dict_other={} | |
| r = requests.get(f'{rss_url}') | |
| soup = bs4.BeautifulSoup(r.content,'lxml') | |
| for i,p in enumerate(soup.find_all("a")): | |
| try: | |
| if ".xml" in p['href'] or ".json" in p['href'] or ".rss" in p['href']: | |
| print (p['href']) | |
| json_dict[str(p.text)]=p['href'] | |
| else: | |
| json_dict_other[str(p.text)]=p['href'] | |
| except Exception: | |
| pass | |
| json_box.append(json_dict) | |
| json_box.append(json_dict_other) | |
| return json_box | |
| def get_rss(rss_url): | |
| r = requests.get(f'{rss_url}') | |
| if ".json" in rss_url: | |
| lod = json.loads(r.text) | |
| if ".xml" in rss_url: | |
| lod = xmltodict.parse(r.text) | |
| if ".rss" in rss_url: | |
| lod = xmltodict.parse(r.text) | |
| return lod | |
| with gr.Blocks() as app: | |
| with gr.Row(): | |
| rss_search = gr.Textbox(label="search rss (xml,json)") | |
| search_btn=gr.Button("find rss") | |
| with gr.Row(): | |
| rss = gr.Textbox(label="rss") | |
| btn = gr.Button("load rss") | |
| r_btn=gr.Button("read") | |
| out_json = gr.JSON() | |
| r_btn.click(read_rss,None,out_json) | |
| search_btn.click(find_rss,rss_search,out_json) | |
| btn.click(get_rss,rss,out_json) | |
| app.launch() | |