mirror of
https://github.com/Theldus/alertik.git
synced 2024-11-22 07:53:08 +01:00
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. */
|
/* Telegram & request settings. */
|
||||||
static char *telegram_bot_token;
|
static char *telegram_bot_token;
|
||||||
@ -271,9 +271,9 @@ static int send_telegram_notification(const char *msg)
|
|||||||
return do_curl(hnd, escaped_msg, NULL);
|
return do_curl(hnd, escaped_msg, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
////////////////////////////////// SLACK ///////////////////////////////////////
|
////////////////////////////////// SLACK //////////////////////////////////////
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/* Slack settings. */
|
/* Slack settings. */
|
||||||
static char *slack_webhook_url;
|
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);
|
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 ////////////////////////////////////////
|
////////////////////////////////// END ////////////////////////////////////////
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
const char *const notifiers_str[] = {
|
const char *const notifiers_str[] = {
|
||||||
"Telegram", "Slack", "Discord", "Teams",
|
"Telegram", "Slack", "Teams", "Discord",
|
||||||
"Generic1", "Generic2", "Generic3", "Generic4"
|
"Generic1", "Generic2", "Generic3", "Generic4"
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -315,5 +369,15 @@ struct notifier notifiers[] = {
|
|||||||
{
|
{
|
||||||
.setup = setup_slack,
|
.setup = setup_slack,
|
||||||
.send_notification = send_slack_notification
|
.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