35 lines
896 B
Python
35 lines
896 B
Python
|
#!/usr/bin/python3
|
||
|
|
||
|
from utils import *
|
||
|
from download_page import download
|
||
|
from urllib.parse import unquote
|
||
|
|
||
|
# portable code to get filename
|
||
|
import os
|
||
|
platform = os.path.basename(__file__)
|
||
|
if platform.endswith(".py"):
|
||
|
platform = platform[:(-3)]
|
||
|
|
||
|
def extract_from_page (page, verbosity):
|
||
|
feed = search (page, '" alt="RSS feed"/><div>', '</div>')
|
||
|
if not feed is None:
|
||
|
return feed
|
||
|
|
||
|
feed = search (page, '<a href="https://podcasters.radiopublic.com?feedUrl=', '&utm_campaign=landing-page')
|
||
|
if not feed is None:
|
||
|
return unquote(feed)
|
||
|
|
||
|
feed = search (page, '\\\"feedUrl\\\":\\\"', '\\\"')
|
||
|
if not feed is None:
|
||
|
return feed
|
||
|
|
||
|
def extract (url, page=None, network=False, verbosity=3, args={}):
|
||
|
# cannot get feed from URL alone
|
||
|
if not network:
|
||
|
return None
|
||
|
|
||
|
page = download (platform, url, args, verbosity)
|
||
|
feed = extract_from_page (page, verbosity)
|
||
|
if not feed is None:
|
||
|
return feed
|