Add filtering to ls command and shorten hidden settings
This commit is contained in:
parent
ec6664868e
commit
909365c413
39
bot.py
39
bot.py
@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import telepot
|
import telepot
|
||||||
|
import re
|
||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
from Task import Task
|
from Task import Task
|
||||||
@ -102,18 +103,50 @@ def set_task(task_id, task, chat_id):
|
|||||||
def ls_tasks(arguments, chat_id):
|
def ls_tasks(arguments, chat_id):
|
||||||
tasks = get_tasks(chat_id)
|
tasks = get_tasks(chat_id)
|
||||||
counter = 0
|
counter = 0
|
||||||
|
|
||||||
for i in range(len(tasks)):
|
for i in range(len(tasks)):
|
||||||
tasks[i] = (counter, tasks[i])
|
tasks[i] = (counter, tasks[i])
|
||||||
counter += 1
|
counter += 1
|
||||||
|
|
||||||
tasks = sorted(tasks, key=lambda tup: tup[1].text)
|
tasks = sorted(tasks, key=lambda tup: tup[1].text)
|
||||||
|
|
||||||
|
# create list of filters
|
||||||
|
filters = []
|
||||||
|
nfilters = []
|
||||||
|
for i in arguments:
|
||||||
|
if re.match("^f:", i) is not None:
|
||||||
|
filters.append(i.split("f:")[1])
|
||||||
|
elif re.match("^filter:", i) is not None:
|
||||||
|
filters.append(i.split("filter:")[1])
|
||||||
|
elif re.match("^!f:", i) is not None:
|
||||||
|
nfilters.append(i.split("!f:")[1])
|
||||||
|
elif re.match("^!filter:", i) is not None:
|
||||||
|
nfilters.append(i.split("!filter:")[1])
|
||||||
|
|
||||||
text = "Tasks:\n"
|
text = "Tasks:\n"
|
||||||
for i in tasks:
|
for i in tasks:
|
||||||
|
task = i[1]
|
||||||
counter += 1
|
counter += 1
|
||||||
if i[1].done and "show-hidden" not in arguments:
|
filter_pass = True
|
||||||
|
|
||||||
|
# hidden texts
|
||||||
|
if task.done and ":show-hidden" not in arguments:
|
||||||
continue
|
continue
|
||||||
if i[1].done and "show-only-hidden" in arguments:
|
if task.done and ":only-hidden" in arguments:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# filter checking
|
||||||
|
for ii in filters:
|
||||||
|
filter_pass = ii in task.text
|
||||||
|
|
||||||
|
# needs continue statement after each filter list
|
||||||
|
if not filter_pass:
|
||||||
|
continue
|
||||||
|
|
||||||
|
for ii in nfilters:
|
||||||
|
filter_pass = ii not in task.text
|
||||||
|
|
||||||
|
if not filter_pass:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
text += str(i[0]) + " " + i[1].text + "\n"
|
text += str(i[0]) + " " + i[1].text + "\n"
|
||||||
@ -138,4 +171,4 @@ def undo_tasks(task_ids, chat_id):
|
|||||||
MessageLoop(bot, on_message).run_as_thread()
|
MessageLoop(bot, on_message).run_as_thread()
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
time.sleep(10)
|
time.sleep(5)
|
||||||
|
Reference in New Issue
Block a user