forked from extern/alertik
53 lines
1.4 KiB
C
53 lines
1.4 KiB
C
/*
|
|
* Alertik: a tiny 'syslog' server & notification tool for Mikrotik routers.
|
|
* This is free and unencumbered software released into the public domain.
|
|
*/
|
|
|
|
#ifndef NOTIFIERS_H
|
|
#define NOTIFIERS_H
|
|
|
|
/* Uncomment/comment to enable/disable the following settings. */
|
|
// #define CURL_VERBOSE
|
|
// #define VALIDATE_CERTS
|
|
// #define DISABLE_NOTIFICATIONS
|
|
|
|
/*
|
|
* Notifier indexes.
|
|
*/
|
|
#define NUM_NOTIFIERS 8
|
|
#define NOTIFY_IDX_TELE 0
|
|
#define NOTIFY_IDX_SLACK 1
|
|
#define NOTIFY_IDX_TEAMS 2
|
|
#define NOTIFY_IDX_DISCORD 3
|
|
#define NOTIFY_IDX_GENRC1 (NUM_NOTIFIERS-4)
|
|
#define NOTIFY_IDX_GENRC2 (NUM_NOTIFIERS-3)
|
|
#define NOTIFY_IDX_GENRC3 (NUM_NOTIFIERS-2)
|
|
#define NOTIFY_IDX_GENRC4 (NUM_NOTIFIERS-1)
|
|
|
|
#define CURL_USER_AGENT "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 " \
|
|
"(KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
|
|
|
|
/* Minimum time (in secs) between two */
|
|
#define LAST_SENT_THRESHOLD_SECS 10
|
|
|
|
/* Notifiers list, like:
|
|
* - Telegram
|
|
* - Slack
|
|
* - Discord
|
|
* - Teams
|
|
*/
|
|
extern const char *const notifiers_str[NUM_NOTIFIERS];
|
|
|
|
/* Notifier struct. */
|
|
struct notifier {
|
|
void *data;
|
|
void(*setup)(struct notifier *self);
|
|
int(*send_notification)(const struct notifier *self, const char *msg);
|
|
};
|
|
|
|
extern struct notifier notifiers[NUM_NOTIFIERS];
|
|
extern int is_within_notify_threshold(void);
|
|
extern void update_notify_last_sent(void);
|
|
|
|
#endif /* NOTIFIERS_H */
|