try to fix the image upload

main
Shane 7 months ago
parent ee21e5bf6b
commit 677c9b646d
  1. 32
      foodie_utils.py

@ -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(

Loading…
Cancel
Save