multi-account-post-schedule.../osm_get_wiki_page.py
2025-02-10 22:05:57 +01:00

64 lines
1.8 KiB
Python

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