mirror of
https://forge.chapril.org/tykayn/orgmode-to-gemini-blog
synced 2025-06-20 09:04:42 +02:00
remake detection already built
This commit is contained in:
parent
a029792664
commit
3b9061514f
24 changed files with 248 additions and 1696 deletions
|
@ -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:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue