mirror of
https://forge.chapril.org/tykayn/orgmode-to-gemini-blog
synced 2025-06-20 09:04:42 +02:00
script de stats
This commit is contained in:
parent
6d77de4696
commit
759f30f628
7 changed files with 196 additions and 109 deletions
70
utils.py
70
utils.py
|
@ -291,8 +291,6 @@ def find_slug_in_file_basename(file_basename) -> str:
|
|||
if len(splitted) > 1:
|
||||
slug = splitted[len(splitted)-1]
|
||||
|
||||
# final_slug=slug.replace("_cipherbliss_blog_","")
|
||||
# final_slug=final_slug.replace("_blog_cil_gometz_","")
|
||||
slug=enlever_premier_tiret_ou_underscore(slug)
|
||||
|
||||
slug = f"{year}/{slug}"
|
||||
|
@ -302,7 +300,73 @@ def find_slug_in_file_basename(file_basename) -> str:
|
|||
return slug
|
||||
return None
|
||||
|
||||
|
||||
def get_stats_on_all_websites():
|
||||
"""
|
||||
Retourne des statistiques sur tous les sites web dans le dossier sources/.
|
||||
Pour chaque site, compte le nombre d'articles .org et trouve l'article le plus récent.
|
||||
|
||||
:return: Dictionnaire avec les stats par site
|
||||
"""
|
||||
stats = {}
|
||||
base_dir = "sources"
|
||||
|
||||
# Parcourir tous les dossiers de sites dans sources/
|
||||
for site in os.listdir(base_dir):
|
||||
site_path = os.path.join(base_dir, site)
|
||||
|
||||
if not os.path.isdir(site_path):
|
||||
continue
|
||||
|
||||
# Initialiser les stats pour ce site
|
||||
stats[site] = {
|
||||
'nb_articles': 0,
|
||||
'nb_mots': 0,
|
||||
'dernier_article': None,
|
||||
'date_dernier_article': None
|
||||
}
|
||||
|
||||
# Chercher les articles .org dans lang_fr et lang_en
|
||||
for lang in ['lang_fr', 'lang_en']:
|
||||
lang_path = os.path.join(site_path, lang)
|
||||
|
||||
if not os.path.exists(lang_path):
|
||||
continue
|
||||
|
||||
# Lister tous les fichiers .org
|
||||
org_files = [f for f in os.listdir(lang_path) if f.endswith('.org')]
|
||||
stats[site]['nb_articles'] += len(org_files)
|
||||
# Calculer le nombre total de mots pour ce dossier de langue
|
||||
total_mots = 0
|
||||
for org_file in org_files:
|
||||
file_path = os.path.join(lang_path, org_file)
|
||||
try:
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
contenu = f.read()
|
||||
# Compter les mots en divisant par les espaces
|
||||
total_mots += len(contenu.split())
|
||||
except Exception as e:
|
||||
print(f"Erreur lors de la lecture de {file_path}: {e}")
|
||||
|
||||
# Ajouter ou incrémenter le compteur de mots dans les stats
|
||||
stats[site]['nb_mots'] += total_mots
|
||||
|
||||
# Trouver le fichier le plus récent
|
||||
for org_file in org_files:
|
||||
file_path = os.path.join(lang_path, org_file)
|
||||
mod_time = os.path.getmtime(file_path)
|
||||
|
||||
if (stats[site]['date_dernier_article'] is None or
|
||||
mod_time > stats[site]['date_dernier_article']):
|
||||
stats[site]['date_dernier_article'] = mod_time
|
||||
stats[site]['dernier_article'] = file_path
|
||||
|
||||
# Convertir le timestamp en date lisible
|
||||
if stats[site]['date_dernier_article']:
|
||||
stats[site]['date_dernier_article'] = datetime.fromtimestamp(
|
||||
stats[site]['date_dernier_article']
|
||||
).strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
return stats
|
||||
|
||||
def convert_org_to_html(org_file, output_html_file):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue