mirror of https://github.com/SeanOMik/znc-push.git
add gotify support
This commit is contained in:
parent
23d84678de
commit
265990c6b4
70
push.cpp
70
push.cpp
|
@ -140,7 +140,7 @@ class CPushMod : public CModule
|
||||||
defaults["message_uri"] = "";
|
defaults["message_uri"] = "";
|
||||||
defaults["message_uri_post"] = "no";
|
defaults["message_uri_post"] = "no";
|
||||||
defaults["message_uri_title"] = "";
|
defaults["message_uri_title"] = "";
|
||||||
defaults["message_priority"] = "0";
|
defaults["message_priority"] = "";
|
||||||
defaults["message_sound"] = "";
|
defaults["message_sound"] = "";
|
||||||
defaults["message_escape"] = "";
|
defaults["message_escape"] = "";
|
||||||
|
|
||||||
|
@ -666,6 +666,70 @@ class CPushMod : public CModule
|
||||||
i->second = expand(i->second, replace);
|
i->second = expand(i->second, replace);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (service == "gotify")
|
||||||
|
{
|
||||||
|
if (options["message_uri"] == "" || options["secret"] == "" || options["message_priority"] == "")
|
||||||
|
{
|
||||||
|
PutModule("Error: message_uri, secret, or message_priority not set");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CString::size_type count;
|
||||||
|
VCString parts;
|
||||||
|
CString url = options["message_uri"];
|
||||||
|
|
||||||
|
// Verify that the URL begins with either http:// or https://
|
||||||
|
count = url.Split("://", parts, false);
|
||||||
|
|
||||||
|
if (count != 2)
|
||||||
|
{
|
||||||
|
PutModule("Error: invalid url format");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(options["message_uri_post"] != "yes")
|
||||||
|
{
|
||||||
|
use_post = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parts[0] == "https")
|
||||||
|
{
|
||||||
|
use_ssl = true;
|
||||||
|
use_port = 443;
|
||||||
|
}
|
||||||
|
else if (parts[0] == "http")
|
||||||
|
{
|
||||||
|
use_ssl = false;
|
||||||
|
use_port = 80;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PutModule("Error: invalid url schema");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Process the remaining portion of the URL
|
||||||
|
url = parts[1];
|
||||||
|
|
||||||
|
// Split out the host and optional port number; this breaks with raw IPv6 addresses
|
||||||
|
CString host = url.Token(0, false, "/");
|
||||||
|
count = host.Split(":", parts, false);
|
||||||
|
|
||||||
|
if (count > 1)
|
||||||
|
{
|
||||||
|
use_port = parts[1].ToInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
service_host = parts[0];
|
||||||
|
|
||||||
|
// Take everything after the '/' and add the token to it
|
||||||
|
service_url = "/" + url.Token(1, true, "/") + "?token=" + options["secret"];
|
||||||
|
|
||||||
|
// Add the message to the request body
|
||||||
|
params["title"] = message_title;
|
||||||
|
params["message"] = message_content;
|
||||||
|
params["priority"] = options["message_priority"];
|
||||||
|
}
|
||||||
else if (service == "airgram")
|
else if (service == "airgram")
|
||||||
{
|
{
|
||||||
PutModule("Error: Airgram service shut down. Please configure another notification provider.");
|
PutModule("Error: Airgram service shut down. Please configure another notification provider.");
|
||||||
|
@ -1521,6 +1585,10 @@ class CPushMod : public CModule
|
||||||
{
|
{
|
||||||
PutModule("Note: URL requires setting the 'message_uri' option with the full URL");
|
PutModule("Note: URL requires setting the 'message_uri' option with the full URL");
|
||||||
}
|
}
|
||||||
|
else if (value == "gotify")
|
||||||
|
{
|
||||||
|
PutModule("Note: URL requires setting the 'message_uri' option with the base URL and an application token (secret), and a priority (message_priority)");
|
||||||
|
}
|
||||||
else if (value == "faast")
|
else if (value == "faast")
|
||||||
{
|
{
|
||||||
PutModule("Note: Faast requires setting the secret to your apikey");
|
PutModule("Note: Faast requires setting the secret to your apikey");
|
||||||
|
|
Loading…
Reference in New Issue