| @@ -16,8 +16,12 @@ class UrbanDictionary(Command): | |||||
| commands = ["urban", "urbandictionary", "dct", "ud"] | commands = ["urban", "urbandictionary", "dct", "ud"] | ||||
| @staticmethod | @staticmethod | ||||
| def _normalize(word): | |||||
| return re.sub(r"\W", "", word.lower()) | |||||
| def _normalize_term(term): | |||||
| return re.sub(r"\W", "", term.lower()) | |||||
| @staticmethod | |||||
| def _normalize_text(text): | |||||
| return re.sub(r"\[(.*?)\]", "\\1", re.sub(r"\s+", " ", text)) | |||||
| def process(self, data): | def process(self, data): | ||||
| if not data.args: | if not data.args: | ||||
| @@ -34,15 +38,15 @@ class UrbanDictionary(Command): | |||||
| return | return | ||||
| result = results[0] | result = results[0] | ||||
| definition = re.sub(r"\s+", " ", result["definition"]) | |||||
| example = re.sub(r"\s+", " ", result["example"]) | |||||
| definition = self._normalize_text(result["definition"]) | |||||
| example = self._normalize_text(result["example"]) | |||||
| url = result["permalink"].rsplit("/", 1)[0] | url = result["permalink"].rsplit("/", 1)[0] | ||||
| if definition and definition[-1] not in (".", "!", "?"): | if definition and definition[-1] not in (".", "!", "?"): | ||||
| definition += "." | definition += "." | ||||
| msg = "{0} \x02Example\x0F: {1} {2}".format( | msg = "{0} \x02Example\x0F: {1} {2}".format( | ||||
| definition.encode("utf8"), example.encode("utf8"), url) | definition.encode("utf8"), example.encode("utf8"), url) | ||||
| if self._normalize(result["word"]) != self._normalize(arg): | |||||
| if self._normalize_term(result["word"]) != self._normalize_term(arg): | |||||
| msg = "\x02{0}\x0F: {1}".format(result["word"].encode("utf8"), msg) | msg = "\x02{0}\x0F: {1}".format(result["word"].encode("utf8"), msg) | ||||
| self.reply(data, msg) | self.reply(data, msg) | ||||