PK
œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Notice: ob_end_clean(): Failed to delete buffer. No buffer to delete in /home/telusvwg/public_html/da754d/index.php on line 8
| Dir : /opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/model/ |
| Server: Linux premium279.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64 IP: 66.29.132.192 |
| Dir : //opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/model/icontact.py |
import time
from peewee import CharField, IntegerField, CompositeKey
from defence360agent.contracts.config import IContactMessageType
from defence360agent.model import Model, instance
from defence360agent.utils.common import DAY, WEEK
THROTTLING_PERIOD = {
IContactMessageType.MALWARE_FOUND: DAY,
IContactMessageType.SCAN_NOT_SCHEDULED: WEEK,
}
class IContactThrottle(Model):
class Meta:
database = instance.db
db_table = "icontact_throttle"
primary_key = CompositeKey("message_type", "user")
message_type = CharField()
user = CharField(null=True)
#: The last time we sent a notification about :attr:`message_type`
timestamp = IntegerField(default=0)
@classmethod
def may_be_notified(cls, message_type, period_limit, user=None):
obj, _ = cls.get_or_create(message_type=message_type, user=user)
return (time.time() - obj.timestamp) > period_limit
@classmethod
def refresh(cls, message_type, user=None):
cls.update(timestamp=time.time()).where(
cls.message_type == message_type,
cls.user.is_null(True) if user is None else cls.user == user,
).execute()