|  | 
| 1 | 1 | import * as fs from "fs-extra"; | 
| 2 | 2 | import FileType, { FileTypeResult } from "file-type"; | 
| 3 |  | -import axios from "axios"; | 
| 4 | 3 | import { makeImagePersistencePlan } from "./MakeImagePersistencePlan"; | 
| 5 | 4 | import { warning, logDebug, verbose, info } from "./log"; | 
| 6 | 5 | import { ListBlockChildrenResponseResult } from "notion-to-md/build/types"; | 
| @@ -150,10 +149,15 @@ async function processImageBlock( | 
| 150 | 149 | async function readPrimaryImage(imageSet: ImageSet) { | 
| 151 | 150 |   // In Mar 2024, we started having a problem getting a particular gif from imgur using | 
| 152 | 151 |   // node-fetch. Switching to axios resolved it. I don't know why. | 
| 153 |  | -  const response = await axios.get(imageSet.primaryUrl, { | 
| 154 |  | -    responseType: "arraybuffer", | 
| 155 |  | -  }); | 
| 156 |  | -  imageSet.primaryBuffer = Buffer.from(response.data, "utf-8"); | 
|  | 152 | +  // Then, in Apr 2025, we started getting 429 responses from imgur through axios, | 
|  | 153 | +  // so we switched to node's built-in fetch (different than the node-fetch package). | 
|  | 154 | +  // Just a guess, but probably imgur keeps locking down what it suspects as code running | 
|  | 155 | +  // to scrape images. | 
|  | 156 | +  // Apparently, imgur is getting to be more and more of a liability, | 
|  | 157 | +  // so we should probably stop using it. | 
|  | 158 | +  const response = await fetch(imageSet.primaryUrl); | 
|  | 159 | +  const arrayBuffer = await response.arrayBuffer(); | 
|  | 160 | +  imageSet.primaryBuffer = Buffer.from(arrayBuffer); | 
| 157 | 161 |   imageSet.fileType = await FileType.fromBuffer(imageSet.primaryBuffer); | 
| 158 | 162 | } | 
| 159 | 163 | 
 | 
|  | 
0 commit comments