From 75e460e0f0d64c89087f9ee9a1a0ed6410ee90a9 Mon Sep 17 00:00:00 2001 From: Tykayn Date: Wed, 14 Dec 2022 18:18:34 +0100 Subject: [PATCH] up post picture wiki osm --- helpers/osm_get_description_picture.mjs | 37 ++++++++++++++++++++ helpers/qzine_article.mjs | 2 +- helpers/utils.mjs | 8 +++-- helpers/wiki_osm.mjs | 44 ++++++++++++++++++++---- osm_wiki_description_page.jpg | Bin 0 -> 38367 bytes 5 files changed, 82 insertions(+), 9 deletions(-) create mode 100644 helpers/osm_get_description_picture.mjs create mode 100644 osm_wiki_description_page.jpg diff --git a/helpers/osm_get_description_picture.mjs b/helpers/osm_get_description_picture.mjs new file mode 100644 index 0000000..76b99f2 --- /dev/null +++ b/helpers/osm_get_description_picture.mjs @@ -0,0 +1,37 @@ +import fetch from "node-fetch" +import rp from "request-promise"; +import $ from "cheerio"; +import fs from "fs"; +import path from 'path'; + +let url = 'https://wiki.openstreetmap.org/wiki/FR:Key:building:material'; + + let pictureDescrFinder = '.d_image img' + +// rp(url).then(function (html) { +// getSourceOfDescriptorPageContent(html) +// }) + +export function getSourceOfDescriptorPageContent(HTMLcontent) { + const pictureDescriptionOfTagSrc = $(pictureDescrFinder, HTMLcontent) + let selectedPicture = 'osm_default.jpg'; + // image trouvée + if (pictureDescriptionOfTagSrc[0]) { + + let sourcesSet = pictureDescriptionOfTagSrc[0].attribs.srcset + let selectedPicture = pictureDescriptionOfTagSrc[0].attribs.src; + + sourcesSet = sourcesSet.split(',') + console.log(sourcesSet.length) + // prendre l'image la plus grande du src set + if (sourcesSet.length > 1) { + selectedPicture = sourcesSet[sourcesSet.length - 1] + selectedPicture = selectedPicture.trim().split(' ')[0] + } + console.log(sourcesSet) + console.log(selectedPicture) + return selectedPicture; + } else { + console.log("pas d'image de description dans le HTML") + } +} diff --git a/helpers/qzine_article.mjs b/helpers/qzine_article.mjs index d0fd211..1dff3cc 100644 --- a/helpers/qzine_article.mjs +++ b/helpers/qzine_article.mjs @@ -33,7 +33,7 @@ function postLink() { let postObject = {}; let idOfPost = 1091; - // idOfPost = null; + idOfPost = null; if (idOfPost) { postObject = list_posts_json.filter(elem => elem.id === idOfPost)[0] console.log(postObject) diff --git a/helpers/utils.mjs b/helpers/utils.mjs index 287f32b..52b168c 100644 --- a/helpers/utils.mjs +++ b/helpers/utils.mjs @@ -48,7 +48,7 @@ export function tokenForAuthorIsPresentInDotEnv(author) { */ export default function sendPostMastodon(config) { - console.log('send post', config.postObject.post_guid , config.postObject.guid ) + // console.log('send post', config.postObject.post_guid , config.postObject.guid ) // override defaults with input argument config = { ...defaultConfigMasto, @@ -241,7 +241,11 @@ function clearLink(linkString){ */ export function downloadImage(url, filepath) { return new Promise((resolve, reject) => { - https.get(url, (res) => { + const options = { + headers: { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.52" } + }; + + https.get( url, options, (res) => { if (res.statusCode === 200) { res.pipe(fs.createWriteStream(filepath)) .on('error', reject) diff --git a/helpers/wiki_osm.mjs b/helpers/wiki_osm.mjs index 1ed12fc..193516e 100644 --- a/helpers/wiki_osm.mjs +++ b/helpers/wiki_osm.mjs @@ -7,7 +7,8 @@ import rp from "request-promise"; import $ from "cheerio"; import fs from "fs"; import path from 'path'; -import sendPostMastodon, {randomIntFromInterval} from './utils.mjs' +import sendPostMastodon, {downloadImage, randomIntFromInterval, slugify} from './utils.mjs' +import {getSourceOfDescriptorPageContent} from "./osm_get_description_picture.mjs"; const __dirname = path.resolve(); @@ -156,8 +157,8 @@ export default function getElementCartographique() { const descriptionStrophe = ''; const filteredHtml = $('.mw-parser-output', html).find('p') - const pictureDescriptionOfTagSrc = $('.d_image img', html).attributes['src'] - console.log(pictureDescriptionOfTagSrc) + // trouver l'image de description + configPost.download_description_src = getSourceOfDescriptorPageContent(html) console.log("filteredHtml", filteredHtml.length) configPost.long_desc = $(filteredHtml).text().substring(0,250) @@ -167,7 +168,7 @@ export default function getElementCartographique() { // let imgSelector = ".description a.image img" console.log("✅ cette page existe bien en Français sur le wiki OSM") foundExistingWikiPageInFrench = true; - sendMessageWikiTagOfTheDay(makePostMessageFromObj(configPost)) + sendMessageWikiTagOfTheDay(makePostMessageFromObj(configPost), configPost.download_description_src) return; }, (err) => { @@ -281,7 +282,7 @@ const res = getElementCartographique() // console.log("res", res) -function sendMessageWikiTagOfTheDay(message) { +function sendMessageWikiTagOfTheDay(message, download_description_src) { let configPost = { @@ -290,5 +291,36 @@ function sendMessageWikiTagOfTheDay(message) { image: 'osm_post_' + randomIntFromInterval(1 , 5) + '.jpg', message, } - sendPostMastodon(configPost) + if(download_description_src) { + let filePathImage = `osm_wiki_description_page.jpg` + if (download_description_src) { + console.log("firstPictureSource found", download_description_src) + + // check if picture already exist + console.log('on récupère l image de description : ', filePathImage) + downloadImage(download_description_src, filePathImage) + .then((res) => { + // suite du poste avec upload d'image + + console.log('média téléchargé, on envoie le post') + configPost.image = filePathImage; + + sendPostMastodon(configPost) + + }, + (err) => { + console.log('pas dimage trouvée pour l URL ', download_description_src, err) + sendPostMastodon(configPost) + } + ) + .catch((err) => { + console.log('erreur avec cette URL ', download_description_src, err) + sendPostMastodon(configPost) + }) + } + + }else{ + console.log('no image description') + sendPostMastodon(configPost) + } } \ No newline at end of file diff --git a/osm_wiki_description_page.jpg b/osm_wiki_description_page.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48d572775340fee58c9a230fa426ef5c34c66042 GIT binary patch literal 38367 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 o*mbr9V@