From 9843fd55e31161ebb9e708e0b070e2422d7caf96 Mon Sep 17 00:00:00 2001 From: deathbybandaid Date: Mon, 23 Sep 2019 10:44:55 -0400 Subject: [PATCH] test urban --- sopel_modules/SpiceBot/Search.py | 49 +++++++++++-------- .../SpiceBot_Search/gmaps.json | 1 - .../SpiceBot_Search/urban.json | 4 ++ 3 files changed, 33 insertions(+), 21 deletions(-) create mode 100644 sopel_modules/SpiceBot_Configs/SpiceBot_Search/urban.json diff --git a/sopel_modules/SpiceBot/Search.py b/sopel_modules/SpiceBot/Search.py index aad7d57..9ca7b3c 100644 --- a/sopel_modules/SpiceBot/Search.py +++ b/sopel_modules/SpiceBot/Search.py @@ -5,6 +5,7 @@ from __future__ import unicode_literals, absolute_import, division, print_functi import requests import urllib from fake_useragent import UserAgent +import json from sopel.config.types import StaticSection, ValidatedAttribute @@ -12,8 +13,6 @@ from .Config import config as botconfig from .Read import read as botread from .Commands import commands as botcommands -from .Logs import logs - # TODO add a cache flush @@ -89,24 +88,10 @@ class Search(): return returnurl def search_handler(self, searchdict): - try: - results = requests.get(searchdict["searchurl"], headers=self.header).text() - except Exception as e: - results = e - logs.log('SpiceBot_Search', str(e)) - return None - logs.log('SpiceBot_Search', str(results)) - return None - - def search_handler_old(self, searchdict): - try: - var = requests.get(searchdict["searchurl"], headers=self.header) - except Exception as e: - var = e - var = None - if not var or not var.url: - return None - return var.url + if searchdict["query_type"] in ["urban"]: + return self.search_urban(searchdict) + else: + return self.search_url(searchdict) def search_url_assemble(self, searchdict): # url base @@ -119,5 +104,29 @@ class Search(): url += str(self.valid_api[searchdict["query_type"]]['additional_url']) return url + def search_url(self, searchdict): + try: + var = requests.get(searchdict["searchurl"], headers=self.header) + except Exception as e: + var = e + var = None + if not var or not var.url: + return None + return var.url + + def search_urban(self, searchdict): + """Search Urban Dictionary.""" + try: + data = requests.get(searchdict["searchurl"]) + data = json.loads(data.decode('utf-8')) + except Exception as e: + data = e + return None + if data['result_type'] == 'no_results': + return None + result = data['list'][0] + response = "{0} - {1}".format(result['definition'].strip()[:256], searchdict["searchurl"]) + return response + search = Search() diff --git a/sopel_modules/SpiceBot_Configs/SpiceBot_Search/gmaps.json b/sopel_modules/SpiceBot_Configs/SpiceBot_Search/gmaps.json index ef8e5c6..6a75151 100644 --- a/sopel_modules/SpiceBot_Configs/SpiceBot_Search/gmaps.json +++ b/sopel_modules/SpiceBot_Configs/SpiceBot_Search/gmaps.json @@ -1,5 +1,4 @@ { "url": "http://www.google.com/maps/place/", -"query": '', "query_param": '', } diff --git a/sopel_modules/SpiceBot_Configs/SpiceBot_Search/urban.json b/sopel_modules/SpiceBot_Configs/SpiceBot_Search/urban.json new file mode 100644 index 0000000..5640878 --- /dev/null +++ b/sopel_modules/SpiceBot_Configs/SpiceBot_Search/urban.json @@ -0,0 +1,4 @@ +{ +"url": "http://api.urbandictionary.com/v0/define?", +"query_param": 'term=', +}