Mercurial > traipse_dev
diff plugins/xxspell.py @ 0:4385a7d0efd1 grumpy-goblin
Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
author | sirebral |
---|---|
date | Tue, 14 Jul 2009 16:41:58 -0500 |
parents | |
children | 15488fe94f52 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/xxspell.py Tue Jul 14 16:41:58 2009 -0500 @@ -0,0 +1,86 @@ +import os +import orpg.pluginhandler + +class Plugin(orpg.pluginhandler.PluginHandler): + # Initialization subroutine. + # + # !self : instance of self + # !chat : instance of the chat window to write to + def __init__(self, plugindb, parent): + orpg.pluginhandler.PluginHandler.__init__(self, plugindb, parent) + + # The Following code should be edited to contain the proper information + self.name = 'Spelling Checker (aka Autoreplace)' + self.author = 'Woody, mDuo13' + self.help = "This plugin automatically replaces certain keys with other ones wheneve\nr" + self.help += "it sees them. You can edit this plugin to change what it replaces. This one\n" + self.help += "even corrects other people's spelling." + self.checklist = {} + + def plugin_enabled(self): + #This is where you set any variables that need to be initalized when your plugin starts + #You can add new /commands like + self.plugin_addcommand("/spell", self.on_spell, "[add {bad_word} {new_word} | list | remove {bad_word}] - This function allows you to add words to be auto replaced when they are sent or recived. If you want either word to have a space in it you will need to use the _ (underscore) as a space, it will be replaced with a space before it is added to the check list") + self.checklist = self.plugindb.GetDict("xxspell", "checklist", {}) + + def plugin_disabled(self): + #Here you need to remove any commands you added, and anything else you want to happen when you disable the plugin + #such as closing windows created by the plugin + self.plugin_removecmd('/spell') + + def replace(self, text): + for a in self.checklist.keys(): + text = text.replace(a, self.checklist[a]) + return text + + def plugin_incoming_msg(self, text, type, name, player): + text = self.replace(text) + return text, type, name + + def pre_parse(self, text): + text = self.replace(text) + return text + + def on_spell(self, cmdargs): + args = cmdargs.split(None,-1) + if len(args) == 0: + args = [' '] + if args[0] == 'list': + self.chat.InfoPost(self.make_list()) + elif args[0] == 'remove': + args = self.create_spaces(args) + if self.checklist.has_key(args[1]): + del self.checklist[args[1]] + self.plugindb.SetDict("xxspell", "checklist", self.checklist) + self.chat.InfoPost("%s removed from the check list" % args[1]) + else: + self.chat.InfoPost("%s was not in the check list" % args[1]) + elif args[0] == 'add': + args = self.create_spaces(args) + self.checklist[args[1]] = args[2] + self.plugindb.SetDict("xxspell", "checklist", self.checklist) + self.chat.InfoPost("%s will now be replaced by %s" % (args[1], args[2])) + else: + helptxt = "Spelling Command Help:<br />" + helptxt += "<b>/spell add bad_word new_word</b> - Here it is important to remember that any spaces in your bad or new words needs to be type as _ (an underscore).<br />" + helptxt += "<b>/spell remove bad_word</b> - Here it is important to remember that any spaces in your bad word needs to be type as _ (an underscore).<br />" + helptxt += "<b>/spell list</b> - This will list all of the bad words you are checking for, along with thier replacements.<br />" + self.chat.InfoPost(helptxt) + + + def create_spaces(self, list): + i = 0 + for n in list: + list[i] = n.replace("_"," ") + i += 1 + return list + + def make_list(self): + keychain = self.checklist.keys() + lister = "" + for key in keychain: + lister += "<b>" + key.replace("<","<").replace(">",">") + "</b> :: <b>" + self.checklist[key].replace("<","<").replace(">",">") + "</b><br />" + if len(keychain)==0: + return "No variables!" + else: + return lister