mirror of https://github.com/SeanOMik/znc-push.git
Implemented away_only condition
This commit is contained in:
parent
9f89dc5c9c
commit
307f17e493
|
@ -80,6 +80,10 @@ Configuration
|
||||||
|
|
||||||
### Conditions
|
### Conditions
|
||||||
|
|
||||||
|
* `away_only = "no"`
|
||||||
|
|
||||||
|
If set to "yes", notifications will only be sent if the user has set their `/away` status.
|
||||||
|
|
||||||
* `client_count_less_than = 0`
|
* `client_count_less_than = 0`
|
||||||
|
|
||||||
Notifications will only be sent if the number of connected IRC clients is less than this
|
Notifications will only be sent if the number of connected IRC clients is less than this
|
||||||
|
@ -105,8 +109,6 @@ Roadmap
|
||||||
|
|
||||||
### Conditions
|
### Conditions
|
||||||
|
|
||||||
* Away: Whether the user has set their /away status.
|
|
||||||
|
|
||||||
* User inactivity: How long, in seconds, since the last action made by user, in any
|
* User inactivity: How long, in seconds, since the last action made by user, in any
|
||||||
channel or query window.
|
channel or query window.
|
||||||
|
|
||||||
|
|
28
notifo.cpp
28
notifo.cpp
|
@ -65,6 +65,7 @@ class CNotifoMod : public CModule
|
||||||
defaults["secret"] = "";
|
defaults["secret"] = "";
|
||||||
|
|
||||||
// Notification conditions
|
// Notification conditions
|
||||||
|
defaults["away_only"] = "no";
|
||||||
defaults["client_count_less_than"] = "0";
|
defaults["client_count_less_than"] = "0";
|
||||||
|
|
||||||
// Notification settings
|
// Notification settings
|
||||||
|
@ -139,6 +140,19 @@ class CNotifoMod : public CModule
|
||||||
AddSocket(sock);
|
AddSocket(sock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the away status condition is met.
|
||||||
|
*
|
||||||
|
* @return True if away_only is not "yes" or away status is set
|
||||||
|
*/
|
||||||
|
bool away_only()
|
||||||
|
{
|
||||||
|
CString value = options["away_only"].AsLower();
|
||||||
|
return value != "yes" || user->IsIRCAway();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check how many clients are connected to ZNC.
|
* Check how many clients are connected to ZNC.
|
||||||
*
|
*
|
||||||
|
@ -193,6 +207,11 @@ class CNotifoMod : public CModule
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!away_only())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!client_count_less_than())
|
if (!client_count_less_than())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
@ -209,6 +228,11 @@ class CNotifoMod : public CModule
|
||||||
*/
|
*/
|
||||||
bool notify_pm(const CNick& nick)
|
bool notify_pm(const CNick& nick)
|
||||||
{
|
{
|
||||||
|
if (!away_only())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -437,6 +461,10 @@ class CNotifoMod : public CModule
|
||||||
table.AddColumn("Condition");
|
table.AddColumn("Condition");
|
||||||
table.AddColumn("Status");
|
table.AddColumn("Status");
|
||||||
|
|
||||||
|
table.AddRow();
|
||||||
|
table.SetCell("Condition", "away");
|
||||||
|
table.SetCell("Status", user->IsIRCAway() ? "yes" : "no");
|
||||||
|
|
||||||
table.AddRow();
|
table.AddRow();
|
||||||
table.SetCell("Condition", "client_count");
|
table.SetCell("Condition", "client_count");
|
||||||
table.SetCell("Status", CString(client_count()));
|
table.SetCell("Status", CString(client_count()));
|
||||||
|
|
Loading…
Reference in New Issue