Compare commits
2 commits
6f3ce2ab02
...
18da5d7972
Author | SHA1 | Date | |
---|---|---|---|
18da5d7972 | |||
8a3a47a8af |
1 changed files with 17 additions and 3 deletions
20
main.py
20
main.py
|
@ -194,7 +194,21 @@ async def fetch_post(ctx, md5) -> Optional[dict]:
|
|||
if not rows:
|
||||
return None
|
||||
assert len(rows) == 1
|
||||
return json.loads(rows[0][0])
|
||||
post = json.loads(rows[0][0])
|
||||
post_rating = post["rating"]
|
||||
match post_rating:
|
||||
case "g":
|
||||
rating_tag = "general"
|
||||
case "s":
|
||||
rating_tag = "sensitive"
|
||||
case "q":
|
||||
rating_tag = "questionable"
|
||||
case "e":
|
||||
rating_tag = "explicit"
|
||||
case _:
|
||||
raise AssertionError("invalid post rating {post_rating!r}")
|
||||
post["tag_string"] = post["tag_string"] + " " + rating_tag
|
||||
return post
|
||||
|
||||
|
||||
async def insert_post(ctx, post):
|
||||
|
@ -250,8 +264,8 @@ async def fight(ctx):
|
|||
|
||||
|
||||
def score(danbooru_tags: Set[str], interrogator_tags: Set[str]) -> decimal.Decimal:
|
||||
tags_in_danbooru = danbooru_tags | interrogator_tags
|
||||
tags_not_in_danbooru = danbooru_tags - interrogator_tags
|
||||
tags_in_danbooru = danbooru_tags.intersection(interrogator_tags)
|
||||
tags_not_in_danbooru = interrogator_tags - danbooru_tags
|
||||
return decimal.Decimal(
|
||||
len(tags_in_danbooru) - len(tags_not_in_danbooru)
|
||||
) / decimal.Decimal(len(danbooru_tags))
|
||||
|
|
Loading…
Reference in a new issue