|
Server : Apache System : Linux ecngx264.inmotionhosting.com 4.18.0-553.77.1.lve.el8.x86_64 #1 SMP Wed Oct 8 14:21:00 UTC 2025 x86_64 User : lonias5 ( 3576) PHP Version : 7.3.33 Disable Function : NONE Directory : /proc/self/root/proc/thread-self/root/opt/sharedrads/ |
Upload File : |
#!/usr/lib/rads/venv/bin/python3
import json
import argparse
from os import path
from datetime import datetime, timedelta
parser = argparse.ArgumentParser(
description='Add or remove temporary exclusion from sender_volume crit.'
)
parser.add_argument(
'Sender', metavar='sender', type=str, help='Email address to ignore.'
)
parser.add_argument(
'-t',
action='store',
metavar='hours',
type=int,
default=1,
help='Number of hours to exclude a sender from the crit, Default 1, Max 6.',
)
parser.add_argument(
'--d',
action='store_const',
metavar='delete',
default=False,
const=True,
help='Delete the exclusion for the specified user.',
)
args = parser.parse_args()
def get_exclusion_data():
if path.exists("/tmp/sender_volume.json"):
try:
with open(
'/tmp/sender_volume.json', encoding='utf-8'
) as exclude_json:
data = json.load(exclude_json)
except Exception:
data = {}
else:
data = {}
return data
def write_exclusion_file(data):
with open(
'/tmp/sender_volume.json', 'w', encoding='utf-8'
) as exclusion_file:
json.dump(data, exclusion_file)
def main():
data = get_exclusion_data()
if args.d is False:
if args.t > 6:
expire_time = datetime.now() + timedelta(hours=1)
else:
expire_time = datetime.now() + timedelta(hours=args.t)
data[args.Sender] = str(expire_time)
if args.d is True:
if args.Sender in data:
del data[args.Sender]
write_exclusion_file(data)
if __name__ == '__main__':
main()