| Server IP : 82.180.147.116 / Your IP : 216.73.216.4 Web Server : Apache System : Linux server.vsyshosting.com 5.14.0-503.40.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 5 06:06:04 EDT 2025 x86_64 User : demoplace ( 1009) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/model/ |
Upload File : |
from collections import namedtuple
from peewee import FloatField, BlobField
from defence360agent.model import instance, Model
class MessageToSend(Model):
"""
Storage for messages to be sent to server
while connection to server is not available
"""
class Meta:
database = instance.db
db_table = "messages_to_send_nr"
#: When the message was added to the queue to be sent to the server.
timestamp = FloatField(null=False)
#: The message itself.
message = BlobField(null=False)
MessageToSendT = namedtuple("MessageToSendT", "timestamp message")
@classmethod
def get_oldest(cls, limit=1):
old = cls.select().order_by(cls.timestamp).limit(limit)
return old
@classmethod
def delete_in(cls, query):
q = cls.delete().where(cls.id.in_(query))
return q.execute()
@classmethod
def delete_old(cls, limit=1):
old = cls.select().order_by(cls.timestamp).limit(limit)
q = cls.delete().where(cls.id.in_(old))
return q.execute()
@classmethod
def insert_many(cls, rows, **kwargs) -> None:
# sqlite may have internal limit of variables-per-query
for i in range(0, len(rows), 100):
data = [
cls.MessageToSendT(*row)._asdict() for row in rows[i : i + 100]
]
super().insert_many(data, **kwargs).execute()