11
11
from gozerbot.examples import examples
12
12
from gozerbot.aliases import aliases
13
13
from gozerbot.plughelp import plughelp
14
import time, os, threading
14
from gozerbot.persiststate import UserState
15
from gozerbot.users import users
16
import time, os, threading, thread
16
18
plughelp.add('misc', 'miscellaneous commands')
25
27
def handle_source(bot, ievent):
26
28
""" source .. show where to fetch the bot source """
27
ievent.reply('see http://gozerbot.org .. for mercurial use: "hg clone \
28
http://gozerbot.org/hg/gozerbot" .. for subversion use: "svn checkout \
29
http://gozerbot.googlecode.com/svn/trunk/ gozerbot" .. a debian package is \
30
available in testing and unstable')
29
ievent.reply('see http://gozerbot.org')
32
31
cmnds.add('source', handle_source, ['USER', 'WEB', 'ANON'])
33
32
examples.add('source', 'show source url', 'source')
83
82
def handle_time(bot, ievent):
84
83
""" time .. show current time """
85
ievent.reply(time.ctime(time.time()))
84
authuser = users.getname(ievent.userhost)
87
if users.exist(ievent.rest):
88
username = ievent.rest
90
ievent.reply("We don't have a user %s" % ievent.rest)
94
userstate = UserState(username)
98
if username == authuser:
99
tz = handle_ask_timezone(bot, ievent)
100
if tz and set_timezone(bot, ievent, userstate, tz):
105
ievent.reply("%s doesn't have a timezone set" % username)
107
ievent.reply(get_time(tz, username, authuser))
109
ievent.reply(get_time('UTC', '', ''))
87
111
cmnds.add('time', handle_time, ['USER', 'ANON'])
88
examples.add('time', 'show current time', 'time')
112
examples.add('time', 'show current time (of a user)', 'time [user]')
89
113
aliases.data['t'] = 'time'
90
114
aliases.data['date'] = 'time'
116
def handle_timezone(bot, ievent):
117
""" timezone .. set current timezone """
118
username = users.getname(ievent.userhost)
120
userstate = UserState(username)
123
timezone = int(ievent.rest)
125
ievent.reply('TZ needs to be an integer')
128
timezone = handle_ask_timezone(bot, ievent)
130
set_timezone(bot, ievent, userstate, timezone)
132
cmnds.add('timezone', handle_timezone, ['USER'])
133
examples.add('timezone', 'set current timezone', 'timezone [tz]')
135
def handle_ask_timezone(bot, ievent):
136
ievent.reply('what is your timezone ? for example -1 or +4')
137
response = waitforuser(bot, ievent.userhost)
141
ievent.reply("can't determine timezone .. not setting it")
144
def set_timezone(bot, ievent, userstate, timezone):
145
# check for timezone validity and return False, if necessary
149
ievent.reply('timezone needs to be an integer')
151
userstate['TZ'] = timezone
153
ievent.reply("timezone set to %s" % timezone)
156
def get_time(zone, username, authuser):
161
return time.ctime(time.time() + int(time.timezone) + zone*3600)