fix clock and startup modules

master
mutantmonkey 2012-02-10 19:10:34 -05:00
parent ee6ce7ba3e
commit 3d41e2f1d9
2 changed files with 37 additions and 37 deletions

View File

@ -281,7 +281,7 @@ tock.commands = ['tock']
tock.priority = 'high' tock.priority = 'high'
def npl(phenny, input): def npl(phenny, input):
"""Shows the time from NPL's SNTP server.""" """Shows the time from NPL's SNTP server."""
# for server in ('ntp1.npl.co.uk', 'ntp2.npl.co.uk'): # for server in ('ntp1.npl.co.uk', 'ntp2.npl.co.uk'):
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
client.sendto('\x1b' + 47 * '\0', ('ntp1.npl.co.uk', 123)) client.sendto('\x1b' + 47 * '\0', ('ntp1.npl.co.uk', 123))
@ -291,7 +291,7 @@ def npl(phenny, input):
d = dec('0.0') d = dec('0.0')
for i in range(8): for i in range(8):
d += dec(buf[32 + i]) * dec(str(math.pow(2, (3 - i) * 8))) d += dec(buf[32 + i]) * dec(str(math.pow(2, (3 - i) * 8)))
d -= dec(2208988800L) d -= dec(2208988800)
a, b = str(d).split('.') a, b = str(d).split('.')
f = '%Y-%m-%d %H:%M:%S' f = '%Y-%m-%d %H:%M:%S'
result = datetime.datetime.fromtimestamp(d).strftime(f) + '.' + b[:6] result = datetime.datetime.fromtimestamp(d).strftime(f) + '.' + b[:6]

View File

@ -10,47 +10,47 @@ http://inamidst.com/phenny/
import threading, time import threading, time
def setup(phenny): def setup(phenny):
# by clsn # by clsn
phenny.data = {} phenny.data = {}
refresh_delay = 300.0 refresh_delay = 300.0
if hasattr(phenny.config, 'refresh_delay'): if hasattr(phenny.config, 'refresh_delay'):
try: refresh_delay = float(phenny.config.refresh_delay) try: refresh_delay = float(phenny.config.refresh_delay)
except: pass except: pass
def close(): def close():
print "Nobody PONGed our PING, restarting" print("Nobody PONGed our PING, restarting")
phenny.handle_close() phenny.handle_close()
def pingloop(): def pingloop():
timer = threading.Timer(refresh_delay, close, ()) timer = threading.Timer(refresh_delay, close, ())
phenny.data['startup.setup.timer'] = timer phenny.data['startup.setup.timer'] = timer
phenny.data['startup.setup.timer'].start() phenny.data['startup.setup.timer'].start()
# print "PING!" # print "PING!"
phenny.write(('PING', phenny.config.host)) phenny.write(('PING', phenny.config.host))
phenny.data['startup.setup.pingloop'] = pingloop phenny.data['startup.setup.pingloop'] = pingloop
def pong(phenny, input): def pong(phenny, input):
try: try:
# print "PONG!" # print "PONG!"
phenny.data['startup.setup.timer'].cancel() phenny.data['startup.setup.timer'].cancel()
time.sleep(refresh_delay + 60.0) time.sleep(refresh_delay + 60.0)
pingloop() pingloop()
except: pass except: pass
pong.event = 'PONG' pong.event = 'PONG'
pong.thread = True pong.thread = True
pong.rule = r'.*' pong.rule = r'.*'
phenny.variables['pong'] = pong phenny.variables['pong'] = pong
# Need to wrap handle_connect to start the loop. # Need to wrap handle_connect to start the loop.
inner_handle_connect = phenny.handle_connect inner_handle_connect = phenny.handle_connect
def outer_handle_connect(): def outer_handle_connect():
inner_handle_connect() inner_handle_connect()
if phenny.data.get('startup.setup.pingloop'): if phenny.data.get('startup.setup.pingloop'):
phenny.data['startup.setup.pingloop']() phenny.data['startup.setup.pingloop']()
phenny.handle_connect = outer_handle_connect phenny.handle_connect = outer_handle_connect
def startup(phenny, input): def startup(phenny, input):
if hasattr(phenny.config, 'serverpass'): if hasattr(phenny.config, 'serverpass'):