forked from extern/alertik
Initial setup for Teams & Discord
This commit is contained in:
parent
11079f41c1
commit
34963499c3
78
notifiers.c
78
notifiers.c
@ -212,9 +212,9 @@ static int send_generic_webhook(const char *url, const char *text)
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////// TELEGRAM //////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////// TELEGRAM /////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/* Telegram & request settings. */
|
||||
static char *telegram_bot_token;
|
||||
@ -271,9 +271,9 @@ static int send_telegram_notification(const char *msg)
|
||||
return do_curl(hnd, escaped_msg, NULL);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////// SLACK ///////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////// SLACK //////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/* Slack settings. */
|
||||
static char *slack_webhook_url;
|
||||
@ -296,12 +296,66 @@ static int send_slack_notification(const char *msg) {
|
||||
return send_generic_webhook(slack_webhook_url, msg);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////// TEAMS //////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/* Teams settings. */
|
||||
static char *teams_webhook_url;
|
||||
|
||||
void setup_teams(void)
|
||||
{
|
||||
static int setup = 0;
|
||||
if (setup)
|
||||
return;
|
||||
|
||||
teams_webhook_url = getenv("TEAMS_WEBHOOK_URL");
|
||||
if (!teams_webhook_url) {
|
||||
panic("Unable to find env vars for Teams, please check if you have set "
|
||||
"the TEAMS_WEBHOOK_URL!!\n");
|
||||
}
|
||||
setup = 1;
|
||||
}
|
||||
|
||||
static int send_teams_notification(const char *msg) {
|
||||
return send_generic_webhook(teams_webhook_url, msg);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////// DISCORD /////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/* Discord settings. */
|
||||
static char *discord_webhook_url;
|
||||
|
||||
void setup_discord(void)
|
||||
{
|
||||
static int setup = 0;
|
||||
if (setup)
|
||||
return;
|
||||
|
||||
discord_webhook_url = getenv("DISCORD_WEBHOOK_URL");
|
||||
if (!discord_webhook_url) {
|
||||
panic("Unable to find env vars for Discord, please check if you have set "
|
||||
"the DISCORD_WEBHOOK_URL!!\n");
|
||||
}
|
||||
setup = 1;
|
||||
}
|
||||
|
||||
/* Discord in Slack-compatible mode. */
|
||||
static int send_discord_notification(const char *msg) {
|
||||
struct str_ab url;
|
||||
ab_init(&url);
|
||||
if (ab_append_fmt("%s/slack", discord_webhook_url) < 0)
|
||||
return 1;
|
||||
return send_generic_webhook(url.buff, msg);
|
||||
}
|
||||
|
||||
////////////////////////////////// END ////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
const char *const notifiers_str[] = {
|
||||
"Telegram", "Slack", "Discord", "Teams",
|
||||
"Telegram", "Slack", "Teams", "Discord",
|
||||
"Generic1", "Generic2", "Generic3", "Generic4"
|
||||
};
|
||||
|
||||
@ -315,5 +369,15 @@ struct notifier notifiers[] = {
|
||||
{
|
||||
.setup = setup_slack,
|
||||
.send_notification = send_slack_notification
|
||||
},
|
||||
/* Teams. */
|
||||
{
|
||||
.setup = setup_teams,
|
||||
.send_notification = send_teams_notification
|
||||
},
|
||||
/* Discord. */
|
||||
{
|
||||
.setup = setup_discord,
|
||||
.send_notification = send_discord_notification
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user