Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name AveTopics
- // @version 0.1
- // @description Liste live des topics
- // @author Padsi
- // @include http://avenoel.org/forum
- // @include https://avenoel.org/forum
- // @grant GM_xmlhttpRequest
- // @connect avenoel.org
- // @icon https://avenoel.org/favicon.ico
- // ==/UserScript==
- //Sur une base de NocturneX : NOELIVE
- /*
- Fonctionne seulement sur la page d'accueil du forum, pas de numéro de page
- Si l'interval de refresh ne convient pas edit directement le script
- */
- (function() {
- 'use strict';
- class AveTopics {
- constructor () {
- this.nbSecondeUpdate = 5; //Interval de refresh en secondes
- this.start();
- }
- getURL () {
- return "https://avenoel.org/forum";
- }
- checkErreur (doc) {
- return (doc === undefined || doc.querySelector(".topics") === null);
- }
- getTopics (callback) {
- var self = this;
- GM_xmlhttpRequest({
- method: "GET",
- url: this.getURL(),
- onload: function(response) {
- let doc = (new DOMParser()).parseFromString(response.responseText, "text/html");
- if(self.checkErreur(doc)){
- console.log("[AveTopics] Une erreur est survenue.");
- console.log(doc.title);
- callback([]);
- return 0;
- }
- let topics = doc.querySelector(".topics").innerHTML;
- callback(topics);
- },
- });
- }
- afficheTopics (topics) {
- console.log("[AveTopics] topics récupérés.");
- document.querySelector(".topics").innerHTML = topics;
- }
- start () {
- var self = this;
- function boucle() {
- if(document.hasFocus()){
- self.getTopics(function (topics) {
- self.afficheTopics(topics);
- setTimeout(function () {
- boucle();
- }, self.nbSecondeUpdate * 1000);
- });
- } else {
- setTimeout(function () {
- boucle();
- }, self.nbSecondeUpdate * 1000);
- }
- }
- boucle();
- }
- }
- new AveTopics();
- })();
Advertisement
Add Comment
Please, Sign In to add comment