rss-feeder-mobilizon/node_modules/.cache/esm/4a214f036c2197a3.js

166 lines
6.0 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

let utils,parserConfig,uuidv4,htmlEscape,Parser,Client;_6c2.w("./utils.ts",[["default",["utils"],function(v){utils=v}]]);_6c2.w("./config.ts",[["default",["parserConfig"],function(v){parserConfig=v}]]);_6c2.w("uuid",[["v4",["uuidv4"],function(v){uuidv4=v}]]);_6c2.w("escape-goat",[["htmlEscape",["htmlEscape"],function(v){htmlEscape=v}]]);_6c2.w("rss-parser",[["default",["Parser"],function(v){Parser=v}]]);_6c2.w("pg",[["Client",["Client"],function(v){Client=v}]]);// @author tykayn contact@cipherbliss.com www.cipherbliss.com
// imports
let parser = new Parser();
// @ts-ignore
_6c2.g.console.log(' ==============================================='.blue);
// @ts-ignore
_6c2.g.console.log(' ==== Rss Feeder for mobilizon - by tykayn ===='.blue);
// @ts-ignore
_6c2.g.console.log(' ==============================================='.blue);
if (parserConfig.debug) {
// @ts-ignore
_6c2.g.console.log('configMobilizon'.blue, config);
}
let localMobilizonEventsByTitle = [];
// trouver si un évènement existe déjà par son titre
// TODO à affiner au delà du titre
const doesThisEventAlreadyExistInLocalEvents = (rssEvent) => {
const eventAlreadyExists =
-1 !== localMobilizonEventsByTitle.indexOf(rssEvent.title);
if (!eventAlreadyExists) {
if (parserConfig.debug) {
_6c2.g.console.log('ajouter l event ', htmlEscape(rssEvent.title));
}
addEventQuery(rssEvent);
}
};
let createEventQueries = '';
let counterOfEventsToAdd = 0;
const addEventQuery = (rssEvent) => {
if (!createEventQueries) {
createEventQueries =
'INSERT INTO events(title, description, organizer_actor_id,inserted_at,updated_at, uuid, url, status, category, options,participants_stats, begins_on, ends_on) VALUES ';
}
if (counterOfEventsToAdd) {
createEventQueries += ` , `;
}
let title = '\'' + htmlEscape(rssEvent.title) + '\'';
let content = '\'' + htmlEscape(rssEvent.content) + '\'';
let uuid = uuidv4();
let uuidString = '\'' + uuid + '\'';
let eventUrl = '\'' + parserConfig.mobilizon_public_url + '/events/' + uuid + '\'';
let begins_on = '\'' + uuid + '\'';
let ends_on = '\'' + utils.convertRssDate(rssEvent.date) + '\'';
let baseOptions =
'{"offers": [], "program": null, "attendees": [], "show_end_time": true, "show_start_time": true, "comment_moderation": "allow_all", "anonymous_participation": true, "participation_condition": [], "show_participation_price": false, "maximum_attendee_capacity": 0, "remaining_attendee_capacity": 0, "hide_organizer_when_group_event": false, "show_remaining_attendee_capacity": false}';
let baseStats =
'{"creator": 1, "rejected": 0, "moderator": 0, "participant": 0, "not_approved": 0, "administrator": 0, "not_confirmed": 0}';
// TODO complete with date conversion
// begins_on , ends_on expecting date format like this: "2020-12-17 23:00:00"
createEventQueries += `( ${title}, ${content}, ${parserConfig.feeder_mobilizon_user_id}, 'now()','now()', ${uuidString}, ${eventUrl}, 'confirmed' , 'meeting', ${baseOptions}, ${baseStats} )`;
counterOfEventsToAdd++;
};
const runCreationQuery = async () => {
createEventQueries = createEventQueries + ';';
if (createEventQueries) {
console.log(' ');
console.log(' ⚙️⚙️⚙️ ');
console.log(' ');
console.log(' createEventQueries');
_6c2.g.console.log(createEventQueries);
const res = await client.query(createEventQueries);
_6c2.g.console.log('res', res);
return res;
}
};
const client = new Client({
host : 'localhost',
user : parserConfig.db_user,
password: parserConfig.db_pass,
database: parserConfig.db_name,
});
(async () => {
console.log('⌛ interroger la BDD mobilizon postgresql');
await client.connect();
console.log('✅ OK connecté à postgresql');
console.log(' ');
const res = await client.query('SELECT * from events');
_6c2.g.console.log('💾 évènements enregistrés dans mobilizon : ', res.rows.length); // Hello world!
res.rows.forEach((item) => {
localMobilizonEventsByTitle.push(item.title);
_6c2.g.console.log(' 🟢 ', item.begins_on, item.ends_on, item.title, item.url);
});
if (parserConfig.askAgendaDuLibre) {
// @ts-ignore
_6c2.g.console.log(' ===================================================='.blue);
// @ts-ignore
_6c2.g.console.log(' ==== demander à l\'agenda du libre son flux RSS ===='.blue);
// @ts-ignore
_6c2.g.console.log(' ===================================================='.blue);
_6c2.g.console.log('⌛ lecture du flux rss : ' + parserConfig.rss_feed_url);
let feed = await parser.parseURL(parserConfig.rss_feed_url);
console.log('✅ flux rss obtenu');
_6c2.g.console.log(feed.title);
console.log('⚙️ interprétation des évènements');
console.log(
'⌛ trouver les évènements qui ne font pas partie de la BDD mobilizon postgresql',
);
feed.items.forEach((rssEvent) => {
_6c2.g.console.log(rssEvent.title);
// console.log('item', item)
doesThisEventAlreadyExistInLocalEvents(rssEvent);
});
}
if (parserConfig.askOsmCal) {
// @ts-ignore
_6c2.g.console.log(' ===================================================='.blue);
// @ts-ignore
_6c2.g.console.log(' ==== demander à l\'agenda du libre son flux RSS ===='.blue);
// @ts-ignore
_6c2.g.console.log(' ===================================================='.blue);
}
if (parserConfig.runAddQueriesToMobilizon) {
// @ts-ignore
_6c2.g.console.log(' rajouter les évènements manquants à la base mobilizon'.blue);
await runCreationQuery();
// @ts-ignore
_6c2.g.console.log(' ---------- '.green);
// @ts-ignore
_6c2.g.console.log(counterOfEventsToAdd, ' évènements ajoutés '.green);
// @ts-ignore
_6c2.g.console.log(' ---------- '.green);
// @ts-ignore
_6c2.g.console.log('✅ ça c\'est fait '.green);
}
await client.end();
})();
exports = () => {
_6c2.g.console.log('hey ho', this);
};