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

Vespan

☢️шедевроаризона☢️
Автор темы
Проверенный
2,080
1,542
Кароч,типа база данных через 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
Было бы круто для новичков прикрепить готовый вариант скрипта к теме, наверное