seo: el aviso de colisión de tema also en el blog ES
Build & Deploy ResearchOwl / build-and-push (push) Successful in 8s

Estaba capado a EN porque las stopwords del motor eran inglesas: en español
«que» o «los» pasaban el filtro de 3 caracteres y contaban como identidad de
caso, así que el aviso habría sido ruido. Con las stopwords ES y el tokenizador
sin acentos (chemavx-seo-tools 31c9d3e) ese motivo ya no existe.

Se destapó generando a propósito un artículo de Canarias 1976 que ya estaba
publicado: el motor lo detectaba con severidad alta («same case + year:
canarias, 1976») y el aviso no llegaba a Telegram. Simulado con el corpus real
antes de tocar nada — con la reja quitada, el mensaje sale correcto.

fetch_collision_corpus y collision_notice ya eran agnósticas del idioma, así
que no hay más cambios. Sigue sin bloquear: el draft se crea igual.
This commit is contained in:
ChemaVX
2026-07-21 08:27:02 +00:00
parent 7c00b4ed9a
commit 1f13513045
+7 -5
View File
@@ -685,12 +685,14 @@ class OutputGenerator:
async def _collision_note(self, lang: str, title: str) -> str:
"""Aviso de canibalización del título propuesto contra los posts
published+scheduled del sitio. Solo EN (las stopwords del motor son
inglesas). Nunca lanza y nunca bloquea: el draft se publica igual y
el aviso viaja en el notice de Telegram.
published+scheduled del sitio. Los DOS idiomas desde 2026-07-21: estuvo
capado a EN porque las stopwords del motor eran inglesas y en español
«que» o «los» contaban como identidad de caso; con las stopwords ES y el
tokenizador sin acentos ya no. Se destapó generando a propósito un
Canarias 1976 que ya existía: el motor lo detectaba y el aviso no salía.
Nunca lanza y nunca bloquea: el draft se crea igual y el aviso viaja en
el notice de Telegram.
"""
if lang != "en":
return ""
try:
from src.seo.autofill import collision_notice, fetch_collision_corpus
corpus = await fetch_collision_corpus(lang)