在LUA中执行带有传递参数的脚本来控制Raspberry PI 3

问题描述 投票:0回答:1

我正在尝试使用Telegram CLI来“控制”我的虚拟Raspberry PI 3。我正在通过智能手机向电报CLI发送消息,并设法通过以下操作发送“ Ping”以在手机上接收“ Pong”:https://pimylifeup.com/raspberry-pi-telegram-bot/

我创建了此脚本:https://www.raspberrypi.org/forums/viewtopic.php?t=252300这样我就可以在Raspberry PI上播放视频(当直接从CMD调用时,它可以工作)

[我的想法是以PLAY-youtube-link.com的格式向Raspberry PI发送消息,以使用LUA捕获该消息并调用脚本来播放youtube视频。

播放youtube视频的脚本已保存为“ ytplayvlc”:

#!bin/bash
youtube-dl - U -f $2 -o - "$1" | vlc -

动作脚本保存在子文件夹/ tg中,名为“ actions.lua”:

function on_msg_receive (msg)
     if msg.out then
         return
     end
     if (msg.text == 'ping') then
         send_msg (msg.from.print_name, 'pong', ok_cb, false)
     end
     if (message.match(message, "PLAY-")) then
         send_msg (msg.from.print_name, 'Okay! This might take a second..', ok_c$, ok_cb, false)
         local link = string.match(message, "-(.*)")
         local command = [["../ytplayvlc " .. link .. " 18"]]
         os.execute(command)
     end
end
function on_our_id(id)
end
function on_secret_chat_update(user, what_changed)
end
function on_user_update(user_what_changed)
end
function on_chat_update(user, what_changed)
end
function on_get_difference_end()
end
function on_binlog_replay_end()
end

我以以下方式启动电报CLI:

bin/telegram-cli -k -N --enable-msg-id tg-server.pub -W -a actions.lua

Ping-Pong的效果很好,但是当我发送命令播放youtube视频时,收到了消息“好!这可能需要一秒钟..”,但随后什么也没发生。另外,当我使用Ping-Pong或youtube命令时,收到上述消息后,我立即收到CMD中的消息“ lua ::尝试调用nil值”

我不知道为什么,如果有人有主意,请让我知道。.我没有上述任何一种技术的经验,如果我错过了一些信息,我深表歉意。谢谢。

linux lua telegram
1个回答
0
投票

我解决了这个问题!!我删除了命令周围的方括号。所以现在这行是:local command =“ ../ytplayvlc” .. link ..“ 18”

© www.soinside.com 2019 - 2024. All rights reserved.