import os import requests from bs4 import BeautifulSoup import os from dotenv import load_dotenv # Chargement du token d'identification depuis le fichier.env load_dotenv() TOKEN_CURATOR = os.getenv('TOKEN_CURATOR') def get_first_image_url(mediawiki_url): """ Récupère l'URL de la première image de l'article MediaWiki. """ response = requests.get(mediawiki_url) soup = BeautifulSoup(response.content, 'html.parser') images = soup.find_all('img') if images: return images[0]['src'] else: return None def post_mastodon(image_url, message, dry_run=False): """ Poste un message avec une image sur l'instance Mastodon. """ if dry_run: print("Dry run, pas de post réel") return # Récupération de l'image image_response = requests.get(image_url) image_data = image_response.content # Préparation des données pour l'API Mastodon headers = {'Authorization': f'Bearer {TOKEN_CURATOR}'} data = {'status': message} files = {'media': ('image.jpg', image_data, 'image/jpeg')} # Envoi de la requête à l'API Mastodon response = requests.post('https://mastodon.cipherbliss.com/api/v1/statuses', headers=headers, data=data, files=files) if response.status_code == 200: print("Post envoyé avec succès!") else: print("Erreur lors de l'envoi du post") def main(): mediawiki_url = input("Entrez l'URL de la page MediaWiki : ") image_url = get_first_image_url(mediawiki_url) if image_url: message = "coucou" dry_run = input("Voulez-vous faire un dry run (o/n)? ") if dry_run.lower() == 'o': dry_run = True else: dry_run = False post_mastodon(image_url, message, dry_run) else: print("Aucune image trouvée dans l'article") if __name__ == "__main__": main()