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:
|
if not rows:
|
||||||
return None
|
return None
|
||||||
assert len(rows) == 1
|
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):
|
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:
|
def score(danbooru_tags: Set[str], interrogator_tags: Set[str]) -> decimal.Decimal:
|
||||||
tags_in_danbooru = danbooru_tags | interrogator_tags
|
tags_in_danbooru = danbooru_tags.intersection(interrogator_tags)
|
||||||
tags_not_in_danbooru = danbooru_tags - interrogator_tags
|
tags_not_in_danbooru = interrogator_tags - danbooru_tags
|
||||||
return decimal.Decimal(
|
return decimal.Decimal(
|
||||||
len(tags_in_danbooru) - len(tags_not_in_danbooru)
|
len(tags_in_danbooru) - len(tags_not_in_danbooru)
|
||||||
) / decimal.Decimal(len(danbooru_tags))
|
) / decimal.Decimal(len(danbooru_tags))
|
||||||
|
|
Loading…
Reference in a new issue