Skip to content

Commit

Permalink
Added clsn's ping-pong code
Browse files Browse the repository at this point in the history
  • Loading branch information
Sean B. Palmer committed Jan 12, 2012
1 parent e363395 commit 2575536
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions modules/startup.py
Expand Up @@ -7,6 +7,51 @@
http://inamidst.com/phenny/
"""

import threading, time

def setup(phenny):
# by clsn
phenny.data = {}
refresh_delay = 300.0

if hasattr(phenny.config, 'refresh_delay'):
try: refresh_delay = float(phenny.config.refresh_delay)
except: pass

def close():
print "Nobody PONGed our PING, restarting"
phenny.handle_close()

def pingloop():
timer = threading.Timer(refresh_delay, close, ())
phenny.data['startup.setup.timer'] = timer
phenny.data['startup.setup.timer'].start()
# print "PING!"
phenny.write(('PING', phenny.config.host))
phenny.data['startup.setup.pingloop'] = pingloop

def pong(phenny, input):
try:
# print "PONG!"
phenny.data['startup.setup.timer'].cancel()
time.sleep(refresh_delay + 60.0)
pingloop()
except: pass
pong.event = 'PONG'
pong.thread = True
pong.rule = r'.*'
phenny.variables['pong'] = pong

# Need to wrap handle_connect to start the loop.
inner_handle_connect = phenny.handle_connect

def outer_handle_connect():
inner_handle_connect()
if phenny.data.get('startup.setup.pingloop'):
phenny.data['startup.setup.pingloop']()

phenny.handle_connect = outer_handle_connect

def startup(phenny, input):
if hasattr(phenny.config, 'serverpass'):
phenny.write(('PASS', phenny.config.serverpass))
Expand Down

0 comments on commit 2575536

Please sign in to comment.