ICS → Importador de Discourse vía API REST

¡Gracias por el recordatorio!

Estado rápido: Actualmente estoy ejecutando tres instancias de mi importador de Python ICS → Discourse (horario universitario, reservas del centro deportivo y un calendario de Outlook). Comencé a envolverlo como un plugin de Discourse, pero la versión del plugin no alcanzó el conjunto de características del script, principalmente porque cada feed necesita un manejo a medida (peculiaridades de UID, actualizaciones parciales, cancelaciones, revisiones ruidosas, etc.). El plugin de Angus es excelente para muchos casos; mis casos de uso parecen más “específicos del feed”.

También tengo una PR abierta contra el núcleo destinada a reducir el ruido del botón azul “Más reciente” durante las actualizaciones de ICS grandes/repentinas. Con feeds ocupados (como los horarios universitarios), un lote de ediciones de bajo valor puede mantener “Más reciente” rebotando; la PR efectivamente anula el botón “Nuevos temas” cuando “Más reciente” ha permanecido abierto mientras se ejecuta un lote automatizado. Estaré encantado de enlazar esa PR aquí si es útil.

A más largo plazo: Actualmente estoy en IONOS autoalojado. Si me mudo a alojamiento oficial más adelante, todavía me encantaría tener una forma de mantener el flujo de Python (o un equivalente) sin necesidad de funciones empresariales, si existe ICS entrante allí. Sospecho que una solución genérica de núcleo/plugin podría funcionar si permitiera “adaptadores” enchufables por feed, manteniendo una fuerte idempotencia (UID de ICS), manejo de cancelaciones y semántica de edición sin aumento.

Si hay interés, puedo esbozar una interfaz de adaptador mínima y una ruta de migración de mi script de Python a un trabajo de Ruby, o contribuir con piezas agnósticas al feed (mapeo de UID, debounce/actualizaciones sin aumento, lógica de cancelación) al plugin de calendario/eventos.

1 me gusta