@@ -6105,19 +6105,39 @@ async function extractCurrentPageLinkPayload() {
61056105 location . hostname . replace ( / ^ w w w \. / i, '' ) ,
61066106 ] ) ;
61076107 const richWechatSnapshot = buildWechatRichHtmlDocument ( root ) ;
6108+ const wechatImageEntries = richWechatSnapshot . imageMap . slice ( 0 , 80 ) ;
61086109 const localizedWechatImageMap = [ ] ;
6109- if ( richWechatSnapshot . imageMap . length > 0 ) {
6110- for ( const entry of richWechatSnapshot . imageMap . slice ( 0 , 80 ) ) {
6111- const dataUrl = await fetchBinaryAsDataUrl ( entry . url ) ;
6110+ if ( wechatImageEntries . length > 0 ) {
6111+ const maxInlineImages = 12 ;
6112+ const maxInlineChars = 4 * 1024 * 1024 ;
6113+ const inlineCandidates = await Promise . all (
6114+ wechatImageEntries . slice ( 0 , maxInlineImages ) . map ( async ( entry ) => ( {
6115+ token : entry . token ,
6116+ sourceUrl : entry . url ,
6117+ dataUrl : await fetchBinaryAsDataUrl ( entry . url ) ,
6118+ } ) )
6119+ ) ;
6120+ const inlineByToken = new Map ( ) ;
6121+ let inlineChars = 0 ;
6122+ for ( const candidate of inlineCandidates ) {
6123+ const dataUrl = candidate . dataUrl || '' ;
6124+ if ( dataUrl && inlineChars + dataUrl . length <= maxInlineChars ) {
6125+ inlineByToken . set ( candidate . token , dataUrl ) ;
6126+ inlineChars += dataUrl . length ;
6127+ } else {
6128+ inlineByToken . set ( candidate . token , candidate . sourceUrl ) ;
6129+ }
6130+ }
6131+ for ( const entry of wechatImageEntries ) {
61126132 localizedWechatImageMap . push ( {
61136133 token : entry . token ,
6114- url : dataUrl || entry . url ,
6134+ url : inlineByToken . get ( entry . token ) || entry . url ,
61156135 } ) ;
61166136 }
61176137 }
61186138
6119- const images = localizedWechatImageMap . length > 0
6120- ? localizedWechatImageMap . map ( ( item ) => item . url ) . filter ( Boolean ) . slice ( 0 , 8 )
6139+ const images = richWechatSnapshot . imageMap . length > 0
6140+ ? richWechatSnapshot . imageMap . map ( ( item ) => item . url ) . filter ( Boolean ) . slice ( 0 , 8 )
61216141 : collectImageUrls ( root ) ;
61226142 const excerpt = metaDescription || content . slice ( 0 , 180 ) ;
61236143 const looksLikeArticle = content . length >= 280 || root . matches ?. ( 'article, main, [role="main"]' ) ;
0 commit comments