-
-
Notifications
You must be signed in to change notification settings - Fork 165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Presse nationale] Ajouter Télérama #216
Comments
Oui, ce serait possible! Une contribution est bienvenue! |
Les articles du site web ne semblent pas accessibles (seulement référencés). Par contre le magazine est lui bien disponible en pdf, et il serait possible d'ajouter le bouton lire sur europresse pour chaque numéro: https://www.telerama.fr/kiosque/telerama |
Première ébauche, avec l'aide de ChatGPT, ne pas prendre en compte le monthNames. En collant dans la console. Évidemment il faut modifier le link tout en bas du JS pour correspondre à votre Europresse. Ceci n'est qu'à but de test, je ne suis pas sûr de comment intégrer ça au code vu que ça fonctionne différemment et que ça ne "consume" rien. Et aussi, car j'ai un peu la flemme. Globalement aucune vérification n'est faite, ça ajoute juste un lien avec la date détectée + 3 jours, parce que sur Europresse, c'est systématiquement publié 3 jours après. Par chance ça nous permet d'avoir un lien statique facilement devinable. Bref c'est un PoC qu'il faudrait travailler pour l'inclure. // Function to format date to "YYYY-MM-DD"
function formatDate(date) {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
}
// Function to add days to a given date
function addDays(date, days) {
const result = new Date(date);
result.setDate(result.getDate() + days);
return result;
}
// Get articles
const articles = document.querySelectorAll('#liste-magazine-telerama article');
console.log(`Found ${articles.length} articles.`);
// Month names mapping
const monthNames = {
'Janvier': 0, 'Jan.': 0, 'Janv.': 0, 'Janv': 0,
'Février': 1, 'Fév.': 1, 'Févr.': 1, 'Févr': 1,
'Mars': 2, 'Mar.': 2, 'Mar': 2,
'Avril': 3, 'Avr.': 3, 'Avr': 3,
'Mai': 4, 'Mai.': 4,
'Juin': 5, 'Juin.': 5,
'Juillet': 6, 'Juil.': 6, 'Juil': 6,
'Août': 7,
'Septembre': 8, 'Sep.': 8, 'Sept.': 8, 'Sept': 8,
'Octobre': 9, 'Oct.': 9, 'Oct': 9,
'Novembre': 10, 'Nov.': 10, 'Nov': 10,
'Décembre': 11, 'Déc.': 11, 'Déc': 11
};
// Process each article
articles.forEach(article => {
// Extract the date text
const dateText = article.querySelector('p').textContent.trim();
console.log(`Raw date text: "${dateText}"`);
// Parse the date
const [dayStr, monthName, yearStr] = dateText.split(' ');
// Trim and remove any extra spaces or periods
const cleanMonthName = monthName.trim().replace(/\./g, '');
console.log(`Parsed - Day: ${dayStr}, Month Name: ${monthName} (Cleaned: ${cleanMonthName}), Year: ${yearStr}`);
// Convert day and year to integers
const day = parseInt(dayStr, 10);
const year = parseInt(yearStr, 10);
const month = monthNames[cleanMonthName];
if (month === undefined) {
console.error(`Unknown month name: "${monthName}" (Cleaned: "${cleanMonthName}")`);
return;
}
console.log(`Month number: ${month}`);
// Create date object in a robust way
const articleDate = new Date(year, month, day);
console.log(`Article date: ${articleDate}`);
// Check if the date object is valid
if (isNaN(articleDate.getTime())) {
console.error(`Invalid date: ${year}-${month + 1}-${day}`);
return;
}
// Calculate the new date + 3 days
const newDate = addDays(articleDate, 3);
const formattedDate = formatDate(newDate);
console.log(`New date + 3 days: ${formattedDate}`);
// Generate the link
const link = `https://nouveau-europresse-com.acces-distant.bnu.fr/PDF/EditionDate?sourceCode=TA_P&singleDate=${formattedDate}&useFuzzyDate=false`;
console.log(`Generated link: ${link}`);
// Create a new anchor element
const linkElement = document.createElement('a');
linkElement.href = link;
linkElement.target = '_blank'; // Open the link in a new tab
linkElement.textContent = "Lire sur Europresse";
// Inject the link into the article
article.appendChild(linkElement);
}); |
Le POC fonctionne très bien :) |
Bonjour,
serait-il possible d’ajouter le site internet de Télérama présent dans europresse?
https://www.telerama.fr
Merci à vous!
The text was updated successfully, but these errors were encountered: