@rr0/cms
Version:
RR0 Content Management System (CMS)
147 lines (146 loc) • 4.89 kB
JavaScript
import { AbstractDatasource } from "../AbstractDatasource.js";
import { ContextFilter } from "../ContextFilter.js";
import { TimeContext } from "../../TimeContext.mjs";
export class SceauContextFilter extends ContextFilter {
constructor(context) {
super(context);
}
filter(c) {
const dateStr = c.dateCas || c.datePubli || c.dateEnquete;
const isoCaseDate = dateStr.toUpperCase();
const sightingTime = TimeContext.fromString(isoCaseDate);
const time = this.context.time;
const day = time.getDayOfMonth();
const month = time.getMonth();
const year = time.getYear();
return (!year || year === sightingTime.getYear()) && (!month || month === sightingTime.getMonth()) && (!day || day === sightingTime.getDayOfMonth());
}
}
export class SceauDatasource extends AbstractDatasource {
constructor(pages = [
{
path: "fond_patrick_fournel/base_fond_patrick_fournel.html",
mapping: {
datePubli: "DATE PUBLI",
dateCas: "DATE CAS",
pays: "PAYS",
ville: "VILLE",
journal: "JOURNAL",
journalSource: "JOURNAL/SOURCE",
titreSource: "TITRE/SOURCE",
resume: "RESUME",
pdf: "PDF",
texte: "TEXTE",
json: "JSON",
nomFichier: "NOM FICHIER"
}
},
{
path: "fond_gueudelot/base_fiches_gueudelot.html",
mapping: {
id: "#",
dateCas: "DATE",
pays: "PAYS",
ville: "VILLE",
journalSource: "JOURNAL/SOURCE",
titreSource: "TITRE/SOURCE",
resume: "RESUME",
numero: "NUMERO",
pdf: "PDF",
texte: "TEXTE",
json: "JSON",
nomFichier: "NOM FICHIER"
}
},
{
path: "fond_ldln/base_ldln_contre_enquetes.html",
mapping: {
id: "NUMERO CAS",
dateCas: "DATE",
dateEnquete: "DATE_ENQUETE",
enqueteur: "ENQUETEUR",
resume: "RESUME",
conclusion: "CONCLUSION",
pdf: "PDF",
texte: "TEXTE",
json: "JSON",
nomFichier: "NOM FICHIER"
}
},
{
path: "fond_psy/base_fond_psy_presse_france.html",
mapping: {
id: "NUMERO CAS",
datePubli: "DATE_PARUTION",
dateCas: "DATE",
pays: "PAYS",
ville: "VILLE",
journal: "JOURNAL",
page: "PAGE",
titreSource: "TITRE",
resume: "RESUME",
pdf: "PDF",
texte: "TEXTE",
json: "JSON",
nomFichier: "NOM FICHIER"
}
},
{
path: "fond_rre/base_fond_rre_CdP1_2.html",
mapping: {
datePubli: "DATE PUBLI",
dateCas: "DATE CAS",
pays: "PAYS",
ville: "VILLE",
journal: "JOURNAL",
journalSource: "JOURNAL/SOURCE",
titreSource: "TITRE/SOURCE",
resume: "RESUME",
pdf: "PDF",
texte: "TEXTE",
json: "JSON",
nomFichier: "NOM FICHIER"
}
},
{
path: "fond_rre/base_fond_rre_CdP1_2_3.html",
mapping: {
datePubli: "DATE PUBLI",
dateCas: "DATE CAS",
pays: "PAYS",
ville: "VILLE",
journal: "JOURNAL",
journalSource: "JOURNAL/SOURCE",
titreSource: "TITRE/SOURCE",
resume: "RESUME",
pdf: "PDF",
texte: "TEXTE",
json: "JSON",
nomFichier: "NOM FICHIER"
}
},
{
path: "fond_rre/base_fond_rre_CdP1_2_3_4.html",
mapping: {
datePubli: "DATE PUBLI",
dateCas: "DATE CAS",
pays: "PAYS",
ville: "VILLE",
journal: "JOURNAL",
journalSource: "JOURNAL/SOURCE",
titreSource: "TITRE/SOURCE",
resume: "RESUME",
pdf: "PDF",
texte: "TEXTE",
json: "JSON",
nomFichier: "NOM FICHIER"
}
}
], authors = ["SCEAU"], copyright = "Fonds") {
super(authors, copyright);
this.pages = pages;
}
createFilter(context) {
return new SceauContextFilter(context);
}
}