IMDb/YouTube/Lyrics: quote_plus search URLs

This commit is contained in:
oddluck 2020-02-26 23:28:14 +00:00
parent 2b2108d0d8
commit 9b277b9df9
3 changed files with 13 additions and 8 deletions

View File

@ -34,10 +34,11 @@ import supybot.plugins as plugins
import supybot.ircutils as ircutils import supybot.ircutils as ircutils
import supybot.ircmsgs as ircmsgs import supybot.ircmsgs as ircmsgs
import supybot.callbacks as callbacks import supybot.callbacks as callbacks
import supybot.log as log
import requests import requests
from fake_useragent import UserAgent from fake_useragent import UserAgent
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
from urllib.parse import urljoin, urlparse from urllib.parse import urljoin, urlparse, quote_plus
try: try:
from supybot.i18n import PluginInternationalization from supybot.i18n import PluginInternationalization
@ -54,7 +55,9 @@ class IMDb(callbacks.Plugin):
def dosearch(self, query): def dosearch(self, query):
try: try:
url = None url = None
searchurl = "https://www.google.com/search?&q={0} site:imdb.com/title/".format(query) searchurl = "https://www.google.com/search?&q="
searchurl += quote_plus("{0} site:imdb.com/title/".format(query))
log.debug(searchurl)
ua = UserAgent(fallback="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0") ua = UserAgent(fallback="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0")
header = {'User-Agent':str(ua.random)} header = {'User-Agent':str(ua.random)}
data = requests.get(searchurl, headers=header, timeout=10) data = requests.get(searchurl, headers=header, timeout=10)
@ -75,14 +78,14 @@ class IMDb(callbacks.Plugin):
if url: if url:
imdb_id = url.split("/title/")[1].rstrip("/") imdb_id = url.split("/title/")[1].rstrip("/")
omdb_url = "http://www.omdbapi.com/?i=%s&plot=short&r=json&tomatoes=true&apikey=%s" % (imdb_id, apikey) omdb_url = "http://www.omdbapi.com/?i=%s&plot=short&r=json&tomatoes=true&apikey=%s" % (imdb_id, apikey)
log.info("IMDb: requesting %s" % omdb_url)
else: else:
irc.reply("No results found for {0}".format(query)) irc.reply("No results found for {0}".format(query))
return
channel = msg.args[0] channel = msg.args[0]
result = None result = None
self.log.info("IMDb: requesting %s" % omdb_url)
try: try:
request = requests.get(omdb_url, timeout=10) request = requests.get(omdb_url, timeout=10)

View File

@ -39,7 +39,7 @@ import requests
import re import re
import pylyrics3 import pylyrics3
from fake_useragent import UserAgent from fake_useragent import UserAgent
from urllib.parse import urljoin, urlparse from urllib.parse import urljoin, urlparse, quote_plus
try: try:
from supybot.i18n import PluginInternationalization from supybot.i18n import PluginInternationalization
@ -57,7 +57,8 @@ class Lyrics(callbacks.Plugin):
try: try:
url = None url = None
title = None title = None
searchurl = "https://www.google.com/search?&q={0} site:lyrics.fandom.com/wiki/".format(lyric) searchurl = "https://www.google.com/search?&q="
searchurl += quote_plus("{0} site:lyrics.fandom.com/wiki/".format(lyric))
ua = UserAgent(fallback="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0") ua = UserAgent(fallback="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0")
header = {'User-Agent':str(ua.random)} header = {'User-Agent':str(ua.random)}
data = requests.get(searchurl, headers=header, timeout=10) data = requests.get(searchurl, headers=header, timeout=10)

View File

@ -40,7 +40,7 @@ import pendulum
from jinja2 import Template from jinja2 import Template
from fake_useragent import UserAgent from fake_useragent import UserAgent
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
from urllib.parse import urlencode, urlparse, parse_qsl from urllib.parse import urlencode, urlparse, parse_qsl, quote_plus
try: try:
from supybot.i18n import PluginInternationalization from supybot.i18n import PluginInternationalization
@ -57,7 +57,8 @@ class YouTube(callbacks.Plugin):
def dosearch(self, query): def dosearch(self, query):
try: try:
url = None url = None
searchurl = "https://www.google.com/search?&q={0} site:youtube.com".format(query) searchurl = "https://www.google.com/search?&q="
searchurl += quote_plus("{0} site:youtube.com".format(query))
ua = UserAgent(fallback="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0") ua = UserAgent(fallback="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0")
header = {'User-Agent':str(ua.random)} header = {'User-Agent':str(ua.random)}
data = requests.get(searchurl, headers=header, timeout=10) data = requests.get(searchurl, headers=header, timeout=10)