알려주셔서 감사합니다!
간단한 현황 보고드립니다. 현재 Python 기반 ICS→Discourse 가져오기 도구를 세 가지 인스턴스로 운영 중입니다(대학 시간표, 스포츠 센터 예약, Outlook 캘린더). Discourse 플러그인으로 래핑하는 작업도 시작했지만, 플러그인 버전은 스크립트의 기능 범위에 미치지 못했습니다. 주로 각 피드가 개별적인 처리(UID 특수성, 부분 업데이트, 취소 처리, 노이즈가 많은 수정 사항 등)를 필요로 하기 때문입니다. Angus님의 플러그인은 많은 경우에 훌륭하지만, 제 사용 사례는 좀 더 "피드 특정"에 가깝습니다.
또한, 대량/단발성 ICS 업데이트 시 “최신(Latest)” 탭의 파란 버튼 노이즈를 줄이기 위해 코어에 대한 공개된 PR도 있습니다. 바쁜 피드(예: 대학 시간표)의 경우, 가치가 낮은 편집 일괄 처리가 “최신” 탭을 계속 흔들리게 만들 수 있습니다. 이 PR은 자동화된 배치 실행 중에 “최신” 탭이 열려 있는 상태에서 “새 주제” 버튼을 사실상 무효화(no-op)하는 효과를 냅니다. 유용하다면 해당 PR에 대한 크로스 링크를 여기에 달아도 좋습니다.
장기적으로는 현재 IONOS의 셀프호스팅을 사용 중입니다. 나중에 공식 호스팅으로 이전하더라도, ICS 수신 기능이 존재한다면 엔터프라이즈 기능이 아닌 Python 플로우(또는 동등한 방식)를 유지할 수 있는 방법을 원합니다. 피드별로 플러그인 가능한 "어댑터"를 허용하면서 강력한 멱등성(ICS UID), 취소 처리, 업데이트 시 알림(bump) 없이 편집하는 의미를 유지할 수 있다면, 일반적인 코어/플러그인 솔루션이 작동할 수 있을 것 같습니다.
관심이 있으시다면, Python 스크립트에서 Ruby 작업으로의 마이그레이션 경로와 최소한의 어댑터 인터페이스를 스케치하거나, 캘린더/이벤트 플러그인에 피드 비종속적 요소(UID 매핑, 디바운스/노-번 업데이트, 취소 로직)를 기여할 수 있습니다.