Align outercourse action routing
This commit is contained in:
@@ -2,6 +2,11 @@ from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
try:
|
||||
from . import outercourse_action_policy as outercourse_policy
|
||||
except ImportError: # Allows local smoke tests with top-level imports.
|
||||
import outercourse_action_policy as outercourse_policy
|
||||
|
||||
|
||||
def _context_text(item_text: str, item_axis_values: dict[str, Any] | None) -> str:
|
||||
return " ".join(
|
||||
@@ -22,38 +27,46 @@ def build_outercourse_role_graph(
|
||||
) -> str:
|
||||
position_text = str((item_axis_values or {}).get("position") or "").lower()
|
||||
text = _context_text(item_text, item_axis_values)
|
||||
action_kind = outercourse_policy.infer_outercourse_action_kind(position_text)
|
||||
if action_kind == outercourse_policy.OUTERCOURSE_GENERIC:
|
||||
action_kind = outercourse_policy.infer_outercourse_action_kind(text)
|
||||
man_is_pov = man in set(pov_labels or [])
|
||||
if any(term in text for term in ("boobjob", "titjob", "breast-sex", "breast sex")):
|
||||
if action_kind == outercourse_policy.OUTERCOURSE_BOOBJOB:
|
||||
if man_is_pov:
|
||||
return (
|
||||
f"{woman} kneels between the POV viewer's open thighs with her torso bent forward over his pelvis and shoulders low, "
|
||||
"both hands lifting and pressing her breasts tightly around the POV viewer's penis shaft while the glans sits just below her lips."
|
||||
f"{woman} kneels low between the POV viewer's open thighs with her torso bent forward over his pelvis, "
|
||||
"both hands pushing her breasts inward around the POV viewer's penis, the penis held between her breasts in the lower foreground, "
|
||||
"her chin and lips directly above the glans at the tip."
|
||||
)
|
||||
return (
|
||||
f"{woman} kneels between {man}'s open thighs with her torso bent forward over his pelvis and shoulders low while {man} sits with legs apart, "
|
||||
f"{woman}'s hands lifting and pressing her breasts tightly around {man}'s penis shaft while the glans sits just below her lips."
|
||||
f"{man} sits with legs apart while {woman} kneels low between his open thighs with her torso bent forward over his pelvis, "
|
||||
f"{woman}'s hands pushing her breasts inward around {man}'s penis, the penis held between her breasts, "
|
||||
"her chin and lips directly above the glans at the tip."
|
||||
)
|
||||
if any(term in text for term in ("testicle", "balls-licking", "balls licking", "balls and mouth", "balls held")):
|
||||
if action_kind == outercourse_policy.OUTERCOURSE_TESTICLE:
|
||||
if man_is_pov:
|
||||
return (
|
||||
f"{woman} kneels very low between the POV viewer's open thighs with her torso bent forward and shoulders between his knees, "
|
||||
"head tucked under the penis shaft at the base of the penis, mouth and tongue on the POV viewer's balls while his penis points upward above her face."
|
||||
f"{woman} bends forward and kneels very low between the POV viewer's open thighs with her shoulders between his knees, "
|
||||
"her face below the POV viewer's penis at testicle height, mouth and tongue on the POV viewer's balls, "
|
||||
"while his penis points upward in the lower foreground above her forehead."
|
||||
)
|
||||
return (
|
||||
f"{man} sits with legs apart while {woman} kneels very low between his open thighs with her torso bent forward and shoulders between his knees, "
|
||||
f"head tucked under the penis shaft at the base of his penis, mouth and tongue on his balls while {man}'s penis points upward above her face."
|
||||
f"{woman}'s face below {man}'s penis at testicle height, mouth and tongue on his balls, while {man}'s penis points upward above her forehead."
|
||||
)
|
||||
if "penis-licking" in position_text or "penis licking" in text or "tongue along" in text or "tongue licking" in text:
|
||||
if action_kind == outercourse_policy.OUTERCOURSE_PENIS_LICKING:
|
||||
if man_is_pov:
|
||||
return (
|
||||
f"{woman} bends forward between the POV viewer's open thighs, head low under the POV viewer's penis with her face directly under the penis, "
|
||||
"tongue running along the underside from the penis shaft to the glans while one hand steadies the base of the penis."
|
||||
f"{woman} bends forward between the POV viewer's open thighs with her head low under the POV viewer's penis, "
|
||||
"her face just under the penis while her tongue touches the underside from the base toward the glans at the tip, "
|
||||
"one hand steadying the base of the POV viewer's penis."
|
||||
)
|
||||
return (
|
||||
f"{woman} bends forward between {man}'s open thighs, head low under {man}'s penis with her face directly under the penis, "
|
||||
f"tongue running along the underside from the penis shaft to the glans while one hand steadies the base of the penis."
|
||||
f"{woman} bends forward between {man}'s open thighs with her head low under {man}'s penis, "
|
||||
f"her face just under the penis while her tongue touches the underside from the base toward the glans at the tip, "
|
||||
f"one hand steadying the base of {man}'s penis."
|
||||
)
|
||||
if "footjob" in text or "soles" in text or "toes curled" in text or "feet stroking" in text:
|
||||
if action_kind == outercourse_policy.OUTERCOURSE_FOOTJOB:
|
||||
if man_is_pov:
|
||||
return (
|
||||
f"{woman} faces the POV viewer with her hips back, torso visible behind her raised legs, and both knees bent open toward the camera, "
|
||||
@@ -63,15 +76,17 @@ def build_outercourse_role_graph(
|
||||
f"{man} reclines with hips forward while {woman} faces him with her hips back and both knees bent open, "
|
||||
f"wrapping both soles around {man}'s penis shaft while the contact stays centered."
|
||||
)
|
||||
if "handjob" in position_text or "handjob" in text or "hand job" in text or "hand wrapped" in text:
|
||||
if action_kind == outercourse_policy.OUTERCOURSE_HANDJOB:
|
||||
if man_is_pov:
|
||||
return (
|
||||
f"{woman} kneels between the POV viewer's open thighs with her torso leaning forward and face visible behind the penis shaft, "
|
||||
"one hand wrapped around the POV viewer's penis shaft while the other hand steadies the base of the penis as she strokes toward the glans."
|
||||
f"{woman} kneels between the POV viewer's open thighs with her torso leaning forward and face visible behind the POV viewer's penis, "
|
||||
"one hand grips and strokes the POV viewer's penis in the lower foreground while the other hand steadies its base, "
|
||||
"thumb and fingers visible around the penis as she strokes toward the glans."
|
||||
)
|
||||
return (
|
||||
f"{woman} kneels between {man}'s open thighs with her torso leaning forward and face visible behind the penis shaft, "
|
||||
f"one hand wrapped around {man}'s penis shaft while the other hand steadies the base of the penis as she strokes toward the glans."
|
||||
f"{woman} kneels between {man}'s open thighs with her torso leaning forward and face visible behind {man}'s penis, "
|
||||
f"one hand grips and strokes {man}'s penis while the other hand steadies its base, "
|
||||
"thumb and fingers visible around the penis as she strokes toward the glans."
|
||||
)
|
||||
if man_is_pov:
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user