123 lines
4.5 KiB
Python
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}") |