работа с Google Sheets - Гугл таблицами

Vespan

loneliness
Автор темы
Проверенный
2,109
1,632
Кароч,типа база данных через Google Sheets

Сперва создаем таблицу(не думаю что это ебать как сложно)

После этого,ну пишем данные,к премеру проверку на скрипт через серийник:
1664995195571.png

делаем вот так таблицу​
Серийник жеского дискаНик_Нейм для удобствавремя в формате os.time
Lua:
print(os.time{year=2022, month=10, day=7, hour=0})
-- 1665129600
os.time() lua.org


после того как закончили с таблицей,необходимо получить ссылку на JSON таблицы,сначала делаем таблицу публичную
1664995914456.png

после этого,в адресной строке копируем наш /PROJECT_ID/
https://docs.google.com/spreadsheets/d/1M2nDzK9vWharFyq1eJYhPXUXL8_-xfhqLHJlokKm3mU/edit#gid=0
/d/____/
и вставляем сюда вместо PROJECT_ID
https://docs.google.com/spreadsheets/d/PROJECT_ID/gviz/tq
должно получиться так
https://docs.google.com/spreadsheets/d/1M2nDzK9vWharFyq1eJYhPXUXL8_-xfhqLHJlokKm3mU/gviz/tq



Получение данных с таблицы​
Lua:
function getserial()
    ffi.cdef([[
        int __stdcall GetVolumeInformationA(
        const char* lpRootPathName,
        char* lpVolumeNameBuffer,
        uint32_t nVolumeNameSize,
        uint32_t* lpVolumeSerialNumber,
        uint32_t* lpMaximumComponentLength,
        uint32_t* lpFileSystemFlags,
        char* lpFileSystemFlags,
        uint32_t nFileSystemNameSize
        );
    ]])

    local slot0_a1129 = ffi.new("unsigned long[1]", 0)

    ffi.C.GetVolumeInformationA(nil, nil, 0, slot0_a1129, nil, nil, nil, 0)

    return slot0_a1129[0]
end
--
        local r = requests.get('https://docs.google.com/spreadsheets/d/1M2nDzK9vWharFyq1eJYhPXUXL8_-xfhqLHJlokKm3mU/gviz/tq') -- ССЫЛКА НА ТАБЛИЦУ JSON
        local j = decodeJson(r.text:gmatch('google%.visualization%.Query.setResponse%((.+)%);')()) -- получение JSON
        local auth = false

        for k,v in pairs(j.table.rows) do -- парсинг
            if (v.c[1].v) == getserial() then -- проверка ли есть такой серийник
                if (v.c[3].v) > os.time() then -- если да,то проверяем по времени
                    sampAddChatMessage('лицензия подошла к концу!')
                else
                    auth = true
                    sampAddChatMessage('Вы успешно авторизовались!')
                end
            end
        end
        if auth == false then
            sampAddChatMessage('Вас нет в базе данных!')
        end
Приемущества Google Sheets?
Не знаю,заметил что быстро обновляеться таблица после изменений в ней.
Удобно редактировать.
И хостинг не надо покупать.
JSON:
/*O_o*/
google.visualization.Query.setResponse({"version":"0.6","reqId":"0","status":"ok","sig":"530337372","table":{"cols":[{"id":"A","label":"","type":"number","pattern":"General"},{"id":"B","label":"","type":"string"},{"id":"C","label":"","type":"number","pattern":"General"}],"rows":[{"c":[{"v":3217442.0,"f":"3217442"},{"v":"Nick_Name"},{"v":1.6648704E9,"f":"1664870400"}]},{"c":[{"v":228.0,"f":"228"},{"v":"Sespan_Vespan"},{"v":1.66488E9,"f":"1664880000"}]}],"parsedNumHeaders":0}});
 
Последнее редактирование:

BURGER

Участник
44
34
Было бы круто для новичков прикрепить готовый вариант скрипта к теме, наверное