forked from Apoxx/spawnkill
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jvc-spawnkill.user.js
221 lines (193 loc) · 7.83 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
// ==UserScript==
// @name JVC SpawnKill
// @description JVC SpawnKill est une extension entièrement paramétrable permettant d'ajouter de nombreuses fonctionnalités à jeuxvideo.com
// @author Spixel_
// @namespace http://www.spawnkill.fr
// @include http://*.jeuxvideo.com/*
// @include http://*.forumjv.com/*
// @include https://*.jeuxvideo.com/*
// @include https://*.forumjv.com/*
// @version 2.1
// @require jquery-2.1.1.min.js?v2.1
// @require jquery-plugins.js?v2.1
// @require base.js?v2.1
// @require Util.js?v2.1
// @require Message.js?v2.1
// @require Author.js?v2.1
// @require Button.js?v2.1
// @require SlideToggle.js?v2.1
// @require Modal.js?v2.1
// @require DropdownList.js?v2.1
// @require FaviconNotificationUpdater.js?v2.1
// @require SocketMessage.js?v2.1
// @require modules/Module.js?v2.1
// @require modules/SpawnkillBase.js?v2.1
// @require modules/Settings.js?v2.1
// @require modules/Quote.js?v2.1
// @require modules/Shortcuts.js?v2.1
// @require modules/InfosPseudo.js?v2.1
// @require modules/HilightNewTopic.js?v2.1
// @require modules/LastPage.js?v2.1
// @require modules/EmbedMedia.js?v2.1
// @require modules/WarnOnNewPost.js?v2.1
// @require modules/AutoUpdate.js?v2.1
// @require modules/PemtHighlight.js?v2.1
// @require modules/BetterSurveys.js?v2.1
// @require modules/Usability.js?v2.1
// @resource close images/close.png
// @resource banImage images/ban.png
// @resource newTopic images/new-topic.png
// @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 anchor images/anchor.png
// @resource quote images/quote.png
// @resource mp images/mp.png
// @resource alert images/alert.png
// @resource link-gray images/link-gray.png
// @resource search-topics images/search-topics.png
// @resource calendar images/calendar.png
// @resource clock images/clock.png
// @resource crown images/crown.png
// @resource settings images/settings.png
// @resource youtube images/youtube.png
// @resource vimeo images/vimeo.png
// @resource vine images/vine.png
// @resource dailymotion images/dailymotion.png
// @resource sondageio images/sondageio.png
// @resource image images/image.png
// @resource vocaroo images/vocaroo.png
// @resource loader images/loader.gif
// @resource big-loader images/big-loader.gif
// @resource error images/error.png
// @resource tweet images/tweet.png
// @resource tweet-mini images/tweet-mini.png
// @resource pogo images/pogo.png
// @resource s images/s.png
// @resource cross images/cross.png
// @resource notification audio/notification.ogg
// @grant GM_xmlhttpRequest
// @grant GM_getResourceURL
// @grant GM_setClipboard
// @grant GM_addStyle
// @run-at document-start
// ==/UserScript==
"use strict";
/* jshint unused: false */
/* jshint multistr: true */
/* jshint newcap: false */
SK.VERSION = "v2.1";
var inIframe = window.top !== window.self;
// On ne charge pas le script dans les iframes
if (!inIframe) {
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 activé
if (module.required || moduleSettings === null || moduleSettings) {
//On autorise le module à exécuter du code avant le chargement du CSS
module.beforeInit();
//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() {
var initModule = function(module) {
module.internal_init();
};
if ($(".stats").length > 0) {
clearInterval(checkDomReady);
//On initialise les modules actifs
for (var key in SK.modules) {
if (SK.modules[key].activated) {
initModule(SK.modules[key]);
}
}
}
}, 50);
}
// Dans certains cas particuliers, on a besoin d'exécuter un peu de code dans une iframe
else {
// On masque l'header, le footer et le bouton de feedback sur les CDV ouvertes dans les iframes
if (window.location.href.match(/https?:\/\/www\.jeuxvideo\.com\/profil/)) {
SK.Util.addCss("\
header,\
footer,\
#jv-feedback {\
display: none !important;\
}\
");
}
// Sur la page de recherche, on ne conserve que les résultats
else if (window.location.href.match(/https?:\/\/www\.jeuxvideo\.com\/recherche\/forums/)) {
// On supprime tous les scripts
$("script").remove();
SK.Util.addCss("\
body {\
overflow-x: hidden !important;\
}\
.forum-main-col {\
width: 100%\
}\
.conteneur-topic-pagi {\
border: none;\
}\
.container-content {\
min-height: 0px !important;\
}\
#content {\
padding: 0px !important;\
}\
.bloc-pre-left,\
.titre-head-bloc,\
.bloc-fil-ariane-crumb-forum,\
#forum-right-col,\
#prospect,\
#jv-feedback,\
header,\
footer {\
display: none !important;\
}\
.bloc-pre-pagi-forum {\
text-align: left;\
}\
");
}
}