-
Notifications
You must be signed in to change notification settings - Fork 13
/
jvc-spawnkill.user.js
253 lines (210 loc) · 9.21 KB
/
jvc-spawnkill.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
// ==UserScript==
// @name JVC SpawnKill
// @description JVC SpawnKill est un plugin pour jeuxvideo.com ajoutant des fonctionnalités comme les avatars, les citations ou les signatures.
// @author Spixel_
// @namespace http://www.spixel.fr
// @include http://*.jeuxvideo.com*
// @version 1.6.2.2
// @require jquery-1.11.1.min.js?v1.6.2.2
// @require jquery-plugins.js?v1.6.2.2
// @require base.js?v1.6.2.2
// @require Util.js?v1.6.2.2
// @require Message.js?v1.6.2.2
// @require Author.js?v1.6.2.2
// @require Button.js?v1.6.2.2
// @require SlideToggle.js?v1.6.2.2
// @require Modal.js?v1.6.2.2
// @require modules/Module.js?v1.6.2.2
// @require modules/StartSpawnKill.js?v1.6.2.2
// @require modules/Settings.js?v1.6.2.2
// @require modules/QuickResponse.js?v1.6.2.2
// @require modules/Quote.js?v1.6.2.2
// @require modules/InfosPseudo.js?v1.6.2.2
// @require modules/HilightNewTopic.js?v1.6.2.2
// @require modules/LastPage.js?v1.6.2.2
// @resource banImage images/ban.png
// @resource newTopic images/topic_new.gif
// @resource carton images/carton.png
// @resource bronze images/bronze.png
// @resource argent images/argent.png
// @resource or images/or.png
// @resource rubis images/rubis.png
// @resource emeraude images/emeraude.png
// @resource diamant images/diamant.png
// @resource saphir images/saphir.png
// @resource female images/female.png
// @resource male images/male.png
// @resource unknown images/unknown.png
// @resource plus images/plus.png
// @resource minus images/minus.png
// @resource link images/link.png
// @resource quote images/quote.png
// @resource mp images/mp.png
// @resource alert images/alert.png
// @resource link-gray images/link-gray.png
// @resource calendar images/calendar.png
// @resource clock images/clock.png
// @resource settings images/settings.png
// @resource loader images/loader.gif
// @grant GM_xmlhttpRequest
// @grant GM_getResourceURL
// @grant GM_setClipboard
// @run-at document-start
// ==/UserScript==
/*
Changelog :
v1.6.2
- Affichage d'un style particulier pour les citations
- Prise en compte des citations de JVC Master/TurboForum/Beatrice
- Remplacement du loader par un gif pour améliorer les performances
- Interdiction d'imbriquer les citations pour éviter les posts à rallonge
- Ajouter une option pour afficher/cacher le bouton de citation
- Correction de la déformation de la liste des sujets quand le pseudo est trop long
v1.6.1.1
- Correction mineure du CSS de QuickResponse
- Préparation de la mise en cache des avatars
v1.6.1
- Désormais, les rangs s'affichent même si les avatars ne sont pas activés
- Possibilité de citer un post sans la QuickResponse
- Ajout des citations et liens permanents sur la page de réponse
- Correction d'un bug qui empêchait parfois la sauvegarde des paramètres sous Chrome
v1.6
- Ajout du plugin LastPage
- Passage à Github
v1.5
- Légère correction des citations pour améliorer l'affichage sur mobile
- Ajout du panneau de configuration du script
v1.4.1
- Correction des citations de posts "via mobile"
v1.4
- Ajout des rangs dans les posts
- Ajout d'un bouton de MP
- Ajout d'un bouton pour copier le permalien du message
- Ajout du sexe de l'utilisateur dans le bouton CDV
- Amélioration du style général des boutons
v1.3.1
- Décalage du formulaire QuickResponse sous la pagination
- Correction du décalage du message de split des topics
v1.3
- Ajout du plugin de mise en avant des nouveaux topics
v1.2
- Ajout de la réponse rapide
- Ajout d'un lien vers la CDV sur l'avatar
- Correction d'un bug avec les avatars quand il y avait des caractères spéciaux dans la CDV
- Correction du bug qui faisait apparaître le bouton de citation dans la barre de connexion
- Correction d'un bug qui faisait que les avatars étaient parfois bugués sur Chrome
v1.1.2
- Création d'une page web pour le plugin
- Amélioration du style des avatars
- Ajout d'un avatar pour les bannis
- Amélioration du scrolling des citations
- Bouton de citation plus petit
Roadmap :
v1.6.3
- Ajout d'un cache pour les données de l'auteur (Correctif apporté par, merci :) )
- Correction des lenteurs sous Firefox
- Mise en cache
- Une seule requête ajax
v1.7
- Ajouter un AutoUpdater
v1.7.1
- Ajouter option type de citations
- Possibilité de citer seulement une partie du message
- Ajouter un helper pour les regex de pages
- Plusieurs tailles d'avatars
- Afficher la description des modules dans le panneau de configuration
v1.8
- Ajouter une box pour les images/vidéos/sondages
Fonctionnalités :
- Remplacer le lien avatar vers un agrandissement de l'avatar.
- Faire des icones pour améliorer les citations
- Ajouter un lien vers les citations de ce message
- Ajouter d'autres types d'options pour les plugins (string, text, int, bool, float, color, select,...)
- Ajouter une option de choix pour la position du rang
- Ajouter un lien vers les screenshots de la fonctionnalité dans le panneau de config
- Ajouter une preview des fonctionnalités (depuis ajax du site)
- Possibilité d'afficher plus de 15 topics par page
- Pouvoir réellement collectionner les triangles poupres / hexagones oranges ou rectangles dorés scintillants
- Permettre de déplacer les rangs
- Ajouter des conditions aux options
- Ajout de raccourcis claviers
- Mettre en cache toutes les infos de l'utilisateur
- Choix entre plusieurs citations
- Faire la distinction entre les bans définitifs et les ban tempo
- Système de dépendances dans les configs
Bugs :
- Bugs avec "aujourd'hui" dans les citations Turboforum
- Le panneau de paramètrage ne peut pas défiler
- Faire fonctionner le plugin sur Opera
- Corriger taille de popups sur mac
- Affichage des plugins dans la preview du message
- Lorsqu'on reload à la création d'un message, il disparait.
Autre :
- Décalage quand prévenir admin
- Création d'une branche dev sur github et hébergement du projet
- Corriger l'affichage des citations pour les mobiles
- Réduire la taille des options
- Affichage de la version en grisé à droite dans les settings
- Mettre un Message dans auteur au lieu d'un $msg, renommer $msg en $el ou l'inverse
- Ajouter des tooltips facilement (slidetoggle, lastpage, ...)
- Ajout de hooks au chargement des données
Fonctionnement du versioning :
- Incrémentation de la première partie : nouveau fonctionnement
- Incrémentation de la seconde partie : Ajout d'une fonctionnalité
- Incrémentation de la troisième partie : Amélioration d'une fonctionnalité
- Incrémentation de la dernière partie : Correction de bugs ou changement mineurs
*/
"use strict";
/* jshint unused: false */
/* jshint multistr: true */
/* jshint newcap: false */
//Permet de débugger sans GreaseMonkey
if($.isNotFunction(GM_xmlhttpRequest)) {
var debug = true;
}
var modulesStyle = "";
//On charge seulement les modules nécessaires
for(var key in SK.moduleConstructors) {
var moduleName = key;
var module = new SK.moduleConstructors[key]();
var moduleSettings = SK.Util.getValue(moduleName);
//On prépare le chargement du module
SK.modules[moduleName] = module;
//On récupère les préférences courantes des options du module
for(var settingKey in module.settings) {
var setting = module.settings[settingKey];
var settingLabel = settingKey;
var settingValue = SK.Util.getValue(moduleName + "." + settingLabel);
//Si la préférence n'est pas enregistrée, on prend la valeur par défaut
if(settingValue === null) {
settingValue = setting.default;
}
//On enregistre la préférence dans le module
setting.value = settingValue;
}
//Si le module est requis, qu'il n'y a pas de préférences ou que la préférence est à faux
if(module.required || moduleSettings === null || moduleSettings) {
//On charge le CSS du module
modulesStyle += module.internal_getCss();
//On indique que le module est chargé
module.activated = true;
}
else {
module.activated = false;
}
}
//On ajoute le style de tous les modules actifs
SK.Util.addCss(modulesStyle);
//document.ready ne fonctionne pas sur GM.
//Pour vérifier que le DOM est chargé, on vérifie que le footer est présent.
var checkDomReady = setInterval(function() {
if($("#footer").length > 0) {
clearInterval(checkDomReady);
//On initialise les modules actifs
for(var key in SK.modules) {
if(SK.modules[key].activated) {
SK.modules[key].internal_init();
}
}
}
}, 100);