su-automod/classes/rating.py

55 lines
1.7 KiB
Python
Executable File

import var
import json
class Rating:
name = ""
confidence = 0
enabled = False
type = ""
def __init__(self, name, confidence):
self.name = name
self.confidence = confidence
self.enabled = self.get_status()
def __str__(self):
return f"‼️ *{self.name}:* {round(self.confidence, 2)}%\n"
def get_status(self):
with open(var.labels_file, 'r') as file:
data = json.load(file)
top_level_true = []
top_level_false = []
lower_level_true = []
lower_level_false = []
for top_level_object, top_level_data in data.items():
if top_level_data.get("status") is True:
top_level_true.append(top_level_object)
elif top_level_data.get("status") is False:
top_level_false.append(top_level_object)
for lower_level_object, lower_level_status in top_level_data.items():
if lower_level_status is True and lower_level_object != "status":
lower_level_true.append(f"{lower_level_object}")
elif lower_level_status is False and lower_level_object != "status":
lower_level_false.append(f"{lower_level_object}")
if self.name in lower_level_true:
self.type = "secondary"
return True
if self.name in top_level_true:
self.type = "primary"
return True
return False
def create_ratings(response):
ratings = []
for label in response['ModerationLabels']:
rating = Rating(label['Name'], label['Confidence'])
ratings.append(rating)
return ratings