Spell module: remember correct and bad spelling by people
This commit is contained in:
parent
3aa705dfb6
commit
1b05b965ed
@ -15,9 +15,13 @@ def help_full ():
|
|||||||
return "!spell [<lang>] <word>: give the correct spelling of <word> in <lang=fr>."
|
return "!spell [<lang>] <word>: give the correct spelling of <word> in <lang=fr>."
|
||||||
|
|
||||||
def load(context):
|
def load(context):
|
||||||
|
global DATAS
|
||||||
|
DATAS.setIndex("name", "score")
|
||||||
|
|
||||||
from hooks import Hook
|
from hooks import Hook
|
||||||
add_hook("cmd_hook", Hook(cmd_spell, "spell"))
|
add_hook("cmd_hook", Hook(cmd_spell, "spell"))
|
||||||
add_hook("cmd_hook", Hook(cmd_spell, "orthographe"))
|
add_hook("cmd_hook", Hook(cmd_spell, "orthographe"))
|
||||||
|
add_hook("cmd_hook", Hook(cmd_score, "spellscore"))
|
||||||
|
|
||||||
|
|
||||||
def cmd_spell(msg):
|
def cmd_spell(msg):
|
||||||
@ -35,13 +39,46 @@ def cmd_spell(msg):
|
|||||||
except AspellError:
|
except AspellError:
|
||||||
return Response(msg.sender, "Je n'ai pas le dictionnaire `%s' :(" % lang, msg.channel)
|
return Response(msg.sender, "Je n'ai pas le dictionnaire `%s' :(" % lang, msg.channel)
|
||||||
if r == True:
|
if r == True:
|
||||||
|
add_score(msg.nick, "correct")
|
||||||
strRes.append("l'orthographe de `%s' est correcte" % word)
|
strRes.append("l'orthographe de `%s' est correcte" % word)
|
||||||
elif len(r) > 0:
|
elif len(r) > 0:
|
||||||
|
add_score(msg.nick, "bad")
|
||||||
strRes.append("suggestions pour `%s' : %s" % (word, ", ".join(r)))
|
strRes.append("suggestions pour `%s' : %s" % (word, ", ".join(r)))
|
||||||
else:
|
else:
|
||||||
|
add_score(msg.nick, "bad")
|
||||||
strRes.append("aucune suggestion pour `%s'" % word)
|
strRes.append("aucune suggestion pour `%s'" % word)
|
||||||
return Response(msg.sender, strRes, channel=msg.channel)
|
return Response(msg.sender, strRes, channel=msg.channel)
|
||||||
|
|
||||||
|
def add_score(nick, t):
|
||||||
|
global DATAS
|
||||||
|
if nick not in DATAS.index:
|
||||||
|
st = ModuleState("score")
|
||||||
|
st["name"] = nick
|
||||||
|
DATAS.addChild(st)
|
||||||
|
|
||||||
|
if DATAS.index[nick].hasAttribute(t):
|
||||||
|
DATAS.index[nick][t] = DATAS.index[nick].getInt(t) + 1
|
||||||
|
else:
|
||||||
|
DATAS.index[nick][t] = 1
|
||||||
|
save()
|
||||||
|
|
||||||
|
def cmd_score(msg):
|
||||||
|
global DATAS
|
||||||
|
res = list()
|
||||||
|
unknown = list()
|
||||||
|
if len(msg.cmds) > 1:
|
||||||
|
for cmd in msg.cmds[1:]:
|
||||||
|
if cmd in DATAS.index:
|
||||||
|
res.append(Response(msg.sender, "%s: %s" % (cmd, " ; ".join(["%s: %d" % (a, DATAS.index[cmd].getInt(a)) for a in DATAS.index[cmd].attributes.keys() if a != "name"])), channel=msg.channel))
|
||||||
|
else:
|
||||||
|
unknown.append(cmd)
|
||||||
|
else:
|
||||||
|
return Response(msg.sender, "De qui veux-tu voir les scores ?", channel=msg.channel, nick=msg.nick)
|
||||||
|
if len(unknown) > 0:
|
||||||
|
res.append(Response(msg.sender, "%s inconnus" % ", ".join(unknown), channel=msg.channel))
|
||||||
|
|
||||||
|
return res
|
||||||
|
|
||||||
def check_spell(word, lang='fr'):
|
def check_spell(word, lang='fr'):
|
||||||
a = Aspell(("lang", lang))
|
a = Aspell(("lang", lang))
|
||||||
if a.check(word):
|
if a.check(word):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user