c762314561
- Promote EXT_MAP to a module-level constant for reuse - Classify DingTalk image messages and image file attachments as PHOTO - Extract DingTalk card/interactiveCard document link content with defensive parsing - Handle None, empty, JSON, and plain-string card content fields - Add coverage: 8 card + 4 interactiveCard + 5 _extract_media = 17 test cases - Remove a shadowed duplicate TestExtractText class (pytest collected only the later one)