51 lines
2.6 KiB
Python
51 lines
2.6 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
|
|
def _context_text(item_text: str, item_axis_values: dict[str, Any] | None) -> str:
|
|
return " ".join(
|
|
str(part or "").lower()
|
|
for part in (
|
|
item_text,
|
|
*((item_axis_values or {}).values()),
|
|
)
|
|
)
|
|
|
|
|
|
def build_penetration_role_graph(
|
|
woman: str,
|
|
man: str,
|
|
item_text: str,
|
|
item_axis_values: dict[str, Any] | None = None,
|
|
) -> str:
|
|
text = _context_text(item_text, item_axis_values)
|
|
if "missionary" in text:
|
|
return (
|
|
f"{woman} lies on her back with legs open around {man}'s hips while {man} is above her between her thighs; "
|
|
f"{man}'s hips press close and {man}'s penis thrusts into her pussy."
|
|
)
|
|
if "reverse cowgirl" in text:
|
|
return f"{woman} straddles {man}'s hips facing away while {man} lies under her and {man}'s penis thrusts into her pussy."
|
|
if "cowgirl" in text or "straddling" in text:
|
|
return f"{woman} straddles {man}'s hips facing him while {man} lies under her and {man}'s penis thrusts into her pussy."
|
|
if "doggy" in text or "rear-entry" in text or "bent-over" in text or "bent over" in text:
|
|
return f"{woman} is on all fours with hips raised while {man} is positioned behind her and {man}'s penis thrusts into her pussy."
|
|
if "standing" in text:
|
|
return f"{woman} stands braced with hips angled back while {man} stands behind her and {man}'s penis thrusts into her pussy."
|
|
if "spooning" in text or "side-lying" in text:
|
|
return f"{woman} lies on her side with thighs parted while {man} presses behind her and {man}'s penis thrusts into her pussy."
|
|
if "edge-of-bed" in text or "edge of bed" in text or "bed edge" in text or "edge-supported" in text or "raised edge" in text:
|
|
return (
|
|
f"{woman} lies back at a raised edge with hips at the edge and legs open while {man} kneels between her thighs; "
|
|
f"{man}'s hips press close and {man}'s penis thrusts into her pussy."
|
|
)
|
|
if "kneeling straddle" in text:
|
|
return f"{woman} kneels straddling {man}'s hips while {man} supports her waist and {man}'s penis thrusts into her pussy."
|
|
if "lotus" in text:
|
|
return f"{woman} sits in {man}'s lap facing him with legs around his hips while {man}'s penis thrusts into her pussy."
|
|
return (
|
|
f"{woman} lies on her back with legs spread wide and knees bent outward while {man} kneels between her open thighs facing her; "
|
|
f"{man}'s hips are pressed between her legs and {man}'s penis thrusts into her pussy."
|
|
)
|