Jeopardy/Wolfram: text reformatting
This commit is contained in:
parent
188d8dc876
commit
d4d3d6d0ad
|
@ -39,6 +39,7 @@ import os
|
|||
import random
|
||||
import re
|
||||
import requests
|
||||
from unidecode import unidecode
|
||||
import json
|
||||
import string
|
||||
import supybot.callbacks as callbacks
|
||||
|
@ -277,6 +278,7 @@ class Jeopardy(callbacks.Plugin):
|
|||
def normalize(self, q):
|
||||
q = re.sub('<[^<]+?>', '', fix_text(q, normalization='NFKC')).replace(r"\'", "'").replace(r'\"', '"')
|
||||
q = re.sub('([,;:.!?)])([a-zA-Z]|\()(?![.\'])', '\g<1> \g<2>', q)
|
||||
q = unidecode(q)
|
||||
q = " ".join(q.split())
|
||||
return q
|
||||
|
||||
|
|
|
@ -4,3 +4,4 @@ beautifulsoup4
|
|||
numpy
|
||||
textdistance[extras]
|
||||
jinja2
|
||||
unidecode
|
||||
|
|
|
@ -40,6 +40,7 @@ from supybot.commands import *
|
|||
import supybot.plugins as plugins
|
||||
import supybot.ircutils as ircutils
|
||||
import supybot.callbacks as callbacks
|
||||
import re
|
||||
try:
|
||||
from supybot.i18n import PluginInternationalization
|
||||
_ = PluginInternationalization('WolframAlpha')
|
||||
|
@ -182,27 +183,27 @@ class WolframAlpha(callbacks.Plugin):
|
|||
answer = output.get(outputlist[1]) # get second (answer).
|
||||
# output time. display with color or not?
|
||||
if self.registryValue('disableANSI'):
|
||||
irc.reply("{0} :: {1}".format("".join([i for i in question]), "".join([i for i in answer])))
|
||||
irc.reply(re.sub("\s+", " ", "{0} :: {1}".format("".join([i for i in question]), " | ".join([i for i in answer]))).replace(": | ", ": "))
|
||||
else: # with ansi.
|
||||
irc.reply("{0} :: {1}".format(self._bold("".join([i for i in question])), "".join([i for i in answer])))
|
||||
irc.reply(re.sub("\s+", " ", "{0} :: {1}".format(self._bold("".join([i for i in question])), " | ".join([i for i in answer]))).replace(": | ", ": "))
|
||||
elif args['fulloutput']: # show everything. no limits.
|
||||
# grab all values, sorted via the position number. output one per line.
|
||||
for (k, v) in sorted(outputlist.items()):
|
||||
itemout = output.get(v) # items out will be a list of items.
|
||||
# now decide to output with ANSI or not.
|
||||
if self.registryValue('disableANSI'):
|
||||
irc.reply("{0} :: {1}".format(v, "".join(itemout)))
|
||||
irc.reply(re.sub("\s+", " ", "{0} :: {1}".format(v, " | ".join(itemout))).replace(": | ", ": "))
|
||||
else: # with ansi.
|
||||
irc.reply("{0} :: {1}".format(self._red(v), "".join(itemout)))
|
||||
irc.reply(re.sub("\s+", " ", "{0} :: {1}".format(self._red(v), " | ".join(itemout))).replace(": | ", ": "))
|
||||
else: # regular output, dictated by --lines or maxoutput.
|
||||
for q, k in enumerate(sorted(outputlist.keys())):
|
||||
if q < args['maxoutput']: # if less than max.
|
||||
itemout = output.get(outputlist[k]) # have the key, get the value, use for output.
|
||||
if itemout:
|
||||
if self.registryValue('disableANSI'): # display w/o formatting.
|
||||
irc.reply("{0} :: {1}".format(outputlist[k], "".join(itemout)))
|
||||
irc.reply(re.sub("\s+", " ", "{0} :: {1}".format(outputlist[k], " | ".join(itemout))).replace(": | ", ": "))
|
||||
else: # display w/formatting.
|
||||
irc.reply("{0} :: {1}".format(self._red(outputlist[k]), "".join(itemout)))
|
||||
irc.reply(re.sub("\s+", " ", "{0} :: {1}".format(self._red(outputlist[k]), " | ".join(itemout))).replace(": | ", ": "))
|
||||
|
||||
wolframalpha = wrap(wolframalpha, [getopts({'num':('int'),
|
||||
'reinterpret':'',
|
||||
|
|
Loading…
Reference in New Issue