The code in your link was messed up when they updated that forum some years ago. I've rehashed it to give it a chance of working but I suspect you may still have trouble getting it to work. Running it in the Lua test window would be your starting point after reading the
push over api doco.
Another alternative is to use Telegram with the Telegram plugin.
-- Refer to pushover documentation:
-- https://pushover.net/api
local pushToken = "YourPushOverTokenHere"
local pushUser = "YourPushOverUserCodeHere"
local pushTitle = "MessageTitle"
local pushMessage = "MessageContent"
local snapshotFile = "/tmp/camera_snapshot.jpg"
local pushPriority = "1"
-- Sound could be: pushover bike bugle, cash register, classical, cosmic, falling,
-- gamelan, intermission, magic, mechanical, pianobar, siren, spacealarm, tugboat,
-- alien, climb, persistent, echo, updown, none
local pushSound = "gamelan"
-- Link to the BlueIris videostream of that camera
local pushUrl = "http://xxx.xxx.xxx.xxx/mjpg/ShortCamName&user=XXX&pw=XXX"
local pushUrlTitle = "Camera Name"
-- This points to one of my BlueIris managed cameras
local camera = "http://xxx.xxx.xxx.xxx/image/ShortCamName?q=50&s=80&user=XXX&pw=XXX"
-- Get the snapshot from the camera
local out = assert(io.open(snapshotFile, "wb"))
local _,data = luup.inet.wget(camera)
out:write(data)
assert(out:close())
--Send PushOver request
local curlCommandTab = {}
table.insert (curlCommandTab, 'curl -s')
table.insert (curlCommandTab, '-F "token=' ..pushToken ..'"')
table.insert (curlCommandTab, '-F "user=' ..pushUser ..'"')
table.insert (curlCommandTab, '-F "title=' ..pushTitle ..'"')
table.insert (curlCommandTab, '-F "message=' ..pushMessage ..'"')
table.insert (curlCommandTab, '-F attachment=@' ..snapshotFile ..'"')
table.insert (curlCommandTab, '-F "sound=' ..pushSound ..'"')
table.insert (curlCommandTab, '-F "priority=' ..pushPriority ..'"')
table.insert (curlCommandTab, '-F "url=' ..pushUrl ..'"')
table.insert (curlCommandTab, '-F "url_title=' ..pushUrlTitle ..'"')
-- The .json suffix requests that the response be in JSON format
table.insert (curlCommandTab, 'https://api.pushover.net/1/messages.json')
local curlCommand = table.concat (curlCommandTab, ' ')
print(curlCommand)
local handle = io.popen(curlCommand)
local result = handle:read("*a")
handle:close()
print (result)
-- Delete temporary snapshot
os.remove (snapshotFile)