Fix exact Krea2 POV oral routing
This commit is contained in:
@@ -8,6 +8,9 @@ except ImportError: # Allows local smoke tests with top-level imports.
|
||||
import item_axis_policy
|
||||
|
||||
|
||||
SITTING_ORAL_VARIANT = "pov_blowjob_sitting_upright_oral"
|
||||
|
||||
|
||||
def _context_text(item_text: str, item_axis_values: dict[str, Any] | None) -> str:
|
||||
return item_axis_policy.context_text(item_text, axis_values=item_axis_values)
|
||||
|
||||
@@ -46,6 +49,20 @@ def _oral_direction(text: str) -> tuple[bool, bool]:
|
||||
return woman_gives, man_gives
|
||||
|
||||
|
||||
def _list_values(value: Any) -> list[str]:
|
||||
if isinstance(value, list):
|
||||
return [str(item) for item in value if str(item).strip()]
|
||||
if isinstance(value, str) and value.strip():
|
||||
return [part.strip().strip("[]'\" ") for part in value.split(",") if part.strip().strip("[]'\" ")]
|
||||
return []
|
||||
|
||||
|
||||
def _has_krea2_variant(axis_values: dict[str, Any] | None, key: str) -> bool:
|
||||
if not isinstance(axis_values, dict):
|
||||
return False
|
||||
return key in _list_values(axis_values.get("krea2_variant_keys"))
|
||||
|
||||
|
||||
def build_oral_role_graph(
|
||||
woman: str,
|
||||
man: str,
|
||||
@@ -58,6 +75,16 @@ def build_oral_role_graph(
|
||||
man_is_pov = man in set(pov_labels or [])
|
||||
woman_gives, man_gives = _oral_direction(text)
|
||||
|
||||
if _has_krea2_variant(item_axis_values, SITTING_ORAL_VARIANT):
|
||||
if man_is_pov:
|
||||
return (
|
||||
f"The viewer reclines with open thighs in an upright sitting oral frame while {woman} sits low between his thighs; "
|
||||
f"{woman}'s face lowers close to the centered shaft tip, her mouth on the viewer's penis, with both hands low at the base."
|
||||
)
|
||||
return (
|
||||
f"{man} reclines with open thighs in an upright sitting oral frame while {woman} sits low between his thighs; "
|
||||
f"{woman}'s face lowers close to the centered shaft tip, her mouth on his penis, with both hands low at the base."
|
||||
)
|
||||
if "sixty-nine" in position_text or ("sixty-nine" in text and not position_text):
|
||||
if man_is_pov:
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user