YouTube/Lyrics/IMDb: add retries

This commit is contained in:
oddluck 2020-02-25 04:48:29 +00:00
parent 022743711c
commit 009d6ceaa3
3 changed files with 46 additions and 43 deletions

View File

@ -55,19 +55,21 @@ class IMDb(callbacks.Plugin):
threaded = True
def dosearch(self, query):
try:
searchurl = "https://www.google.com/search?&q={0} site:imdb.com/title/".format(query)
ua = UserAgent()
header = {'User-Agent':str(ua.random)}
data = requests.get(searchurl, headers=header)
soup = BeautifulSoup(data.text)
elements = soup.select('.r a')
url = elements[0]['href']
url = urljoin(url, urlparse(url).path)
except Exception:
return
else:
return url
url = None
i = 0
while i < 3 and not url:
try:
searchurl = "https://www.google.com/search?&q={0} site:imdb.com/title/".format(query)
ua = UserAgent()
header = {'User-Agent':str(ua.random)}
data = requests.get(searchurl, headers=header)
soup = BeautifulSoup(data.text)
elements = soup.select('.r a')
url = urljoin(elements[0]['href'], urlparse(url).path)
i += 1
except Exception:
continue
return url
def imdb(self, irc, msg, args, query):
"""<title>

View File

@ -53,20 +53,22 @@ class Lyrics(callbacks.Plugin):
threaded = True
def dosearch(self, lyric):
try:
searchurl = "https://www.google.com/search?&q={0} site:lyrics.fandom.com/wiki/".format(lyric)
ua = UserAgent()
header = {'User-Agent':str(ua.random)}
data = requests.get(searchurl, headers=header)
soup = BeautifulSoup(data.text)
elements = soup.select('.r a')
url = elements[0]['href']
urljoin(url, urlparse(url).path)
title = soup.find("h3").getText().replace(":", " - ").split('|')[0]
except Exception:
return
else:
return title, url
url = None
i = 0
while i < 3 and not url:
try:
searchurl = "https://www.google.com/search?&q={0} site:lyrics.fandom.com/wiki/".format(lyric)
ua = UserAgent()
header = {'User-Agent':str(ua.random)}
data = requests.get(searchurl, headers=header)
soup = BeautifulSoup(data.text)
elements = soup.select('.r a')
title = soup.find("h3").getText().replace(":", " - ").split('|')[0]
url = urljoin(elements[0]['href'], urlparse(url).path)
i += 1
except Exception:
continue
return title, url
def getlyrics(self, url):
try:

View File

@ -59,24 +59,23 @@ class YouTube(callbacks.Plugin):
def dosearch(self, query):
url = None
try:
searchurl = "https://www.google.com/search?&q={0} site:youtube.com".format(query)
ua = UserAgent()
header = {'User-Agent':str(ua.random)}
data = requests.get(searchurl, headers=header)
soup = BeautifulSoup(data.text)
elements = soup.select('.r a')
for i in range(len(elements)):
if 'watch?v=' in elements[i]['href']:
url = elements[i]['href']
break
except Exception:
k = 0
while k < 3 and not url:
try:
self.dosearch(query)
searchurl = "https://www.google.com/search?&q={0} site:youtube.com".format(query)
ua = UserAgent()
header = {'User-Agent':str(ua.random)}
data = requests.get(searchurl, headers=header)
soup = BeautifulSoup(data.text)
elements = soup.select('.r a')
for i in range(len(elements)):
if 'watch?v=' in elements[i]['href']:
url = elements[i]['href']
break
k += 1
except Exception:
return None
else:
return url
continue
return url
def get_video_id_from_url(self, url):
"""