Spaces:
Sleeping
Sleeping
File size: 1,488 Bytes
01b7d84 3f1df0d 26fd880 b166bee 01b7d84 f7cf6e6 9e02324 dc1f1cd 9e02324 d33ca30 9e02324 5853efe d1bf724 dc1f1cd 5853efe 9e02324 dc1f1cd 9e02324 01b7d84 79272ae 6cfa95b 5ebc5a8 01b7d84 617c1aa 01b7d84 9e02324 f7cf6e6 01b7d84 f7cf6e6 43173f5 01b7d84 |
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 53 54 55 56 57 58 |
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()
|