try to fix the image upload
This commit is contained in:
+27
-5
@@ -435,7 +435,31 @@ def upload_image_to_wp(image_url, post_title, wp_base_url, wp_username, wp_passw
|
|||||||
}
|
}
|
||||||
logging.info(f"Fetching image from {image_url} for '{post_title}'")
|
logging.info(f"Fetching image from {image_url} for '{post_title}'")
|
||||||
|
|
||||||
# ... (image fetching logic) ...
|
image_response = None
|
||||||
|
for attempt in range(3):
|
||||||
|
try:
|
||||||
|
image_response = requests.get(image_url, headers=image_headers, timeout=IMAGE_UPLOAD_TIMEOUT)
|
||||||
|
if image_response.status_code == 429:
|
||||||
|
wait_time = 10 * (2 ** attempt)
|
||||||
|
logging.warning(f"Rate limit hit for {image_url}. Retrying after {wait_time}s (attempt {attempt+1}/3).")
|
||||||
|
time.sleep(wait_time)
|
||||||
|
continue
|
||||||
|
image_response.raise_for_status()
|
||||||
|
break
|
||||||
|
except requests.exceptions.RequestException as e:
|
||||||
|
logging.warning(f"Image fetch failed for {image_url} (attempt {attempt+1}/3): {e}")
|
||||||
|
if attempt == 2:
|
||||||
|
logging.error(f"Failed to fetch image {image_url} after 3 attempts")
|
||||||
|
return None
|
||||||
|
time.sleep(10 * (2 ** attempt))
|
||||||
|
else:
|
||||||
|
logging.error(f"Failed to fetch image {image_url} after retries")
|
||||||
|
return None
|
||||||
|
|
||||||
|
# Only proceed if image_response is defined (i.e., the fetch succeeded)
|
||||||
|
if image_response is None:
|
||||||
|
logging.error(f"Image response is None for {image_url}, cannot proceed with upload")
|
||||||
|
return None
|
||||||
|
|
||||||
response = requests.post(
|
response = requests.post(
|
||||||
f"{wp_base_url}/media",
|
f"{wp_base_url}/media",
|
||||||
@@ -445,10 +469,8 @@ def upload_image_to_wp(image_url, post_title, wp_base_url, wp_username, wp_passw
|
|||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
|
|
||||||
image_id = response.json()["id"]
|
image_id = response.json()["id"]
|
||||||
if page_url and uploader:
|
if page_url:
|
||||||
caption = f'<a href="{page_url}">{image_source}</a> by {uploader}'
|
caption = f'<a href="{page_url}">Image via {image_source}</a>'
|
||||||
elif page_url:
|
|
||||||
caption = f'<a href="{page_url}">{image_source}</a>'
|
|
||||||
else:
|
else:
|
||||||
caption = image_source
|
caption = image_source
|
||||||
requests.post(
|
requests.post(
|
||||||
|
|||||||
Reference in New Issue
Block a user