Mercurial > traipse_dev
diff plugins/xxstatus.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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/xxstatus.py Tue Jul 14 16:41:58 2009 -0500 @@ -0,0 +1,69 @@ +import os +import orpg.pluginhandler +from random import randint +from time import time + +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 = 'Idle Time' + self.author = 'Woody, mDuo13' + self.help = "When you haven't sent a message to chat for a minute or more, this\n" + self.help += "plugin sets your status to end with '(* Mins)' where the * is however many\n" + self.help += "minutes you've been inactive. You can also set a custom message for the timed\n" + self.help += "idle by typing '/idle status *text*' where *text* is that message." + + self.idle_timer_status = '' + self.start_time = '' + self.minutes = '' + self.last_update = '' + + def plugin_enabled(self): + #This is where you set any variables that need to be initalized when your plugin starts + self.plugin_addcommand('/idle', self.on_idle, 'status - This sets your status to what ever you type') + self.reset_time() + + 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('/idle') + + def on_idle(self, cmdargs): + args = cmdargs.split(None,1) + + if args[0] == 'status': + self.idle_timer_status = cmdargs[7:] + else: + self.chat.InfoPost("Invalid syntax for /idle command") + + def reset_time(self): + self.start_time = time() + self.minutes = 0 + self.last_update = 0 + + def pre_parse(self, text): + #This is called just before a message is parsed by openrpg + self.reset_time() + return text + + def refresh_counter(self): + if self.idle_timer_status == '': + self.idle_timer_status = self.settings.get_setting("IdleStatusAlias") + + current_time = time() + self.minutes = round((current_time - self.start_time)/60,1) + + if self.minutes > 1: + plur = 's' + else: + plur = '' + + if current_time - self.last_update >= 30: + self.session.set_text_status(self.idle_timer_status + ' (' + str(self.minutes) + ' min' + plur + ')') + self.last_update = time()