@tricoteuses/senat 2.7.1 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/loaders.d.ts +1 -0
- package/lib/loaders.js +5 -0
- package/lib/model/agenda.js +22 -22
- package/package.json +1 -1
package/lib/loaders.d.ts
CHANGED
|
@@ -69,6 +69,7 @@ export declare function iterLoadSenatDossiersLegislatifsDocuments(dataDir: strin
|
|
|
69
69
|
export declare function iterLoadSenatDossiersLegislatifsRapports(dataDir: string, session: number | undefined, options?: {}): Generator<IterItem<DossierLegislatifDocumentResult>>;
|
|
70
70
|
export declare function iterLoadSenatDossiersLegislatifsTextes(dataDir: string, session: number | undefined, options?: {}): Generator<IterItem<DossierLegislatifDocumentResult>>;
|
|
71
71
|
export declare function loadSenatTexteContent(dataDir: string, textePathFromDataset: string): IterItem<FlatTexte | null>;
|
|
72
|
+
export declare function iterLoadSenatAgendas(dataDir: string, session: number | undefined, options?: {}): Generator<IterItem<AgendaEvent[]>>;
|
|
72
73
|
export declare function iterLoadSenatEvenements(dataDir: string, session: number | undefined, options?: {}): Generator<IterItem<AgendaEvent>>;
|
|
73
74
|
export declare function iterLoadSenatCirconscriptions(dataDir: string, options?: {}): Generator<IterItem<CirconscriptionResult>>;
|
|
74
75
|
export declare function iterLoadSenatOrganismes(dataDir: string, options?: {}): Generator<IterItem<OrganismeResult>>;
|
package/lib/loaders.js
CHANGED
|
@@ -144,6 +144,11 @@ export function loadSenatTexteContent(dataDir, textePathFromDataset) {
|
|
|
144
144
|
const texteJson = fs.readFileSync(fullTextePath, { encoding: "utf8" });
|
|
145
145
|
return { item: JSON.parse(texteJson) };
|
|
146
146
|
}
|
|
147
|
+
export function* iterLoadSenatAgendas(dataDir, session, options = {}) {
|
|
148
|
+
for (const evenementsItem of iterLoadSenatItems(dataDir, AGENDA_FOLDER, session, DATA_TRANSFORMED_FOLDER, options)) {
|
|
149
|
+
yield evenementsItem;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
147
152
|
export function* iterLoadSenatEvenements(dataDir, session, options = {}) {
|
|
148
153
|
for (const evenementsItem of iterLoadSenatItems(dataDir, AGENDA_FOLDER, session, DATA_TRANSFORMED_FOLDER, options)) {
|
|
149
154
|
for (const evenement of evenementsItem.item) {
|
package/lib/model/agenda.js
CHANGED
|
@@ -3,6 +3,9 @@ import { DateTime } from "luxon";
|
|
|
3
3
|
import path from "path";
|
|
4
4
|
import { ID_DATE_FORMAT, STANDARD_DATE_FORMAT } from "../scripts/datautil";
|
|
5
5
|
const FR_TZ = "Europe/Paris";
|
|
6
|
+
function eventIsSeance(eventElement) {
|
|
7
|
+
return eventElement.classList.contains("evt-seance");
|
|
8
|
+
}
|
|
6
9
|
function getEventType(eventClasses) {
|
|
7
10
|
const typeClass = [...eventClasses]
|
|
8
11
|
.find(className => className.startsWith("evt-"))
|
|
@@ -27,27 +30,25 @@ function getUrlDossierSenat(lienElements) {
|
|
|
27
30
|
return urlElement ? urlElement.getAttribute("href") : null;
|
|
28
31
|
}
|
|
29
32
|
function getQuantieme(eventElement, seancesElements) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return "Cinquième";
|
|
47
|
-
}
|
|
33
|
+
const seanceIndex = seancesElements.indexOf(eventElement);
|
|
34
|
+
if (seancesElements.length === 1 && seanceIndex === 0) {
|
|
35
|
+
return "Unique";
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
switch (seanceIndex) {
|
|
39
|
+
case 0:
|
|
40
|
+
return "Première";
|
|
41
|
+
case 1:
|
|
42
|
+
return "Deuxième";
|
|
43
|
+
case 2:
|
|
44
|
+
return "Troisième";
|
|
45
|
+
case 3:
|
|
46
|
+
return "Quatrième";
|
|
47
|
+
case 4:
|
|
48
|
+
return "Cinquième";
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
|
-
return
|
|
51
|
+
return "Non défini";
|
|
51
52
|
}
|
|
52
53
|
/**
|
|
53
54
|
* Normalize time string to become a simple start time ("H'h'mm") or a duration ("'de 'H'h'mm' à 'H'h'mm").
|
|
@@ -85,8 +86,7 @@ function getStartAndEndTimes(timeStr) {
|
|
|
85
86
|
function transformAgenda(document, fileName) {
|
|
86
87
|
const agendaEvents = [];
|
|
87
88
|
const eventElements = document.querySelectorAll(".evt");
|
|
88
|
-
const seanceElements = Array.from(eventElements)
|
|
89
|
-
.filter(eventElement => eventElement.classList.contains("evt-seance"));
|
|
89
|
+
const seanceElements = Array.from(eventElements).filter(eventElement => eventIsSeance(eventElement));
|
|
90
90
|
for (const eventElement of eventElements) {
|
|
91
91
|
const id = eventElement.previousElementSibling?.getAttribute("name") || null;
|
|
92
92
|
if (!id) {
|
|
@@ -118,7 +118,7 @@ function transformAgenda(document, fileName) {
|
|
|
118
118
|
lieu,
|
|
119
119
|
captationVideo: videoElement !== null,
|
|
120
120
|
urlDossierSenat: urlDossierSenat,
|
|
121
|
-
quantieme: getQuantieme(eventElement, seanceElements),
|
|
121
|
+
quantieme: eventIsSeance(eventElement) ? getQuantieme(eventElement, seanceElements) : null,
|
|
122
122
|
});
|
|
123
123
|
}
|
|
124
124
|
return agendaEvents;
|