33 lines
664 B
Python
Executable File
33 lines
664 B
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import signal
|
|
import sys
|
|
import ast
|
|
|
|
from config import Config
|
|
from irc import IRC
|
|
|
|
irc = IRC(Config)
|
|
|
|
def write_state(state):
|
|
with open('botstate.dict', 'w') as target:
|
|
target.write(str(state))
|
|
|
|
def read_state():
|
|
try:
|
|
with open('botstate.dict', 'r') as f:
|
|
print('[ + ] Reading bot state from disk.')
|
|
s = f.read()
|
|
return ast.literal_eval(s)
|
|
except:
|
|
return {}
|
|
|
|
def signal_handler(sig, frame):
|
|
print('[ + ] Writing bot state to disk.')
|
|
write_state(irc.bot.state)
|
|
sys.exit(0)
|
|
signal.signal(signal.SIGINT, signal_handler)
|
|
|
|
irc.bot.state = read_state()
|
|
irc.go()
|