// ==UserScript== // @name RYM Artist Rating Display with Multiple Classifications // @namespace http://tampermonkey.net/ // @version 1.3 // @description Affiche plusieurs appréciations de l'artiste sur RateYourMusic en fonction de vos propres notes personnalisées, avec des couleurs et des bordures spécifiques. // @author SansGuidon // @match https://rateyourmusic.com/artist/* // @grant none // ==/UserScript== (function() { 'use strict'; // Fonction pour extraire les notes personnelles function getUserRatings() { let ratings = document.querySelectorAll('#discography .disco_cat_inner'); return Array.from(ratings).map(el => { let match = el.textContent.trim().match(/(\d\.\d)/); return match ? parseFloat(match[1]) : null; }).filter(rating => rating !== null); } // Fonction pour calculer les appréciations de l'artiste function calculateArtistRatings() { let ratingCounts = getUserRatings(); let count4OrMore = ratingCounts.filter(rating => rating >= 4.0).length; let count5 = ratingCounts.filter(rating => rating >= 5.0).length; let ratings = []; // Ajouter les bordures pour les albums pris en compte document.querySelectorAll('#discography .disco_cat_inner').forEach(el => { let match = el.textContent.trim().match(/(\d\.\d)/); let rating = match ? parseFloat(match[1]) : null; if (rating !== null) { if (rating >= 4.0) { el.closest('.disco_release').style.border = '1px solid saddlebrown'; } if (rating >= 5.0) { el.closest('.disco_release').style.border = '1px solid deeppink'; } } }); if (count4OrMore >= 5 && count5 >= 1) { ratings.push({ category: 'Extreme pleasure: Bands/artists I\'ve given at least 5 times 4.0 - 5.0 ratings for theirs albums, including at least one album with 5.0 rating', color: 'deeppink' }); } if (count5 >= 1 || count4OrMore >= 3) { ratings.push({ category: 'Easy pleasure: Bands/artists I\'ve given at least 1 time 5.0 rating for their album(s), and/or at least 3 times 4.0+ ratings for their albums', color: 'darkgoldenrod' }); } if (count4OrMore >= 2) { ratings.push({ category: 'Excellent: Bands/artists of albums I\'ve given at least 2 times 4.0-5.0 ratings', color: 'saddlebrown' }); } if (ratings.length === 0) { ratings.push({ category: 'No significant rating: This artist doesn\'t meet the criteria for any specific rating category', color: '#333' }); } return ratings; } // Fonction pour insérer les appréciations dans la page function insertArtistRatings(ratings) { let artistNameSection = document.querySelector('.section_artist_name'); if (artistNameSection) { ratings.forEach(rating => { let ratingElement = document.createElement('div'); ratingElement.innerHTML = `${rating.category}`; ratingElement.style.fontSize = '16px'; ratingElement.style.color = rating.color; ratingElement.style.padding = '5px 0'; ratingElement.style.borderTop = '1px solid #ccc'; artistNameSection.appendChild(ratingElement); }); } } // Calculer les appréciations de l'artiste let artistRatings = calculateArtistRatings(); // Insérer les appréciations dans la page insertArtistRatings(artistRatings); })();