Add plugin data
This commit is contained in:
parent
32992fe67f
commit
d6bc5867dc
28
plugin.py
28
plugin.py
|
@ -1,3 +1,4 @@
|
||||||
|
import json, traceback
|
||||||
cmds = {}
|
cmds = {}
|
||||||
help = {}
|
help = {}
|
||||||
listeners = {}
|
listeners = {}
|
||||||
|
@ -22,6 +23,33 @@ class CommandGroup:
|
||||||
else:
|
else:
|
||||||
return self.subcmds[self.default](bot,channel,nick,subcmd,*args)
|
return self.subcmds[self.default](bot,channel,nick,subcmd,*args)
|
||||||
|
|
||||||
|
class Data:
|
||||||
|
"""A class for plugin data."""
|
||||||
|
def __init__(self,value):
|
||||||
|
self.value = value
|
||||||
|
def serialize(self):
|
||||||
|
return self.value
|
||||||
|
def deserialize(self,value):
|
||||||
|
self.value = value
|
||||||
|
def save(self,filename):
|
||||||
|
with open(filename,"w") as f:
|
||||||
|
f.write(self.serialize())
|
||||||
|
def load(self,filename):
|
||||||
|
try:
|
||||||
|
with open(filename) as f:
|
||||||
|
self.deserialize(f.read())
|
||||||
|
except:
|
||||||
|
print("Error loading data from {!r}:".format(filename))
|
||||||
|
traceback.print_exc()
|
||||||
|
pass # You should've initialized this with a sane default, so just keep the default on error
|
||||||
|
|
||||||
|
class JSONData(Data):
|
||||||
|
"""Data, but can be serialized to JSON (and should be)."""
|
||||||
|
def serialize(self):
|
||||||
|
return json.dumps(self.value)
|
||||||
|
def deserialize(self,value):
|
||||||
|
self.value = json.loads(value)
|
||||||
|
|
||||||
def clear():
|
def clear():
|
||||||
cmds.clear()
|
cmds.clear()
|
||||||
help.clear()
|
help.clear()
|
||||||
|
|
Loading…
Reference in New Issue