actualizacion de documentacion y correccion de errores
This commit is contained in:
BIN
Ejemplo.jpg
Normal file
BIN
Ejemplo.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
131
README.md
131
README.md
@@ -1,3 +1,130 @@
|
|||||||
# mail-comment
|
# Mail-comment
|
||||||
|
|
||||||
Prototipo de idea de comentarios para Blogs basado en E-Mail
|
Prototipo de idea de comentarios para Blogs basado en E-Mail
|
||||||
|
|
||||||
|
¿Por que no? Vamos aprovechando los recursos existentes que estoy asumiendo que tienes ya que quieres y puedes montarte un blog.
|
||||||
|
|
||||||
|
> Adelanto que esto solo es una prueba de concepto. en lo personal, las alternativas que analizamos son mas completas y funcionales y solo busco añadir una opción a la lista de alternativas existentes.
|
||||||
|
|
||||||
|
Mail-Comment es una prueba de concepto de comentarios en paginas estáticas basado en correo electrónico. De la misma forma en la que buscaba otros usos para IMAP, se me ocurrió esta idea, notandole algunas ventajas interesantes.
|
||||||
|
|
||||||
|
- Soberanía digital. Tus datos son tuyos. Los datos de tus seguidores son solo los que comparten entre ustedes en una comunicación normal de Correo Electrónico.
|
||||||
|
- Panel de moderación improvisado. Antes de hacer públicos los comentarios que recibes, puedes aprovechar los filtros de SPAM existentes y controlar que quieres publicar o no.
|
||||||
|
- Control adicional de SPAM. Agrega filtros y palabras clave para controlar el SPAM
|
||||||
|
- Multiples salidas. Elije la que mas te convenga según la plataforma que tengas.
|
||||||
|
- Filtro de dominio. Añade reglas que permitan participar específicamente en el post elegido.
|
||||||
|
- Widgets y botones. Puedes configurarlos en tu sitio para facilitar el proceso.
|
||||||
|
- Compatibilidad con Hugo. Añade los comentarios directo en tus post de Hugo.
|
||||||
|
- Minimalismo total. Sin javascript añadido. Sin Iframes y sin necesitar otros servidores, propios o ajenos.
|
||||||
|
|
||||||
|
## Características
|
||||||
|
|
||||||
|
- No necesita registro. Cualquiera puede escribir un comentario, siempre y cuando tenga un correo electrónico
|
||||||
|
- Identidad. (esto hay que revisar) Identificate con tu nombre de usuario de correo electrónico
|
||||||
|
- Compatibilidad con diferentes estrategias.
|
||||||
|
- Comentarios por archivos RSS. Puedes añadir un widget que lea archivos XML a modo de comentarios.
|
||||||
|
- Comentarios estáticos HTML. Exporta los comentarios como fragmentos HTML que puedes integrar en tu página.
|
||||||
|
- Comentarios estáticos MarkDown. Exporta los comentarios como fragmentos MarkDown que puedes integrar en tu pagina.
|
||||||
|
- Integración con Hugo. En tu instancia local, añade los comentarios al final de tus archivos MarkDown de hugo, según la url comentada.
|
||||||
|
- Integración con Wordpress. Añade un webhook en tu servidor de Wordpress para recibir los comentarios sobre una URL para una instancia Headless.
|
||||||
|
|
||||||
|
Dado que es un prototipo, estaré analizando mas cosas y mejoras que hacer.
|
||||||
|
|
||||||
|
# Instalación y ejecución
|
||||||
|
|
||||||
|
En linux necesitas crear un venv, te adjunto también los comandos para crearlo y ejecutarlo, pero recuerda que tienes que editar el archivo .env
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://git.interlan.ec/Drk0027/mail-comment.git
|
||||||
|
cd mail-comment
|
||||||
|
pip install -r requirements.txt
|
||||||
|
cp .env.example .env
|
||||||
|
python -m venv
|
||||||
|
source venv/bin/activate
|
||||||
|
python email-processor.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Te he dejado un archivo .env.example para que lo copies a .env y configures según tus necesidades. Recuerda que necesitas un servidor IMAP, que puede ser el de tu correo electrónico.
|
||||||
|
|
||||||
|
> Advertencia
|
||||||
|
>
|
||||||
|
> Recuerda que publicar tu dirección de correo puede ser algo sensible. Puede exponerte a SPAM y puede arriesgarte a que pillen alguna vulnerabilidad y terminen causándote daño. Te recomiendo que si quieres utilizar este enfoque, crees una cuenta nueva para esta tarea.
|
||||||
|
>
|
||||||
|
> Nota
|
||||||
|
>
|
||||||
|
> En el estado actual, el script revisa todos los correos de la carpeta INBOX, pero solo borra los que cumplan los requisitos de los que hablaremos mas adelante. Esto es por seguridad. Así, si quieres hacer pruebas, no terminaras con toda tu bandeja aniquilada.
|
||||||
|
>
|
||||||
|
> También, el script analiza uno por uno los correos dentro de la bandeja que has especificado. Si esta muy llena o si tu servidor es muy lento, esta tarea puede tardar mucho.
|
||||||
|
|
||||||
|
Si bien, es posible utilizar el correo de gmail, es algo de lo que tengo dudas y no he tenido la oportunidad de probar todavia. Parece que se puede utilizar una clave de aplicacion, si alguien lo intenta, puede decirme para actualizar este post. Aun así, en teoría puedes usar los mismos servidores que usarías en delta chat.
|
||||||
|
|
||||||
|
https://providers.delta.chat/
|
||||||
|
|
||||||
|
|
||||||
|
# Flujo de trabajo
|
||||||
|
|
||||||
|
Publica normalmente como siempre haces. Añade un texto o un botón para indicar a los usuarios como realizar los comentarios, mediante correo electrónico. Para que funcione esta herramienta, el asunto debe contener la url de la pagina que se desee comentar. Esto sirve de validación para separar el spam de los comentarios legítimos.
|
||||||
|
|
||||||
|
Por supuesto, si no quieres agregar el botón o crees que el enlace mailto no funciona, puedes pedir que te escriban directo desde sus bandejas de entrada, indicando en el asunto la url del post que deseas que comenten.
|
||||||
|
|
||||||
|
[Comentar esta entrada por correo electrónico](mailto:drk0027@interlan.ec?subject=https://interlan.ec/blog/2026/01/16/comentarios-en-sitios-estaticos/)
|
||||||
|
|
||||||
|
En el archivo .env deberás configurar el DOMAIN_TO_SEARCH con tu dominio para poder localizar el destino de los comentarios. Esto también te evitará algo de SPAM puesto que los procesos automatizados no saben que estarás utilizando este sistema de comentarios (a menos que se haga popular y los crawlers terminen aprendiendo como funciona y empiecen a joder simulando ser usuarios legítimos)
|
||||||
|
|
||||||
|
En el archivo .env tambien puedes configurar palabras clave que puedes usar a modo de filtro mediante IGNORE_KEYWORDS=publicidad,notificacion,spamintroduce todas las palabras que quieras usar. Pero esto es mas útil si eliges ejecutar este script de forma regular, con poca o ninguna supervisión.
|
||||||
|
|
||||||
|
Al ser un correo normal, puedes revisar la bandeja de entrada para leer lo que ha llegado y decidir si lo borras o lo dejas antes de ejecutar el programa. Usa tu bandeja de entrada a modo de panel de moderación y de esta manera, puedes incluso aprovechar los filtros de tu proveedor de correos, como gmail, que usualmente es muy efectivo.
|
||||||
|
Elije una o todas las opciones de exportación o integración.
|
||||||
|
|
||||||
|
```
|
||||||
|
SAVE_HTML=True
|
||||||
|
SAVE_MARKDOWN=True
|
||||||
|
SAVE_XML=True
|
||||||
|
SEND_WEBHOOK=True
|
||||||
|
```
|
||||||
|
|
||||||
|
Si estas usando una instancia Headless de wordpress, puedes utilizar un snippet o editar un plugin o tema para integrar y crear un nuevo webhook para recibir los comentarios.
|
||||||
|
|
||||||
|
https://git.interlan.ec/Drk0027/mail-comment/src/branch/main/functions.php
|
||||||
|
|
||||||
|
```
|
||||||
|
WP_WEBHOOK_URL=https://tusitio.com/wp-json/tudominio/v1/recibir-comentario
|
||||||
|
WEBHOOK_SECRET_TOKEN=mi_clave_secreta_123
|
||||||
|
```
|
||||||
|
|
||||||
|
Si estas usando Hugo, agrega el directorio donde estas editando tu sitio.
|
||||||
|
|
||||||
|
```
|
||||||
|
HUGO_DIR = /home/user/quickstart/
|
||||||
|
APPEND_HUGO = True
|
||||||
|
```
|
||||||
|
|
||||||
|
Esta función prepara todos los comentarios recibidos y los agrega al final de tus entradas en Hugo que correspondan a la URL equivalente.
|
||||||
|
|
||||||
|
Solo lo he probado con un despliegue básico de Hugo. Por eso se llama QuickStart XD
|
||||||
|
|
||||||
|
Ejecuta el script.
|
||||||
|
|
||||||
|
Recuerda usar un venv en linux. Hay formas de usarlo sin tener que andar activando el venv, pero me da pereza explicarlo ahora.
|
||||||
|
|
||||||
|
python email-processor.py
|
||||||
|
|
||||||
|
|
||||||
|
El Script hará las siguientes cosas:
|
||||||
|
|
||||||
|
Se conectará al servidor de correo
|
||||||
|
De la bandeja selecionada (INBOX por defecto) revisará uno por uno los mensajes
|
||||||
|
Obtiene el asunto (corresponde al titulo de la página y tambien al directorio local de hugo)
|
||||||
|
Filtra que el dominio de la URL corresponda al del sitio, registrado en el .env (evita spam)
|
||||||
|
Obtiene remitente (se usará para identificar al comentarista)
|
||||||
|
Obtiene el mensaje y depura el HTML con el fin de obtener una versión mas simple y libre de posibles scripts indeseados.
|
||||||
|
Valida si el mensaje contiene alguna de las palabras de IGNORE_KEYWORDSy si no es el caso, continua el flujo
|
||||||
|
Si esta activo SAVE_MARKDOWN guardara un fragmento por mensaje
|
||||||
|
Si esta actuvo SAVE_XML guardará fragmentos para RSS en XML
|
||||||
|
Si esta activo SEND_WEBHOOK enviará el comentario al webhook de wordpress. Recuerda que tienes que haber configurado el secreto entre ambos.
|
||||||
|
Si esta activo SAVE_HTML guardara fragmentos HTML por mensajes
|
||||||
|
Si esta activo APPEND_HUGO convertirá el contenido HTML a Markdown y buscará en los directorios especificados en busca del post deducido de la URL. en caso de encontrarlo, agregara el comentario al final del post.
|
||||||
|
Borra los mensajes procesados
|
||||||
|
Cierra la sesion IMAP
|
||||||
|
|
||||||
|
El resultado es que se integraran los comentarios en las entradas y estos se cargaran la proxima vez que actualices tu sitio.
|
||||||
Reference in New Issue
Block a user