Extract climax role graph wording
This commit is contained in:
+3
-53
@@ -1,16 +1,17 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import random
|
||||
import re
|
||||
from typing import Any
|
||||
|
||||
try:
|
||||
from .hardcore_role_anal import build_anal_or_double_role_graph
|
||||
from .hardcore_role_climax import build_climax_role_graph
|
||||
from .hardcore_role_oral import build_oral_role_graph
|
||||
from .hardcore_role_outercourse import build_outercourse_role_graph
|
||||
from .hardcore_role_penetration import build_penetration_role_graph
|
||||
except ImportError: # Allows local smoke tests with `python -c`.
|
||||
from hardcore_role_anal import build_anal_or_double_role_graph
|
||||
from hardcore_role_climax import build_climax_role_graph
|
||||
from hardcore_role_oral import build_oral_role_graph
|
||||
from hardcore_role_outercourse import build_outercourse_role_graph
|
||||
from hardcore_role_penetration import build_penetration_role_graph
|
||||
@@ -191,57 +192,6 @@ def build_hardcore_role_graph(
|
||||
return f"{primary} is centered while {partner} touches her body and {observer} watches close beside them, hands and faces readable."
|
||||
return f"{primary} is centered while {partner} touches her body and {observer} stays close as the watching or guiding partner."
|
||||
|
||||
def mentions_ass(text: str) -> bool:
|
||||
return bool(
|
||||
re.search(
|
||||
r"\bass\b|ass[- ](?:up|raised|exposed|lifted)|spread cheeks|lower back and ass|cum (?:on|dripping from) ass|pussy, ass|ass and",
|
||||
text,
|
||||
)
|
||||
)
|
||||
|
||||
def climax_position_graph(woman: str, man: str, third: str = "") -> str:
|
||||
if "lying between two partners" in item_text and third:
|
||||
return f"{woman} lies between {man} and {third}, with {man} under her hips and {third} positioned above her torso as visible semen lands on her body."
|
||||
if "held between front-and-back partners" in item_text and third:
|
||||
return f"{woman} is held between {man} behind her and {third} in front of her as visible semen lands across her body."
|
||||
if "kneeling between standing partners" in item_text and third:
|
||||
return f"{woman} kneels between {man} and {third} while both stand close around her face and torso for visible ejaculation."
|
||||
if "side-lying with thighs parted" in item_text:
|
||||
return f"{woman} lies on her side with thighs parted while {man} kneels beside her hips and ejaculates semen across her thighs and pussy."
|
||||
if "sitting on the edge of the bed" in item_text:
|
||||
return f"{woman} sits on the edge of the bed with knees spread while {man} stands close between her legs and ejaculates semen across her body."
|
||||
if "lying at the bed edge with thighs open" in item_text:
|
||||
return f"{woman} lies at the bed edge with thighs open while {man} kneels between her legs and ejaculates semen across her pussy and thighs."
|
||||
if "reclining with thighs open" in item_text or "lying on the back with legs spread" in item_text:
|
||||
return f"{woman} lies on her back with thighs open while {man} kneels between her legs and ejaculates semen across her pussy and thighs."
|
||||
if "on all fours with hips raised" in item_text:
|
||||
return f"{woman} is on all fours with hips raised while {man} is positioned behind her and ejaculates semen across her ass, thighs, and lower back."
|
||||
if "face-down ass-up" in item_text:
|
||||
return f"{woman} lies face-down with ass raised while {man} is positioned behind her and ejaculates semen across her lower back and ass."
|
||||
if "bent over with ass raised" in item_text or "bent over" in item_text:
|
||||
return f"{woman} is bent forward with hips raised while {man} is positioned behind her, visible semen across her lower back, ass, and thighs."
|
||||
if "kneeling with mouth open" in item_text:
|
||||
return f"{woman} kneels in front of {man} at hip height while {man} ejaculates semen onto her face, lips, and chest."
|
||||
if "kneeling in front of a standing partner" in item_text:
|
||||
return f"{woman} kneels in front of {man} at hip height while {man} stands over her for visible ejaculation."
|
||||
if "standing with cum on the body" in item_text:
|
||||
return f"{woman} stands braced in front of {man} while he stays close at hip level and ejaculates semen across her body."
|
||||
if "squatting on top of a partner" in item_text:
|
||||
return f"{woman} squats over {man}'s hips while {man} lies on his back under her and ejaculates semen onto her body."
|
||||
if "reverse cowgirl over a partner's hips" in item_text:
|
||||
return f"{woman} straddles {man}'s hips facing away while {man} lies on his back under her and ejaculates semen onto her body."
|
||||
if any(term in item_text for term in ("straddling a partner", "straddling a partner's hips", "shared climax after penetration", "orgasm during penetration")):
|
||||
return f"{woman} straddles {man}'s hips while {man} lies on his back under her, their bodies still aligned from penetration as he ejaculates semen onto her body."
|
||||
if "seated in a partner's lap facing them" in item_text:
|
||||
return f"{woman} sits in {man}'s lap facing him, legs wrapped around his hips as he ejaculates semen across her body."
|
||||
if any(term in item_text for term in ("lower back", "cum dripping from ass", "cum on lower back")) or mentions_ass(item_text):
|
||||
return f"{woman} is bent forward with hips raised while {man} is positioned behind her, visible semen across her lower back, ass, and thighs."
|
||||
if any(term in item_text for term in ("cum on face", "cum on tongue", "cum on lips", "cum on face and lips", "cum on tongue and chin")):
|
||||
if third:
|
||||
return f"{woman} kneels in the center while {man} and {third} stand close around her face and torso for visible ejaculation."
|
||||
return f"{woman} kneels in front of {man} at hip height while {man} ejaculates semen onto her face, lips, and chest."
|
||||
return f"{woman} lies on her back with thighs open while {man} kneels between her legs and ejaculates semen onto her body."
|
||||
|
||||
if people_count == 1:
|
||||
solo = people[0]
|
||||
if women_count == 1:
|
||||
@@ -338,7 +288,7 @@ def build_hardcore_role_graph(
|
||||
elif "group" in slug or "orgy" in slug:
|
||||
graph = f"{man} thrusts his penis into {woman} while surrounding partners give oral contact and keep hands on hips, breasts, and thighs."
|
||||
elif "cumshot" in slug or "climax" in slug:
|
||||
graph = climax_position_graph(woman, man, third)
|
||||
graph = build_climax_role_graph(woman, man, third, item_text, item_axis_values)
|
||||
else:
|
||||
graph = build_penetration_role_graph(woman, man, item_text, item_axis_values)
|
||||
return graph + support_sentence({woman, man, third} if third else {woman, man})
|
||||
|
||||
Reference in New Issue
Block a user