mirror of
https://github.com/JamesonHuang/OpenWrt_Luci_Lua.git
synced 2024-11-23 22:00:11 +00:00
390 lines
9.6 KiB
Lua
390 lines
9.6 KiB
Lua
|
module("meizu.dbfs", package.seeall)
|
||
|
|
||
|
local sqlite3 = require("lsqlite3")
|
||
|
local r13db = "/etc/r13db"
|
||
|
|
||
|
function database_busy()
|
||
|
return true
|
||
|
end
|
||
|
|
||
|
function updateDeviceNickname(mac, nickname)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("update arp set devicename = '%s' where mac = '%s'", nickname, mac)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function init_arp_table()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("create table if not exists arp(mac varchar(18), ip varchar(16), wifi integer, devicename varchar(100), orgname varchar(100))")
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function fetch_all_arp()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select * from arp")
|
||
|
local result = {}
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
table.insert(result,{
|
||
|
["mac"] = row[1],
|
||
|
["ip"] = row[2],
|
||
|
["wifi"] = row[3],
|
||
|
["devicename"] = row[4],
|
||
|
["orgname"] = row[5]
|
||
|
})
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function fetch_arp(mac)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select * from arp where mac = '%s' limit 1", mac)
|
||
|
local result = {}
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
table.insert(result,{
|
||
|
["mac"] = row[1],
|
||
|
["ip"] = row[2],
|
||
|
["wifi"] = row[3],
|
||
|
["devicename"] = row[4],
|
||
|
["orgname"] = row[5]
|
||
|
})
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function insert_arp_macip(mac, ip, wifi, devicename, orgname)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("insert into arp values('%s', '%s', %d, '%s', '%s')", mac, ip, wifi, devicename, orgname)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function delete_arp_all_mac()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("delete from arp")
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function update_arp(mac, ip, wifi)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("update arp set ip = '%s', wifi = %d where mac = '%s'", ip, wifi, mac)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function init_access_token_table()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("create table if not exists accessTokenTable(token varchar(100), expireTime bigint)")
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function add_access_token(token, expireTime)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("insert into accessTokenTable values('%s', %d)", token, expireTime)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function fetch_access_token()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select * from accessTokenTable")
|
||
|
local result = {}
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
table.insert(result,{
|
||
|
["token"] = row[1],
|
||
|
["expireTime"] = row[2]
|
||
|
})
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function update_access_token(oldToken, newToken, expireTime)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("update accessTokenTable set token = '%s', expireTime = %d where token = '%s'", newToken, expireTime, oldToken)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function delete_access_token()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("delete from accessTokenTable")
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function init_kv_table()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("create table if not exists kv(k varchar(50) primary key, v varchar(50))")
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function save_kv(key, value)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("insert or replace into kv values('%s', '%s')", key, value)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function fetch_kv(key)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select v from kv where k='%s' limit 1", key)
|
||
|
local result = {}
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
table.insert(result,{
|
||
|
["value"] = row[1],
|
||
|
})
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
--------
|
||
|
|
||
|
function init_deny_mac_table()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("create table if not exists denymac(mac varchar(50))")
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function add_deny_mac(mac)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("insert into denymac values('%s')", mac)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function fetch_all_deny_mac()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select * from denymac")
|
||
|
local result = {}
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
table.insert(result,{
|
||
|
["mac"] = row[1]
|
||
|
})
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function delete_deny_mac(mac)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("delete from denymac where mac = '%s'", mac)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function init_ssid_table()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("create table if not exists ssid(ssid24 varchar(50), ssid5 varchar(50))")
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function add_ssid(ssid24, ssid5)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("insert into ssid values('%s', '%s')", ssid24, ssid5)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function fetch_ssid()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select ssid24,ssid5 from ssid limit 1")
|
||
|
local result = {}
|
||
|
|
||
|
require "MZLog".log(3, "rowstest")
|
||
|
r, msg = pcall(function() db:rows(sqlStr) end)
|
||
|
if r == false then
|
||
|
require "MZLog".log(3, "r false")
|
||
|
return result
|
||
|
end
|
||
|
require "MZLog".log(3, "rowstest2")
|
||
|
|
||
|
for row in db:rows(sqlStr) do
|
||
|
require "MZLog".log(3, "row test")
|
||
|
if row then
|
||
|
table.insert(result,{
|
||
|
["ssid24"] = row[1],
|
||
|
["ssid5"] = row[2]
|
||
|
})
|
||
|
require "MZLog".log(3, "table insert in")
|
||
|
end
|
||
|
require "MZLog".log(3, "table insert out")
|
||
|
end
|
||
|
|
||
|
require "MZLog".log(3, "res test")
|
||
|
require "MZLog".log(3, result)
|
||
|
require "MZLog".log(3, "res test")
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function update_ssid(ssid24, ssid5)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("update ssid set ssid24 = '%s', ssid5 = '%s'", ssid24, ssid5)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function initBluetoothTable()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("create table if not exists blemeshtable(id varchar(100), mac varchar(100), key varchar(100), name varchar(100), deviceType varchar(100), len varchar(100))")
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function addBluetoothDevice(id, mac, key, name, deviceType, len)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("insert into blemeshtable values('%s', '%s', '%s', '%s', '%s', '%s')", id, mac, key, name, deviceType, len)
|
||
|
db:busy_handler(database_busy)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function fetchAllBluetoothDevice()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select * from blemeshtable")
|
||
|
db:busy_handler(database_busy)
|
||
|
local result = {}
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
table.insert(result,{
|
||
|
["mac"] = row[2],
|
||
|
["deviceType"] = row[5]
|
||
|
})
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function deleteBluetoothDevice(mac)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("delete from blemeshtable where mac = '%s'", mac)
|
||
|
db:busy_handler(database_busy)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function updateBluetoothDevice(id, key, name, len, mac)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("update blemeshtable set id = '%s', key = '%s', name = '%s', len = '%s' where mac = '%s'", id, key, name, len, mac)
|
||
|
db:busy_handler(database_busy)
|
||
|
db:exec(sqlStr)
|
||
|
return db:close()
|
||
|
end
|
||
|
|
||
|
function fetchBluetoothDevice(mac)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select * from blemeshtable where mac = '%s'", mac)
|
||
|
db:busy_handler(database_busy)
|
||
|
local result = {}
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
table.insert(result,{
|
||
|
["id"] = row[1],
|
||
|
["mac"] = row[2],
|
||
|
["deviceType"] = row[5],
|
||
|
["name"] = row[4]
|
||
|
})
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function fetchBluetoothDeviceKey()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select * from blemeshtable where key != ''")
|
||
|
db:busy_handler(database_busy)
|
||
|
local result = {}
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
table.insert(result,{
|
||
|
["mac"] = row[2],
|
||
|
["key"] = row[3]
|
||
|
})
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function getBluetoothDeviceMac()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select * from blemeshtable where deviceType == 'FF'")
|
||
|
db:busy_handler(database_busy)
|
||
|
local result = ""
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
result = row[2]
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function getBluetoothDevice(id)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select * from blemeshtable where id = '%s'", id)
|
||
|
db:busy_handler(database_busy)
|
||
|
local result = ""
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
result = row[2]
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function fetchAllBleMeshDevice()
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select * from blemeshtable where id !=''")
|
||
|
db:busy_handler(database_busy)
|
||
|
local result = {}
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
table.insert(result,{
|
||
|
["mac"] = row[2],
|
||
|
["deviceType"] = row[5],
|
||
|
["name"] = row[4]
|
||
|
})
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|
||
|
|
||
|
function getBleDeviceNameLength(id)
|
||
|
local db = sqlite3.open(r13db)
|
||
|
local sqlStr = string.format("select * from blemeshtable where id = '%s'", id)
|
||
|
db:busy_handler(database_busy)
|
||
|
local result = ""
|
||
|
for row in db:rows(sqlStr) do
|
||
|
if row then
|
||
|
result = row[6]
|
||
|
end
|
||
|
end
|
||
|
db:close()
|
||
|
return result
|
||
|
end
|