Advertisement
Guest User

script topics rouges

a guest
Mar 16th, 2023
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.63 KB | None | 0 0
  1. // ==UserScript==
  2. // @name [ONCHE]_RedTopics
  3. // @author tintinabule
  4. // @version 0.12
  5. // @grant none
  6. // @match https://onche.org/forum/*
  7. // @match https://onche.org/topic/*
  8. // ==/UserScript==
  9.  
  10.  
  11.  
  12. ///////////////// PARAMS
  13.  
  14. // Mettre à 0 pour ne pas changer les avatars des topics en une icone de fichier
  15. let changeImage = 1;
  16.  
  17. //old style mettre à 1 pour avoir les anciennes icones
  18. let oldstyle = 0;
  19.  
  20. //à mettre à 0 si vous ne voulez pas que les flammes (topics très actifs) soit remplacées par une icone de fichier
  21. let deleteflames = 1;
  22.  
  23. //nombre de posts avant qu'un topic devienne rouge
  24. let nbPostsRedTopic = 20;
  25.  
  26. // à mettre à 1 si vous voulez changer l'icone des topics avec plus de 100 posts (icône noire)
  27. let enableGoldenTopics = 0;
  28.  
  29. //à mettre à 0 pour désactiver le changement de couleur du texte (topics rouges et goldens)
  30. let enableColorChanger = 1;
  31.  
  32. //à mettre à 0 si vous voulez désactiver les modifications de fond (couleurs améliorées + alternances de couleurs liste sujet)
  33. let enableBackgroundModifier = 1;
  34.  
  35.  
  36.  
  37.  
  38. //////////////// HISTORIQUE
  39. // 15.03
  40. // 0.1 : couleurs du texte
  41. // 0.2 : ajout icone JVC pour les topics (au lieu des avatars)
  42. // 0.3 : changeImage pour désactiver les icones de dossier,
  43. // 0.4 : match marche sur tous les sous-forums
  44. // 0.5 : alterner les background
  45. // 0.6 : Ajout ancien style de dossiers
  46. // 0.8 : ajout d'une icône pour les topics golden
  47. // 0.81 : ajout de différents paramètres réglables par l'utilisateur
  48. // 0.9 : remplacement des flammes par des icônes de fichiers
  49. // 0.10 : exclusion des topics épinglés
  50. // 0.11 : amélioration de chacun des thèmes (base utilisée : https://jvscript.fr/script/onche-alternatecolors)
  51. // 0.12 : correction de la couleur de fond des icônes
  52.  
  53.  
  54. ///////////////// CODE, ne pas modifier
  55.  
  56.  
  57. let topics = document.querySelectorAll(".topic");
  58.  
  59. topics.forEach(topic => {
  60. let nb = topic.querySelector(".topic-nb");
  61. let imgAvatar = topic.querySelector("img");
  62. let imgTopicHot = topic.querySelector(".mdi-fire");
  63.  
  64. if(imgTopicHot != null){
  65. let parentElement = topic.querySelector('.mdi-fire').parentElement;
  66. let newImgElement = document.createElement('img');
  67. imgAvatar = newImgElement;
  68. parentElement.replaceChild(imgAvatar, topic.querySelector('.mdi-fire'));
  69. }
  70. let ts = topic.querySelector(".topic-subject");
  71.  
  72. if (imgAvatar != null && changeImage!=0) {
  73. if (oldstyle == 1) {
  74. imgAvatar.src = "https://raw.githubusercontent.com/tintinabule/JVScript/main/img/old-folder-yellow.png"
  75. } else {
  76. imgAvatar.src = "https://raw.githubusercontent.com/tintinabule/JVScript/main/img/rectangle-yellow.png"
  77. } }
  78.  
  79. if (parseInt(nb.textContent) > nbPostsRedTopic) {
  80. if (imgAvatar != null && changeImage!=0) {
  81. //topics golden
  82. if (parseInt(nb.textContent) > 100 && enableGoldenTopics == 1) {
  83. imgAvatar.alt = 'Topic golden';
  84. if(enableColorChanger == 1){
  85. ts.style.color = "#e3ae00";
  86. }
  87. if (oldstyle == 1){
  88. imgAvatar.src = "https://i.imgur.com/WRCVouE.png"
  89. }
  90. else{
  91. imgAvatar.src = "https://i.imgur.com/WfqEdtt.png"
  92. }
  93. }
  94. else if(parseInt(nb.textContent) < 100){
  95. imgAvatar.alt = 'Topic rouge';
  96. if(enableColorChanger == 1){
  97. ts.style.color = "#E99FAA";
  98. }
  99. if (oldstyle == 1) {
  100. imgAvatar.src = "https://raw.githubusercontent.com/tintinabule/JVScript/main/img/old-folder-red.png"
  101. } else {
  102. imgAvatar.src = "https://raw.githubusercontent.com/tintinabule/JVScript/main/img/rectangle-red.png"
  103. }
  104. }
  105. }
  106. }
  107. else if(parseInt(nb.textContent) <= nbPostsRedTopic && imgAvatar != null)
  108. {
  109. imgAvatar.alt = 'Topic jaune';
  110. }
  111. if(imgAvatar != null)
  112. {
  113. //supprime le fond des icônes
  114. imgAvatar.style.background = 'none';
  115. }
  116. });
  117.  
  118.  
  119. let changeBackground = document.querySelector("#theme-button");
  120. const body = document.querySelector('body');
  121. const form = document.querySelector('#post');
  122. let bodyClass = null;
  123.  
  124. function alternate() {
  125. if(bodyClass == null){
  126. bodyClass = document.querySelector("body").className;
  127. }
  128. let color1;
  129. let color2;
  130. let color3;
  131. let color4;
  132. let color5;
  133. 'use strict';
  134.  
  135. if(body.classList.contains('grey')){
  136. color1 = "rgb(46, 50, 56)"; //alternance topics
  137. color2 = "rgb(54, 62, 73)"; //couleur générale + couleur messages
  138. color3 = "rgb(74, 76, 79)"; //contours
  139. color4 = "rgb(107, 145, 183)"; //texte date/heure post
  140. color5 = "rgb(83 174 255)"; //texte sujets*/
  141. document.getElementById("content").style.background = "#22252a";
  142. form.querySelector("input").style.background = "#303236";
  143. form.querySelector(".textarea").style.background = "#303236";
  144. form.querySelector(".favoriteStickers").style.background = "#303236";
  145. }
  146. else if(body.classList.contains('blue')){
  147. color1 = "rgb(28, 43, 58)"; //alternance topics
  148. color2 = "rgb(38, 53, 68)"; //couleur générale + couleur messages
  149. color3 = "rgb(48, 63, 78)"; //contours
  150. color4 = "rgb(107, 145, 183)"; //texte
  151. color5 = "rgb(83 174 255)"; //texte sujets*/
  152. document.getElementById("content").style.background = "#141c25";
  153. form.querySelector("input").style.background = "#141c25";
  154. form.querySelector(".textarea").style.background = "#141c25";
  155. form.querySelector(".favoriteStickers").style.background = "#141c25";
  156. }
  157. else{
  158. color1 = "rgb(232, 237, 251)"; //alternance topics
  159. color2 = "rgb(249, 249, 249)"; //couleur générale + couleur messages
  160. color3 = "rgb(209, 209, 209)"; //contours
  161. color4 = "rgb(107, 145, 183)"; //texte date/heure post
  162. color5 = "rgb(83 174 255)"; //texte sujets*/
  163. document.getElementById("content").style.background = "#d4d7df";
  164. form.querySelector("input").style.background = "#f3f4f6";
  165. form.querySelector(".textarea").style.background = "#f3f4f6";
  166. form.querySelector(".favoriteStickers").style.background = "#f3f4f6";
  167. }
  168.  
  169. //Forum
  170. Array.from(document.querySelectorAll(".bloc")).map(x => x.style= "background-color: "+color2)
  171. Array.from(document.querySelectorAll(".topic:nth-child(odd)")).map(x => x.style= "background-color: "+color1)
  172. Array.from(document.querySelectorAll(".topic-subject link")).map(x => x.style.color=color5)
  173.  
  174.  
  175. Array.from(document.querySelectorAll(".input")).map(x => x.style.border="solid 1px "+color3)
  176. Array.from(document.querySelectorAll(".textarea")).map(x => x.style.border="solid 1px "+color3)
  177. Array.from(document.querySelectorAll(".bloc")).map(x => x.style.border="solid 1px "+color3)
  178. Array.from(document.querySelectorAll("#post")).map(x => x.style.border="solid 1px "+color3)
  179.  
  180. // Message
  181. Array.from(document.querySelectorAll(".message")).map(x => x.style= "background-color: "+color2)
  182. Array.from(document.querySelectorAll(".message")).map(x => x.style.border="solid 1px "+color3)
  183. Array.from(document.querySelectorAll(".message")).map(x => x.style.margin="0 0 15px")
  184. Array.from(document.querySelectorAll(".message-date")).map(x => x.style="font-size:.7rem")
  185. Array.from(document.querySelectorAll(".message-date")).map(x => x.style.border="solid 1px "+color3)
  186. Array.from(document.querySelectorAll(".message-date")).map(x => x.style.color=color4)
  187. }
  188.  
  189. if(enableBackgroundModifier == 1){
  190. alternate();
  191. }
  192.  
  193. /*pour cette partie un peu de bricolage car y a un bug pénible, en gros le classname du body (qui détermine le style de
  194. la page > sombre/bleu/clair) n'est modifié dans cette ligne 'document.querySelector("body").className' qu'à partir
  195. du deuxième clic (alors qu'il est bel et bien modifié dans le DOM).
  196. Admettons qu'au chargement de la page je sois en bleu, après le premier clic, lorsque je veux check le classname
  197. ça me dit toujours bleu alors que le thème a changé.
  198. après ça change bien mais c'est décalé de 1 dans ce que m'affiche le classname par rapport à ce qu'il y a dans le DOM
  199. (indique)blue > (est affiché)grey
  200. grey > white
  201. white > blue
  202. donc je force le décalage à la main*/
  203.  
  204. changeBackground.onclick = function () {
  205. if(enableBackgroundModifier == 1){
  206. if(document.querySelector("body").className.includes("blue")){
  207. body.classList.remove('blue');
  208. body.classList.add('grey');
  209. }
  210. else if(document.querySelector("body").className.includes("grey")){
  211. body.classList.remove('grey');
  212. }
  213. else{
  214. body.classList.add('blue');
  215. }
  216. alternate();
  217. }
  218. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement