IMAPFILTER Lua脚本

背景:

我是IMAPFILTER和Lua的新手。我有一些家庭自动化设备,它们没有API,但具有电子邮件功能。我正在尝试使用imapfilter和lua根据来电邮件执行基于IFTTT的简单操作。

问题:

我的大部分问题都解决了,除了如何对不存在的匹配结果进行检查。

代码:

options.timeout = 120
options.subscribe = true

account1 = IMAP {
            server = ‘imap.gmail.com’,
            username = ‘username@gmail.com’,
            password = ‘password’,
            }

filter = function (mailbox, from, subject)
    return  mailbox:is_unseen() *
            mailbox:contain_from(from) *
            mailbox:contain_subject(subject)
    end

-- 获取邮箱状态
account1.INBOX:check_status()

-- 获取未读的,Safelert消息
results = filter(account1.INBOX, 'elertus.com', 'Alert')

-- 正确的if判断条件是什么?
-- 或者说,如何步骤检查无匹配结果?
if not next(results) == nil then
      os.execute("sh $HOME/isy/all_off.sh")
end

--标记已读
results:mark_seen()
--results:unmark_seen()

问题:

我能用什么条件方法来检查不存在的匹配结果?

谢谢,

Elvis

更新:这似乎有效,但我确定还有更有效的方法。

-- Safelert
results = filter(account1.INBOX, 'elertus.com', 'Alert')
matches=0
for _, mesg in ipairs(results) do
    matches=matches+1
end
if (matches > 0) then
      os.execute(thrDON)
end
results:mark_seen()
点赞