slsys / Gateway

Web site
https://slsys.github.io/Gateway/
245 stars 108 forks source link

Добавление модулей LUA #40

Open Rupreht opened 4 years ago

Rupreht commented 4 years ago

Есть мощная штука, загрузка модулей. Например, json или base64 (для HTTP Basic Authorization)

json = require("json")
print(json.encode({ 1, 2, 'fred', {first='mars',second='venus',third='earth'} }))

Предлагаю варианты реализации:

  1. Безопасный: Не добавлять в парсер require, заранее загружать определенные разработчиком модули.
  2. Свободный: загружать любые LUA_PATH="?.lua;lua/?/?.lua"

lua.org.ru: 6.3 - Модули lua.org: 8.1 – The require Function

piavia commented 3 years ago

Пока нет реализации require. Я сделал таким способом, создал файл json.lua и скопировал код в него из проекта json.lua В файле OneMinTimer.lua пример вызова:
local json = loadfile ("/int/json.lua")() local res = http.request("http://212.237.16.93/bot14627g/getUpdates?offset=-1") local data = json.decode(res) print("data",data["ok"])

Avenitos commented 3 years ago

для require() придется включать код модулей в основную прошивку, думаю, это лишнее. через loadfile() вполне годный вариант, сейчас с внутренней памяти можно грузить, в дальнейшем и с SD карты