remake detection already built

This commit is contained in:
Tykayn 2025-02-28 13:12:02 +01:00 committed by tykayn
parent a029792664
commit 3b9061514f
24 changed files with 248 additions and 1696 deletions

View file

@ -28,10 +28,58 @@ if not sorted_articles:
# Convert the date string to a valid ISO format
def convert_to_iso(date_str):
# Check if the string contains 'T' and replace it with a single 'T'
if 'T' in date_str:
date_str = date_str.replace('T', '', 1) # Replace only the first occurrence
return f"{date_str[:4]}-{date_str[4:6]}-{date_str[6:8]}T{date_str[8:10]}:{date_str[10:12]}:{date_str[12:14]}"
"""
Convertit une chaîne de date en format ISO 8601.
Gère les formats:
- YYYYMMDDHHMMSS
- YYYYMMDDTHHMMSS
- YYYY-MM-DD
Retourne: YYYY-MM-DDTHH:MM:SS
"""
try:
# Nettoyer la chaîne d'entrée
date_str = date_str.strip()
# Supprimer tous les 'T' existants
date_str = date_str.replace('T', '')
# Si la date contient des tirets, la convertir au format attendu
if '-' in date_str:
try:
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
return parsed_date.strftime('%Y-%m-%dT00:00:00')
except ValueError:
print(f"Format de date invalide: {date_str}")
return datetime.now().strftime('%Y-%m-%dT%H:%M:%S')
# S'assurer que la chaîne a la bonne longueur
if len(date_str) < 14:
date_str = date_str.ljust(14, '0')
elif len(date_str) > 14:
date_str = date_str[:14]
# Extraire les composants de la date
year = date_str[:4]
month = date_str[4:6]
day = date_str[6:8]
hour = date_str[8:10]
minute = date_str[10:12]
second = date_str[12:14]
# Vérifier que tous les composants sont des nombres
components = [year, month, day, hour, minute, second]
if not all(c.isdigit() for c in components):
print(f"Date invalide détectée: {date_str}, utilisation de la date actuelle")
return datetime.now().strftime('%Y-%m-%dT%H:%M:%S')
# Construire la chaîne ISO
return f"{year}-{month}-{day}T{hour}:{minute}:{second}"
except Exception as e:
print(f"Erreur lors de la conversion de la date {date_str}: {e}")
# En cas d'erreur, retourner la date actuelle
return datetime.now().strftime('%Y-%m-%dT%H:%M:%S')
# Génération du flux Atom
with open(f"html-websites/{args.blog}/feed/index.xml", "w", encoding="utf-8") as f: