local api_key = "your_api_key_here" -- замените на свой API-ключ
function upload_screenshot()
local timestamp = os.time()
local screenshot_path = string.format("screenshots/screenshot_%d.png", timestamp) -- путь к скриншоту
samp.takeScreenshot(screenshot_path) -- делаем скриншот
local file = io.open(screenshot_path, "rb")
local contents = file:read("*all")
file:close()
local url = "https://api.imgur.com/3/image"
local headers = {
["Authorization"] = "Client-ID " .. api_key,
["Content-Type"] = "application/x-www-form-urlencoded",
["Content-Length"] = #contents
}
local body = {
["image"] = contents
}
local response = {}
local success, err = http.request{
url = url,
method = "POST",
headers = headers,
source = ltn12.source.string(http.urlencode(body)),
sink = ltn12.sink.table(response)
}
if success and response ~= nil then
local resp = table.concat(response)
local json = utils.from_json(resp)
if json.success then
sampAddChatMessage(string.format("Screenshot uploaded to Imgur: %s", json.data.link)) -- сообщение о успешной загрузке
else
sampAddChatMessage("Failed to upload screenshot to Imgur") -- сообщение об ошибке
end
else
sampAddChatMessage("Failed to upload screenshot to Imgur") -- сообщение об ошибке
end
os.remove(screenshot_path) -- удаляем скриншот
end
function onScriptTerminate(script, quitGame)
if script == thisScript() then
sampAddChatMessage("Imgur uploader terminated") -- сообщение об остановке скрипта
end
end
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while true do
wait(0)
if isKeyDown(0x2E) and not sampIsChatInputActive() then -- проверяем, что нажата клавиша Print Screen и не открыто окно чата
upload_screenshot()
end
end
end
function imgur_uploader()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
sampRegisterChatCommand("imgur", function() upload_screenshot() end) -- регистрируем команду /imgur для ручной загрузки скриншота
while true do
wait(0)
end
end
function onScriptLoad()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
print("Imgur uploader loaded")
thisScript():registerEvent("onScriptTerminate")
imgur_uploader_thread = lua_thread.create(imgur_uploader)
end
function onScriptUnload()
if imgur_uploader_thread ~= nil then
imgur_uploader_thread:terminate()
end
end