Files
anime_downloader/docs/history/2026-03-26.history.md
T
projectdx 9287889fdf fix(ohli24): refresh queue progress without manual reload
- fix the queue socket namespace and framework event name for ohli24
- listen to GDM download_status updates and patch rendered rows in place
- re-render silently when polling detects progress-only changes
- bump patch version to 0.7.22
2026-03-26 22:23:06 +09:00

3.1 KiB

2026-03-26 작업 이력

ohli24 큐 탭 초기화 버튼 오류 수정

  • ohli24 큐 탭의 초기화 버튼 클릭 시 확인 모달 뒤에 {ret: 'error'}가 떨어지고 실제 초기화가 진행되지 않는 문제를 점검했다.
  • 원인은 mod_ohli24.pyqueue_command 처리에서 req.form["entity_id"]를 무조건 읽는 방식이었다.
  • 큐 템플릿은 reset, delete_completed 요청 시 entity_id 없이 globalSendCommand('reset', null, ...) 형태로 보내므로, 서버가 reset 분기까지 내려가기 전에 실패할 수 있었다.
  • queue_commandmod_anilife.py 와 같은 안전 패턴으로 정리해 command, entity_idreq.form.get(...)로 읽도록 수정했다.
  • reset 처리 시 GDM 다운로드 취소만 하지 않고, ffmpeg_queue_v1.pyreset 경로를 통해 self.queue 런타임 큐와 entity_list도 함께 비우도록 보강했다.
  • 일반 큐 명령 fallback도 entity_id가 비어 있을 수 있는 경우를 고려해 int(entity_id) if digit else 0 패턴으로 안전화했다.

2026-03-26 검증

  • python -m py_compile /Volumes/WD/Users/Work/python/ff_dev_plugins/anime_downloader/mod_ohli24.py: success
  • 수정 후 mod_ohli24.pyqueue_command 분기에서 reset 요청이 entity_id 없이도 처리 가능한지 코드 경로를 재확인했다.

ohli24 큐 진행률 실시간 반영 보강

  • anime_downloader_ohli24_queue.html 에서 큐 페이지 Socket.IO 네임스페이스가 ohli24가 아닌 linkkf로 하드코딩되어 있어, 모듈 전용 큐 이벤트를 정상 수신하지 못하는 문제를 확인했다.
  • 같은 템플릿이 GDM 이벤트를 status로 수신하고 있었는데, 실제 gommi_downloader_manager/mod_queue.py/gommi_downloader_manager 네임스페이스에 download_status 이벤트를 emit하고 있었다.
  • 추가로 autoRefreshList()가 항목 개수 변화가 있을 때만 renderList()를 호출하고 있어, 진행률/속도만 변하는 구간에서는 폴링 fallback이 있어도 화면이 갱신되지 않았다.
  • 템플릿을 PACKAGE_NAME, MODULE_NAME 기반 동적 네임스페이스로 바꾸고, framework 이벤트명도 MODULE_NAME + '_status'를 쓰도록 정리했다.
  • GDM 소켓은 download_status를 수신하도록 맞췄고, 이미 렌더된 항목은 전체 새로고침 대신 progress/status/button 영역만 즉시 갱신하게 보강했다.
  • 소켓 이벤트를 놓치더라도 현재 DOM과 서버 목록을 비교해 진행률 차이가 있으면 조용히 다시 렌더하도록 fallback을 추가했다.