.. _fbf.plugs.core.userstate: userstate ~~~~~~~~~ .. automodule:: fbf.plugs.core.userstate :show-inheritance: :members: :undoc-members: CODE ---- :: # fbf/plugs/core/userstate.py # # """ userstate is stored in jsondata/state/users/. """ .. _fbf.plugs.core.userstate_fbf_imports: fbf imports -------------- :: from fbf.lib.commands import cmnds from fbf.lib.examples import examples from fbf.lib.persiststate import UserState from fbf.lib.errors import NoSuchUser .. _fbf.plugs.core.userstate_set_command: set command -------------- :: def handle_set(bot, ievent): """ arguments: - set a variable in your userstate. """ try: (item, value) = ievent.args except ValueError: ievent.missing(" ") ; return ievent.user.state.data[item.lower()] = value ievent.user.state.save() ievent.reply("%s set to %s" % (item.lower(), value)) cmnds.add('set', handle_set, ['OPER', 'USER', 'GUEST']) examples.add('set', 'set userstate', 'set place heerhugowaard') .. _fbf.plugs.core.userstate_get_command: get command -------------- :: def handle_get(bot, ievent): """ arguments: [] - get your userstate (complete dump or use to filter). """ target = ievent.rest if target: target = target.lower() userstate = ievent.user.state result = [] for i, j in userstate.data.items(): if target == i or not target: result.append("%s=%s" % (i, j)) if result: ievent.reply("state: ", result) else: ievent.reply('no userstate of %s known' % ievent.userhost) cmnds.add('get', handle_get, ['OPER', 'USER', 'GUEST']) examples.add('get', 'get your userstate', 'get') .. _fbf.plugs.core.userstate_unset_command: unset command ---------------- :: def handle_unset(bot, ievent): """ arguments: - remove value from user state of your userstate. """ try: item = ievent.args[0].lower() except (IndexError, TypeError): ievent.missing('') return try: del ievent.user.state.data[item] except KeyError: ievent.reply('no such item') return ievent.user.state.save() ievent.reply('item %s deleted' % item) cmnds.add('unset', handle_unset, ['USER', 'GUEST']) examples.add('unset', 'delete variable from your state', 'unset TZ')