Compare commits
4 Commits
cc99a802e0
...
ae33a57bf4
Author | SHA1 | Date |
---|---|---|
Tykayn | ae33a57bf4 | |
Tykayn | dec093393b | |
Tykayn | c633f547de | |
Tykayn | eddf735722 |
|
@ -1,7 +0,0 @@
|
|||
#!/bin/bash
|
||||
nvm use 16
|
||||
#cd /home/tykayn/www/multi-account-post-schedule-mastodon
|
||||
wget --no-check-certificate --no-directories -O ./documents/agendadulibre_openstreetmap.json https://www.agendadulibre.org/events.json?city=&near%5Blocation%5D=&near%5Bdistance%5D=®ion=&tag=openstreetmap
|
||||
|
||||
#node helpers/agendadulibre_coming_osm.mjs --force | tee -a /home/tykayn/log_autopost.txt 2>&1
|
||||
node helpers/agendadulibre_coming_osm.mjs | tee -a /home/tykayn/log_autopost.txt 2>&1
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
nvm use 16
|
||||
#cd /home/tykayn/www/multi-account-post-schedule-mastodon
|
||||
wget --no-check-certificate --no-directories -O ./documents/agendadulibre_coming_openstreetmap.json https://www.agendadulibre.org/events.json?city=&near%5Blocation%5D=&near%5Bdistance%5D=®ion=&tag=openstreetmap
|
||||
|
||||
node helpers/agendadulibre_coming_osm.mjs --force | tee -a /home/tykayn/log_autopost.txt 2>&1
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
nvm use 16
|
||||
#cd /home/tykayn/www/multi-account-post-schedule-mastodon
|
||||
wget --no-check-certificate --no-directories -O ./documents/agendadulibre.json https://www.agendadulibre.org/events.json
|
||||
|
||||
node helpers/floss_idf.mjs --force | tee -a /home/tykayn/log_autopost.txt 2>&1
|
File diff suppressed because one or more lines are too long
Binary file not shown.
After Width: | Height: | Size: 70 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.0 MiB |
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 2.1 MiB |
|
@ -9,9 +9,14 @@ function makeTitleContentFromAgendaDulibre(articles) {
|
|||
|
||||
let content = '';
|
||||
|
||||
if(! articles.length ){
|
||||
return '- Aucun évènement prévu. T_T'
|
||||
}
|
||||
articles.forEach(item=>{
|
||||
content += `\n* ${item.city} - ${item.title}` ;
|
||||
content += `\n* <${item.start_time} -- ${item.end_time}>` ;
|
||||
let start = new Date(item.start_time)
|
||||
let end = new Date(item.end_time)
|
||||
content += `\n <${start} -- ${end}>` ;
|
||||
})
|
||||
return content;
|
||||
}
|
||||
|
@ -19,11 +24,12 @@ function makeTitleContentFromAgendaDulibre(articles) {
|
|||
async function postLink() {
|
||||
|
||||
console.log("curator: résumé des prochains évènements de l'agenda du libre en ile de france dans les " + days_filter + " jours")
|
||||
let events_list = coming_events_json.default;
|
||||
|
||||
coming_events_json = getArticlesFromDaysInJson(coming_events_json);
|
||||
events_list = getArticlesFromDaysInJson(events_list,days_filter);
|
||||
|
||||
let contentOfPost = 'Prochains évènements OpenStreetMap dans les ' + days_filter + ' prochains jours: \n'
|
||||
+ makeTitleContentFromAgendaDulibre(coming_events_json)
|
||||
+ makeTitleContentFromAgendaDulibre(events_list)
|
||||
|
||||
let configPost = {
|
||||
author: 'curator',
|
||||
|
@ -32,7 +38,7 @@ async function postLink() {
|
|||
slug: "osm_event_picture",
|
||||
content_type: "text/markdown",
|
||||
folder_image: process.cwd() + '/assets/',
|
||||
image: "osm.jpg",
|
||||
image: "osm_default.jpg",
|
||||
message: `# ${contentOfPost}
|
||||
|
||||
#agenda #floss #openstreetmap #hebdo`,
|
||||
|
@ -40,4 +46,4 @@ async function postLink() {
|
|||
sendPostMastodon(configPost)
|
||||
}
|
||||
|
||||
postLink();
|
||||
postLink();
|
||||
|
|
|
@ -0,0 +1,77 @@
|
|||
import * as coming_events_json from './../assets/documents/idf_agendadulibre_coming.json' assert { type: "json" } ;
|
||||
import sendPostMastodon, {getArticlesFromDaysInJson, filterRegionAgendaDuLibreEvents, groupEventsByDay} from "./utils.mjs";
|
||||
import moment from 'moment';
|
||||
import {diffDaysBetweenTwoDates} from "./utils.mjs";
|
||||
|
||||
|
||||
|
||||
let event_date_format = 'hh:mm'
|
||||
const days_filter = 7;
|
||||
|
||||
moment.locale('fr')
|
||||
|
||||
function makeTitleContentFromAgendaDulibre(articles) {
|
||||
|
||||
let content = '';
|
||||
|
||||
if (!articles.length) {
|
||||
return '- Aucun évènement prévu. T_T'
|
||||
}
|
||||
|
||||
articles = groupEventsByDay(articles);
|
||||
|
||||
let sortedDays = Object.keys(articles)
|
||||
|
||||
sortedDays.forEach((dayOfEvents, index) => {
|
||||
// console.log('item', item, articles[item])
|
||||
console.log('item', dayOfEvents)
|
||||
content += `\n## ${dayOfEvents}` ;
|
||||
|
||||
articles[dayOfEvents].forEach(event =>{
|
||||
console.log('event.title', event.title)
|
||||
|
||||
let tags = '#'+event.tags.split(' ').join(' #')
|
||||
let eventUrl = event.url.replace('.json', '')
|
||||
|
||||
|
||||
// content += `\n* [${event.title}](${eventUrl})` ;
|
||||
content += `\n* [${event.city} - ${event.title}](${eventUrl})` ;
|
||||
content += `\n* ${tags}` ;
|
||||
|
||||
let start = moment(new Date(event.start_time)).format(event_date_format)
|
||||
let end = moment(new Date(event.end_time)).format(event_date_format)
|
||||
content += `\n ${start} -- ${end}` ;
|
||||
})
|
||||
content += `\n`;
|
||||
|
||||
})
|
||||
return content;
|
||||
}
|
||||
|
||||
|
||||
async function postLink() {
|
||||
|
||||
console.log("curator: résumé des prochains évènements de l'agenda du libre en ile de france dans les " + days_filter + " jours")
|
||||
let events_list = coming_events_json.default;
|
||||
|
||||
events_list = filterRegionAgendaDuLibreEvents(events_list, "12");
|
||||
events_list = getArticlesFromDaysInJson(events_list, days_filter);
|
||||
|
||||
let contentOfPost = 'Prochains évènements libristes en île de France dans les ' + days_filter + ' prochains jours: \n'
|
||||
+ makeTitleContentFromAgendaDulibre(events_list)
|
||||
|
||||
let configPost = {
|
||||
author: 'curator',
|
||||
website: 'openstreetmap.fr',
|
||||
slug: "floss_event_picture",
|
||||
content_type: "text/markdown",
|
||||
folder_image: process.cwd() + '/assets/',
|
||||
image: "floss_default.jpg",
|
||||
message: `# ${contentOfPost}
|
||||
|
||||
#agenda #floss #openstreetmap #hebdo`,
|
||||
}
|
||||
sendPostMastodon(configPost)
|
||||
}
|
||||
|
||||
postLink();
|
|
@ -63,8 +63,8 @@ export default function sendPostMastodon(config) {
|
|||
if (!config.reallySendPost) {
|
||||
|
||||
console.log("\n\n =========== le message ne sera PAS réellement posté sur le compte @" + config.author + "@" + process.env.INSTANCE_MASTODON + " =========== \n")
|
||||
console.log('configPost.folder_image', config.folder_image)
|
||||
console.log('config', config)
|
||||
// console.log('configPost.folder_image', config.folder_image)
|
||||
console.log('config', config.message)
|
||||
} else {
|
||||
|
||||
console.log(" ")
|
||||
|
@ -354,12 +354,12 @@ export function findPictureAndSendPost(postContent, configPost){
|
|||
* @returns {boolean}
|
||||
*/
|
||||
export function hasCliArgument(argument){
|
||||
console.log('myArgs: ', myArgs);
|
||||
return myArgs.indexOf(argument) !== -1
|
||||
|
||||
}
|
||||
|
||||
import Parser from 'rss-parser';
|
||||
import moment from "moment";
|
||||
|
||||
let parser = new Parser();
|
||||
|
||||
|
@ -419,13 +419,19 @@ export function getArticlesFromDaysInJson(json_content,nbOfDays){
|
|||
let today = new Date()
|
||||
let selectedEvents = [];
|
||||
|
||||
console.log('getArticlesFromDaysInJson: filtre nbOfDays', nbOfDays)
|
||||
console.log('events ', json_content.length)
|
||||
json_content.forEach((item) => {
|
||||
|
||||
let differenceDays = diffDaysBetweenTwoDates(new Date(item.start_time) ,today);
|
||||
|
||||
if(differenceDays>0 && differenceDays < nbOfDays){
|
||||
if( differenceDays < nbOfDays){
|
||||
console.log('on garde', differenceDays,item.city, item.title)
|
||||
selectedEvents.push(item)
|
||||
}
|
||||
// else{
|
||||
// console.log('on ne garde pas', differenceDays,item.city, item.title)
|
||||
// }
|
||||
})
|
||||
|
||||
return selectedEvents
|
||||
|
@ -433,10 +439,36 @@ export function getArticlesFromDaysInJson(json_content,nbOfDays){
|
|||
|
||||
export function diffDaysBetweenTwoDates(date1,date2) {
|
||||
|
||||
const diffTime = Math.abs(date2 - date1);
|
||||
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
||||
// console.log(diffTime + " milliseconds");
|
||||
console.log(diffDays + " days");
|
||||
return diffDays;
|
||||
const a = moment(date1);
|
||||
const b = moment(date2);
|
||||
return a.diff(b, 'days');
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
export function filterRegionAgendaDuLibreEvents(events_list, filter_critera) {
|
||||
let selection = []
|
||||
events_list.forEach(item=> {
|
||||
if( item.region_id == filter_critera){
|
||||
selection.push(item)
|
||||
}
|
||||
})
|
||||
return selection;
|
||||
}
|
||||
|
||||
moment.locale('fr');
|
||||
|
||||
export function groupEventsByDay(events_list){
|
||||
let selection = {}
|
||||
events_list.forEach(item=> {
|
||||
|
||||
let formattedDay = moment(item.start_time).format('dddd DD')
|
||||
|
||||
if( ! selection[formattedDay]){
|
||||
selection[formattedDay] = []
|
||||
}
|
||||
selection[formattedDay].push(item)
|
||||
})
|
||||
return selection;
|
||||
}
|
|
@ -16,6 +16,7 @@
|
|||
"http-errors": "~1.6.3",
|
||||
"jade": "~1.11.0",
|
||||
"mastodon": "^1.2.2",
|
||||
"moment": "^2.29.4",
|
||||
"morgan": "~1.9.1",
|
||||
"node-fs": "^0.1.7",
|
||||
"nodemon": "^2.0.19",
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
--2023-03-03 17:53:55-- https://www.agendadulibre.org/events.json?city=
|
||||
Résolution de www.agendadulibre.org (www.agendadulibre.org)… 176.9.141.91
|
||||
Connexion à www.agendadulibre.org (www.agendadulibre.org)|176.9.141.91|:443… connecté.
|
||||
requête HTTP transmise, en attente de la réponse… 200 OK
|
||||
Taille : non indiqué [application/json]
|
||||
Sauvegarde en : « ./assets/documents/idf_agendadulibre_coming.json »
|
||||
|
||||
./assets/documents/idf_agendadulibre_coming.json [<=> ] 0 --.-KB/s
./assets/documents/idf_agendadulibre_coming.json [ <=> ] 463,07K 2,25MB/s
./assets/documents/idf_agendadulibre_coming.json [ <=> ] 890,10K 2,37MB/s ds 0,4s
|
||||
|
||||
2023-03-03 17:53:57 (2,37 MB/s) - « ./assets/documents/idf_agendadulibre_coming.json » sauvegardé [911459]
|
||||
|
|
@ -2121,6 +2121,7 @@ __metadata:
|
|||
https: ^1.0.0
|
||||
jade: ~1.11.0
|
||||
mastodon: ^1.2.2
|
||||
moment: ^2.29.4
|
||||
morgan: ~1.9.1
|
||||
node-fetch: ^3.2.10
|
||||
node-fs: ^0.1.7
|
||||
|
@ -2354,6 +2355,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"moment@npm:^2.29.4":
|
||||
version: 2.29.4
|
||||
resolution: "moment@npm:2.29.4"
|
||||
checksum: 0ec3f9c2bcba38dc2451b1daed5daded747f17610b92427bebe1d08d48d8b7bdd8d9197500b072d14e326dd0ccf3e326b9e3d07c5895d3d49e39b6803b76e80e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"morgan@npm:~1.9.1":
|
||||
version: 1.9.1
|
||||
resolution: "morgan@npm:1.9.1"
|
||||
|
|
Loading…
Reference in New Issue