Files
missbleue/api_special_image.py
2025-04-07 12:20:48 +02:00

123 lines
4.5 KiB
Python

import requests
import base64
import time
from api import create_category
# ✅ Identifiants WordPress (et non WooCommerce)
wordpress_username = "admin_lcdm" # Remplace par ton username WordPress
wordpress_application_password = "yTW8 Mc6J FUCN tPSq bnuJ 0Sdw" #"#8io_mb!55@Bis" # Généré dans WordPress > Utilisateurs
# ✅ Générer l'authentification Basic en base64
auth_str = f"{wordpress_username}:{wordpress_application_password}"
auth_bytes = auth_str.encode("utf-8")
auth_base64 = base64.b64encode(auth_bytes).decode("utf-8")
image_id = 675
# ✅ URL de l'API WordPress pour téléverser une image
media_api_url = f"https://lescreationsdemissbleue.local/wp-json/wp/v2/media/{image_id}"
# ✅ Fichier image à uploader
image_path = "C:\\Users\\beren\\OneDrive\\Documents\\nextcloud\\beren\\site_missbleue\\photos\\pyramide_olfactive.png"
image_name = "pyramide_olfactive.png"
images_to_upload = [
("C:\\Users\\beren\\OneDrive\\Documents\\nextcloud\\beren\\site_missbleue\\photos\\Photos_bougies_Claudine\\Bougies\\Chope\\chope-sapin-face.jpg", "chope-sapin-face.jpg"),
("C:\\Users\\beren\\OneDrive\\Documents\\nextcloud\\beren\\site_missbleue\\photos\\Photos_bougies_Claudine\\Bougies\\Chope\\chope-adoucissant-face.jpg", "chope-adoucissant-face.jpg")
]
# ✅ Headers avec l'authentification correcte
"""headers = {
"Authorization": f"Basic {auth_base64}",
"Content-Disposition": f"attachment; filename={image_name}"
}"""
headers = {
"Authorization": f"Basic {auth_base64}",
"Content-Type": "application/json"
}
updata_data = {
"title" : "Pyramide olfactive test",
"alt_text": "Pyramide olfactive test"
}
response = requests.post(
media_api_url,
headers=headers,
json=updata_data,
verify=False # ⚠️ Désactiver la vérification SSL si problème de certificat
)
# ✅ Lecture et envoi du fichier
"""with open(image_path, "rb") as image_file:
response = requests.post(
media_api_url,
headers=headers,
files={"file": image_file},
verify=False # ⚠️ Désactiver la vérification SSL si problème de certificat
)"""
# ✅ Vérifier la réponse
if response.status_code == 201:
media_data = response.json()
image_id = media_data["id"]
image_url = media_data["source_url"]
print(f"✅ Image téléversée avec succès ! ID : {image_id}, URL : {image_url}")
else:
print(f"❌ Erreur lors du téléversement de l'image : {response.status_code}")
print(response.text) # 🔍 Afficher l'erreur détaillée
"""def create_image(name, description, source):
images_data = {
"name": name,
"description": description,
"source": source
}
response = requests.post(media_api_url, headers=headers, json=images_data)
if response.status_code == 201:
category = response.json()
print(f"✅ Catégorie '{name}' créée avec succès ! ID : {category['id']}")
return category["id"]
else:
print(f"❌ Erreur lors de la création de '{name}' : {response.status_code} {response.text}")
return None"""
categories_api_url = "https://lescreationsdemissbleue.local/wp-json/wp/v2/product_cat"
def upload_image(image_path, image_name):
with open(image_path, "rb") as image_file:
response = requests.post(
media_api_url,
headers={
"Authorization": f"Basic {auth_base64}",
"Content-Disposition": f"attachment; filename={image_name}"
},
files={"file": image_file},
verify=False
)
if response.status_code == 201:
media_data = response.json()
print(f"✅ Image téléversée : {media_data['source_url']}")
category_parent_id = create_category("Gamme prestige", "Catégorie principale pour organiser la gamme prestige", media_data["id"])
if category_parent_id:
subcategory_id = create_category("Chopes", "Sous-catégorie de la gamme prestige", category_parent_id, media_data["id"])
return media_data["id"] # Retourne l'ID de l'image
else:
print(f"❌ Erreur image : {response.status_code} {response.text}")
return None
# ✅ Boucle sur les images et envoi
uploaded_images = []
for image_path, image_name in images_to_upload:
image_id = upload_image(image_path, image_name)
print('iciiiiiiiiiiiii')
if image_id:
uploaded_images.append(image_id)
time.sleep(2) # ⏳ Pause pour éviter la surcharge du serveur
# ✅ Liste des images téléversées avec leur ID
print(f"📌 Images téléversées : {uploaded_images}")