-- bool, users = getTableUsersByUrl(url) - получить таблицу пользователей по ссылке на .txt файл списка.
-- * url - ссылка на .txt файл списка.
-- * users - таблица пользователей.
-- * bool - загрузка списка удалась (true/false)
-- * users[номер пользователя].name - имя пользователя; users[номер пользователя].date - окончательная дата работы скрипта (чтобы узнать, когда наступил окончательный..
-- ..срок, нужна функция isAvailableUser).
-- availabled = isAvailableUser(users, name) - узнать, находится ли пользователь в списке и узнать, не закончился ли срок.
-- * users - таблица пользователей.
-- * name - имя пользователя.
-- * availabled - доступность (true/false).
function getTableUsersByUrl(url)
local n_file, bool, users = os.getenv('TEMP')..os.time(), false, {}
downloadUrlToFile(url, n_file, function(id, status)
if status == 6 then bool = true end
end)
while not doesFileExist(n_file) do wait(0) end
if bool then
local file = io.open(n_file, 'r')
for w in file:lines() do
local n, d = w:match('(.*): (.*)')
users[#users+1] = { name = n, date = d }
end
file:close()
os.remove(n_file)
end
return bool, users
end
function isAvailableUser(users, name)
for i, k in pairs(users) do
if k.name == name then
local d, m, y = k.date:match('(%d+)%.(%d+)%.(%d+)')
local time = {
day = tonumber(d),
isdst = true,
wday = 0,
yday = 0,
year = tonumber(y),
month = tonumber(m),
hour = 0
}
if os.time(time) >= os.time() then return true end
end
end
return false
end