Add '/last' command, remembers last command sent
This commit is contained in:
41
bot.py
41
bot.py
@@ -8,6 +8,10 @@ from Task import Task
|
|||||||
from telepot.loop import MessageLoop
|
from telepot.loop import MessageLoop
|
||||||
|
|
||||||
|
|
||||||
|
PROPERTY_LAST_COMMAND = "last_command"
|
||||||
|
PROPERTY_LAST_ARGUMENTS = "last_arguments"
|
||||||
|
|
||||||
|
|
||||||
with open('config.json') as file:
|
with open('config.json') as file:
|
||||||
config = json.loads(file.read())
|
config = json.loads(file.read())
|
||||||
|
|
||||||
@@ -26,6 +30,14 @@ def on_message(msg):
|
|||||||
command = text.split(' ')[0].lower()
|
command = text.split(' ')[0].lower()
|
||||||
arguments = text.split(' ')[1:]
|
arguments = text.split(' ')[1:]
|
||||||
|
|
||||||
|
if command == '/last':
|
||||||
|
last_checks(chat_id)
|
||||||
|
command = get_property(PROPERTY_LAST_COMMAND, chat_id)
|
||||||
|
arguments = get_property(PROPERTY_LAST_ARGUMENTS, chat_id)
|
||||||
|
else:
|
||||||
|
set_property(PROPERTY_LAST_COMMAND, command, chat_id)
|
||||||
|
set_property(PROPERTY_LAST_ARGUMENTS, arguments, chat_id)
|
||||||
|
|
||||||
if command == '/add':
|
if command == '/add':
|
||||||
add_task(Task(" ".join(arguments)), chat_id)
|
add_task(Task(" ".join(arguments)), chat_id)
|
||||||
elif command == '/rm':
|
elif command == '/rm':
|
||||||
@@ -61,6 +73,29 @@ def rm_tasks(task_ids, chat_id):
|
|||||||
rm_task(tasks[int(i)], chat_id)
|
rm_task(tasks[int(i)], chat_id)
|
||||||
|
|
||||||
|
|
||||||
|
def get_property(property_name, chat_id):
|
||||||
|
with open(config['tasks_file']) as file:
|
||||||
|
info_dict = json.loads(file.read())
|
||||||
|
|
||||||
|
key = property_name + ":" + str(chat_id)
|
||||||
|
|
||||||
|
if key in info_dict.keys():
|
||||||
|
return info_dict[key]
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def set_property(property_name, value, chat_id):
|
||||||
|
with open(config['tasks_file']) as file:
|
||||||
|
info_dict = json.loads(file.read())
|
||||||
|
|
||||||
|
key = property_name + ":" + str(chat_id)
|
||||||
|
info_dict[key] = value
|
||||||
|
|
||||||
|
with open(config['tasks_file'], 'w') as file:
|
||||||
|
info_dict = file.write(json.dumps(info_dict))
|
||||||
|
|
||||||
|
|
||||||
def get_tasks(chat_id):
|
def get_tasks(chat_id):
|
||||||
with open(config['tasks_file']) as file:
|
with open(config['tasks_file']) as file:
|
||||||
tasks_dict = json.loads(file.read())
|
tasks_dict = json.loads(file.read())
|
||||||
@@ -178,6 +213,12 @@ def marco(chat_id):
|
|||||||
bot.sendMessage(chat_id, "Polo")
|
bot.sendMessage(chat_id, "Polo")
|
||||||
|
|
||||||
|
|
||||||
|
def last_checks(chat_id):
|
||||||
|
if get_property(PROPERTY_LAST_ARGUMENTS, chat_id) is None or \
|
||||||
|
get_property(PROPERTY_LAST_COMMAND, chat_id) is None:
|
||||||
|
bot.sendMessage(chat_id, "No recorded last command")
|
||||||
|
|
||||||
|
|
||||||
MessageLoop(bot, on_message).run_as_thread()
|
MessageLoop(bot, on_message).run_as_thread()
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
|
Reference in New Issue
Block a user