|
|
|
@ -107,16 +107,24 @@ class KamazAI: |
|
|
|
score += self.WEIGHTS['steam_identity'] * identity_score |
|
|
|
|
|
|
|
# 2. Причина (точное совпадение) |
|
|
|
reason_score = 1.0 if report1['reasons'] == report2['reasons'] else 0.0 |
|
|
|
score += self.WEIGHTS['reason'] * reason_score |
|
|
|
try: |
|
|
|
reason_score = 1.0 if report1['reasons'] == report2['reasons'] else 0.0 |
|
|
|
score += self.WEIGHTS['reason'] * reason_score |
|
|
|
except: |
|
|
|
print("Skip reason calc", report1, report2) |
|
|
|
traceback.print_exc() |
|
|
|
|
|
|
|
# 3. Права |
|
|
|
perm_score = 0.0 |
|
|
|
if report1['a_permition'] == report2['a_permition']: |
|
|
|
perm_score += 0.5 |
|
|
|
if report1['r_permition'] == report2['r_permition']: |
|
|
|
perm_score += 0.5 |
|
|
|
score += self.WEIGHTS['permissions'] * perm_score |
|
|
|
try: |
|
|
|
perm_score = 0.0 |
|
|
|
if report1['a_permition'] == report2['a_permition']: |
|
|
|
perm_score += 0.5 |
|
|
|
if report1['r_permition'] == report2['r_permition']: |
|
|
|
perm_score += 0.5 |
|
|
|
score += self.WEIGHTS['permissions'] * perm_score |
|
|
|
except: |
|
|
|
print("Skip permition calc", report1, report2) |
|
|
|
traceback.print_exc() |
|
|
|
|
|
|
|
# 4. Числовые поля (нормированное евклидово расстояние -> сходство) |
|
|
|
num_fields = ['a_kills', 'a_deads', 'a_seconds', 'r_kills', 'r_deads', 'r_seconds', 'online'] |
|
|
|
@ -223,6 +231,7 @@ class Extension: |
|
|
|
|
|
|
|
try: |
|
|
|
report_id = message.embeds[0].color.value |
|
|
|
#print("Found report id", report_id) |
|
|
|
except: |
|
|
|
return await message.reply(content=f'KamazAI не может получить индификатор репорта') |
|
|
|
|
|
|
|
|