Skip to content
Extraits de code Groupes Projets
Valider fff227fc rédigé par Bastien Le Querrec's avatar Bastien Le Querrec
Parcourir les fichiers

Attrap: si un RAA n'a pas de date, on utilise celle des métadonnées

parent 86ee3fbb
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -44,7 +44,7 @@ class Attrap:
"""La classe représentant un Recueil des actes administratifs. La plupart du temps, il s'agit d'un PDF avec plusieurs arrêtés."""
url = ""
date = datetime.datetime(1970, 1, 1)
date = None
date_str = ""
name = ""
sha256 = ""
......@@ -54,7 +54,7 @@ class Attrap:
def __init__(self, url, date, name):
if not url == "":
self.url = url
if not date == "":
if date is not None:
self.date = date
self.date_str = date.strftime("%d/%m/%Y")
if not name == "":
......@@ -76,9 +76,15 @@ class Attrap:
if pdf_metadata:
if pdf_metadata.creation_date:
self.pdf_creation_date = pdf_metadata.creation_date
if self.date is None:
self.date = pdf_metadata.creation_date
self.date_str = self.date.strftime("%d/%m/%Y")
if pdf_metadata.modification_date:
self.pdf_modification_date = pdf_metadata.modification_date
if self.date is None:
self.date = pdf_metadata.modification_date
self.date_str = self.date.strftime("%d/%m/%Y")
def extract_content(self, data_dir):
"""Extrait le contenu du PDF OCRisé pour l'écrire dans le fichier qui servira à faire la recherche de mots-clés. Supprime tous les PDF à la fin."""
......@@ -577,15 +583,22 @@ class Attrap:
for raa in elements:
# Si le fichier n'a pas déjà été parsé et qu'il est postérieur à la
# date maximale d'analyse, on le télécharge et on le parse
if raa.date >= self.not_before and not os.path.isfile(f'{self.data_dir}/raa/{raa.get_sha256()}.txt'):
if not os.path.isfile(f'{self.data_dir}/raa/{raa.get_sha256()}.txt') and (not raa.date or (raa.date >= self.not_before)):
url = quote(raa.url, safe='/:')
logger.info(f'Nouveau fichier : {raa.name} ({raa.date_str}). URL : {url}')
self.download_file(raa)
raa.parse_metadata(self.data_dir)
self.flatten_pdf(raa)
self.ocr(raa, True)
raa.extract_content(self.data_dir)
self.search_keywords(raa, keywords)
# Lorsque la date du RAA n'est pas connue, on a dû télécharger le PDF pour récupérer la date de ses métadonnées.
# Donc on vérifie à nouveau ici si la date correspond à ce qu'on veut analyser
if (raa.date and raa.date >= self.not_before):
logger.info(f'Nouveau fichier : {raa.name} ({raa.date_str}). URL : {url}')
self.flatten_pdf(raa)
self.ocr(raa, True)
raa.extract_content(self.data_dir)
self.search_keywords(raa, keywords)
else:
os.remove(f'{self.data_dir}/raa/{raa.get_sha256()}.pdf')
logger.error(f'ERREUR: le RAA {raa.name} n\'a pas de date!')
sys.exit(1)
def get_raa(self, page_content):
logger.error('Cette fonction doit être surchargée')
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter