| @@ -78,9 +78,10 @@ | ||
| 78 | 78 | Boolean(metadata.aiGenerated) && Boolean(metadata.disclose); |
| 79 | 79 | |
| 80 | 80 | const altText = (metadata) => { |
| 81 | 81 | if (!shouldDisclose(metadata)) return metadata.alt ?? ''; |
| 82 | - const pattern = window.extSharedData?.aiImageAltPattern ?? 'AI Generated: %s'; | |
| 82 | + const pattern = | |
| 83 | + window.extSharedData?.aiImageAltPattern ?? '%s (AI-generated)'; | |
| 83 | 84 | return sprintf(pattern, metadata.alt ?? '').trim(); |
| 84 | 85 | }; |
| 85 | 86 | |
| 86 | 87 | export const importImage = async (imageUrl, metadata = {}) => { |
| @@ -161,12 +162,24 @@ | ||
| 161 | 162 | await downloadPing(id, source, { unsplashId }); |
| 162 | 163 | } else if (aiGenerated && id) { |
| 163 | 164 | await downloadPing(id, source, { disclose: metadata.disclose }); |
| 164 | 165 | } |
| 166 | + | |
| 167 | + let filename = metadata.filename ?? 'image.jpg'; | |
| 168 | + if (aiGenerated && !filename.includes('ai-generated')) { | |
| 169 | + const parts = filename.split('.'); | |
| 170 | + if (parts.length > 1) { | |
| 171 | + const ext = parts.pop(); | |
| 172 | + filename = `${parts.join('.')}-ai-generated.${ext}`; | |
| 173 | + } else { | |
| 174 | + filename = `${filename}-ai-generated`; | |
| 175 | + } | |
| 176 | + } | |
| 177 | + | |
| 165 | 178 | try { |
| 166 | 179 | image = await importImage(src, { |
| 167 | 180 | alt: metadata.alt, |
| 168 | - filename: 'image.jpg', | |
| 181 | + filename, | |
| 169 | 182 | caption: metadata.caption, |
| 170 | 183 | aiGenerated, |
| 171 | 184 | disclose: metadata.disclose, |
| 172 | 185 | }); |
| @@ -172,9 +185,8 @@ | ||
| 172 | 185 | }); |
| 173 | 186 | } catch (_e) { |
| 174 | 187 | image = await importImageServer(src, { |
| 175 | 188 | alt: metadata.alt, |
| 176 | - filename: 'image.jpg', | |
| 177 | 189 | caption: metadata.caption, |
| 178 | 190 | aiGenerated, |
| 179 | 191 | disclose: metadata.disclose, |
| 180 | 192 | }); |