40dd62c477
- GMaps: Inline - get_coords() gibt jetzt auch die Adresse zurück
52 lines
1.6 KiB
Lua
52 lines
1.6 KiB
Lua
local gps = {}
|
|
|
|
gps.command = 'gps <Breitengrad>,<Längengrad>'
|
|
|
|
function gps:init(config)
|
|
gps.triggers = {
|
|
"^/gps ([^,]*)[,%s]([^,]*)$",
|
|
"google.de/maps/@([^,]*)[,%s]([^,]*)",
|
|
"google.com/maps/@([^,]*)[,%s]([^,]*)",
|
|
"google.de/maps/place/@([^,]*)[,%s]([^,]*)",
|
|
"google.com/maps/place/@([^,]*)[,%s]([^,]*)"
|
|
}
|
|
gps.inline_triggers = {
|
|
"^gps ([^,]*)[,%s]([^,]*)$",
|
|
"google.de/maps/@([^,]*)[,%s]([^,]*)",
|
|
"google.com/maps/@([^,]*)[,%s]([^,]*)",
|
|
"google.de/maps/place/@([^,]*)[,%s]([^,]*)",
|
|
"google.com/maps/place/@([^,]*)[,%s]([^,]*)"
|
|
}
|
|
gps.doc = [[*
|
|
]]..config.cmd_pat..[[gps* _<Breitengrad>_,_<Längengrad>_: Sendet Karte mit diesen Koordinaten]]
|
|
end
|
|
|
|
function gps:inline_callback(inline_query, config)
|
|
local lat = matches[1]
|
|
local lon = matches[2]
|
|
|
|
local results = '[{"type":"location","id":"'..math.random(100000000000000000)..'","latitude":'..lat..',"longitude":'..lon..',"title":"Standort"}]'
|
|
|
|
utilities.answer_inline_query(self, inline_query, results, 10000)
|
|
end
|
|
|
|
function gps:action(msg, config, matches)
|
|
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
|
local lat = matches[1]
|
|
local lon = matches[2]
|
|
|
|
local zooms = {16, 18}
|
|
|
|
local urls = {}
|
|
for i in ipairs(zooms) do
|
|
local zoom = zooms[i]
|
|
local url = "https://maps.googleapis.com/maps/api/staticmap?zoom=" .. zoom .. "&size=600x300&maptype=hybrid¢er=" .. lat .. "," .. lon .. "&markers=color:red%7Clabel:•%7C" .. lat .. "," .. lon
|
|
local file = download_to_file(url, 'zoom_'..i..'.png')
|
|
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
|
end
|
|
|
|
utilities.send_location(self, msg.chat.id, lat, lon, msg.message_id)
|
|
end
|
|
|
|
return gps
|