generic-skin 2.3.3 → 2.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/vueDefault.js +3 -3
- package/apps/vueDefault.min.js +1 -1
- package/frameworks/FNRFramework.js +219 -221
- package/frameworks/FNRFramework.min.js +1 -1
- package/general.js +12 -8
- package/general.min.js +1 -1
- package/package.json +1 -1
- package/frameworks/FMHelper.js +0 -279
- package/frameworks/FMHelper.min.js +0 -1
- package/plugins/customProfile.js +0 -39
- package/plugins/customProfile.min.js +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
const FNR = {
|
|
2
|
-
execFn:
|
|
2
|
+
execFn: (callback) => {
|
|
3
3
|
document.addEventListener('forumReady', callback, false);
|
|
4
4
|
},
|
|
5
5
|
forum: {
|
|
6
|
-
getColors:
|
|
6
|
+
getColors: () => {
|
|
7
7
|
return Object.values(forumColours)
|
|
8
8
|
.map((item) => {
|
|
9
9
|
return {
|
|
@@ -12,7 +12,7 @@ const FNR = {
|
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
14
|
},
|
|
15
|
-
|
|
15
|
+
getTopics: (array, limit) => {
|
|
16
16
|
return new Promise((resolve, reject) => {
|
|
17
17
|
const addContent = (elmt) => {
|
|
18
18
|
const titleElmnt = $(elmt).find('.topictitle');
|
|
@@ -40,7 +40,7 @@ const FNR = {
|
|
|
40
40
|
const getPage = (url) => {
|
|
41
41
|
$.get(url, (data) => {
|
|
42
42
|
$(data).find('.ipbform').find('tbody').find('tr').each(function() {
|
|
43
|
-
if (finalArray.length < limit &&
|
|
43
|
+
if (finalArray.length < limit && array.indexOf(parseInt($(this).find('.row2 + .row2:not(.centered) a').attr('href').split('/f')[1].split('-')[0])) === -1) {
|
|
44
44
|
addContent(this);
|
|
45
45
|
}
|
|
46
46
|
});
|
|
@@ -58,15 +58,15 @@ const FNR = {
|
|
|
58
58
|
getPage('/latest?change_version=invision');
|
|
59
59
|
});
|
|
60
60
|
},
|
|
61
|
-
getMembers:
|
|
61
|
+
getMembers: (option) => {
|
|
62
62
|
return new Promise((resolve, reject) => {
|
|
63
63
|
let members = [];
|
|
64
64
|
|
|
65
65
|
const getUserData = (user, color) => {
|
|
66
66
|
return {
|
|
67
|
-
user: $(user).find('.
|
|
68
|
-
id: $(user).find('.
|
|
69
|
-
img: $(user).find('.avatar
|
|
67
|
+
user: $(user).find('.membername span').text().trim(),
|
|
68
|
+
id: $(user).find('.popupmenu .popupmenu-item a').attr('href').split('?')[0],
|
|
69
|
+
img: $(user).find('.mini-avatar img').attr('src'),
|
|
70
70
|
color: color
|
|
71
71
|
};
|
|
72
72
|
};
|
|
@@ -74,13 +74,13 @@ const FNR = {
|
|
|
74
74
|
const getUsersPage = (page) => {
|
|
75
75
|
let users = [];
|
|
76
76
|
|
|
77
|
-
$(page).find('
|
|
78
|
-
const group = FNR.utility.getGroup($(this).find('.
|
|
77
|
+
$(page).find('.member-list .member').each(function() {
|
|
78
|
+
const group = FNR.utility.getGroup($(this).find('.membername span').attr('style').split('color:')[1]);
|
|
79
79
|
|
|
80
80
|
if (option) {
|
|
81
81
|
users.push(getUserData(this, group));
|
|
82
82
|
} else {
|
|
83
|
-
if (group !== 'unknown' && group !==
|
|
83
|
+
if (group !== 'unknown' && group !== forumConfig.skinOptions.adminGroup) {
|
|
84
84
|
users.push(getUserData(this, group));
|
|
85
85
|
}
|
|
86
86
|
}
|
|
@@ -110,7 +110,7 @@ const FNR = {
|
|
|
110
110
|
getPage('/memberlist?change_version=invision');
|
|
111
111
|
});
|
|
112
112
|
},
|
|
113
|
-
getGroups:
|
|
113
|
+
getGroups: (cache) => {
|
|
114
114
|
const getData = () => {
|
|
115
115
|
return new Promise((resolve, reject) => {
|
|
116
116
|
$.get('/groups?change_version=invision', (data) => {
|
|
@@ -122,7 +122,7 @@ const FNR = {
|
|
|
122
122
|
name: $(this).find('a').text().trim(),
|
|
123
123
|
color: $(this).find('a').css('color'),
|
|
124
124
|
url: Vue.filter('url-to-normal')($(this).find('a').attr('href')),
|
|
125
|
-
count: parseInt($(this).find('div > span').text())
|
|
125
|
+
count: parseInt($(this).find('div > span').text()) - 1
|
|
126
126
|
});
|
|
127
127
|
});
|
|
128
128
|
|
|
@@ -150,7 +150,7 @@ const FNR = {
|
|
|
150
150
|
|
|
151
151
|
return readGroupsCache();
|
|
152
152
|
},
|
|
153
|
-
getAffiliates:
|
|
153
|
+
getAffiliates: () => {
|
|
154
154
|
return new Promise((resolve, reject) => {
|
|
155
155
|
const tops = forumConfig.affiliatesMax;
|
|
156
156
|
|
|
@@ -177,111 +177,207 @@ const FNR = {
|
|
|
177
177
|
});
|
|
178
178
|
},
|
|
179
179
|
},
|
|
180
|
-
content: {
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
}
|
|
180
|
+
content: {
|
|
181
|
+
isAutosave: () => {
|
|
182
|
+
if (document.post === undefined) return false;
|
|
183
|
+
else return _userdata.user_id !== -1 && document.post.mode.value === 'reply' && document.post.t !== undefined
|
|
184
|
+
},
|
|
185
|
+
getPost: (url) => {
|
|
186
|
+
return new Promise((resolve, reject) => {
|
|
187
|
+
$.get(Vue.filter('url-to-invision')(url), (data) => {
|
|
188
|
+
const post = $(data).find("#p" + url.split("#")[1]);
|
|
189
|
+
|
|
190
|
+
resolve({
|
|
191
|
+
author: {
|
|
192
|
+
text: post.find(".author a").text(),
|
|
193
|
+
color: post.find(".author a span").css("color"),
|
|
194
|
+
url: Vue.filter('url-to-normal')(post.find(".author a").attr("href")),
|
|
195
|
+
},
|
|
196
|
+
content: post.find(".post-entry > div").html(),
|
|
197
|
+
date: post.find(".author").html().split("</a>")[1],
|
|
196
198
|
});
|
|
197
199
|
});
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
const self = data;
|
|
204
|
-
|
|
205
|
-
const processData = (data) => {
|
|
206
|
-
const getLast = (page) => {
|
|
207
|
-
return $(page).find('.post').parent().children().last().prev();
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
const check = getLast(data).find('.author a').text() !== '';
|
|
211
|
-
|
|
212
|
-
return {
|
|
213
|
-
author: {
|
|
214
|
-
text: (check) ? getLast(data).find('.author a').text() : 'Invitado',
|
|
215
|
-
color: (check) ? getLast(data).find('.author a span').css('color') : '#bdbdbd',
|
|
216
|
-
url: (check) ? getLast(data).find('.author a').attr('href').replace('?change_version=invision', '') : '#'
|
|
217
|
-
},
|
|
218
|
-
locate: {
|
|
219
|
-
text: $(data).find('#navstrip').find('li').last().text(),
|
|
220
|
-
url: $(data).find('#navstrip').find('li').last().find('a').attr('href').replace('?change_version=invision', '')
|
|
221
|
-
},
|
|
222
|
-
url: getLast(data).find('.postbody-head h3 a').attr('href').replace('?change_version=invision', ''),
|
|
223
|
-
content: getLast(data).find('.post-entry > div').html(),
|
|
224
|
-
date: (check) ? getLast(data).find('.author').html().split('</a>')[1].trim() : getLast(data).find('.author').html().split('Invitado')[1].trim()
|
|
225
|
-
};
|
|
226
|
-
};
|
|
200
|
+
});
|
|
201
|
+
},
|
|
202
|
+
genPost: (id, content) => {
|
|
203
|
+
return new Promise((resolve, reject) => {
|
|
204
|
+
let save = document.createElement('iframe');
|
|
227
205
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
206
|
+
save.id = 'forum-save';
|
|
207
|
+
save.src = '/post?t=' + id + '&mode=reply&change_version=invision';
|
|
208
|
+
save.width = 0;
|
|
209
|
+
save.height = 0;
|
|
210
|
+
save.onload = () => {
|
|
211
|
+
saveDOM.onload = () => {
|
|
212
|
+
$('#forum-save').remove();
|
|
213
|
+
|
|
214
|
+
console.clear();
|
|
215
|
+
|
|
216
|
+
resolve(true);
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
$('#forum-save').contents().find('.subtitle:contains("Mensaje")').next().find('textarea').val(content);
|
|
220
|
+
$('#forum-save').contents().find('.formbuttonrow.center input[value="Enviar"]').click();
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
document.querySelector('body > header').prepend(save);
|
|
224
|
+
|
|
225
|
+
const saveDOM = document.getElementById('forum-save');
|
|
226
|
+
});
|
|
227
|
+
},
|
|
228
|
+
genTopic: (id, name, content) => {
|
|
229
|
+
return new Promise((resolve, reject) => {
|
|
230
|
+
let save = document.createElement('iframe');
|
|
231
|
+
|
|
232
|
+
save.id = 'forum-save';
|
|
233
|
+
save.src = '/post?f=' + id + '&mode=newtopic&change_version=invision';
|
|
234
|
+
save.width = 0;
|
|
235
|
+
save.height = 0;
|
|
236
|
+
save.onload = () => {
|
|
237
|
+
saveDOM.onload = () => {
|
|
238
|
+
$('#forum-save').remove();
|
|
239
|
+
|
|
240
|
+
console.clear();
|
|
241
|
+
|
|
242
|
+
resolve(true);
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
$('#forum-save').contents().find('dl dt:contains("Título del tema")').parent().find('input').val(name);
|
|
246
|
+
$('#forum-save').contents().find('.subtitle:contains("Mensaje")').next().find('textarea').val(content);
|
|
247
|
+
$('#forum-save').contents().find('.formbuttonrow.center input[value="Enviar"]').click();
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
document.querySelector('body > header').prepend(save);
|
|
251
|
+
|
|
252
|
+
const saveDOM = document.getElementById('forum-save');
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
user: {
|
|
257
|
+
getUrl: (name) => {
|
|
258
|
+
let character =
|
|
259
|
+
name !== undefined ? encodeURIComponent(name)
|
|
260
|
+
.replace(/[!'()]/g, escape)
|
|
261
|
+
.replace(/\*/g, "%2A") :
|
|
262
|
+
_userdata.user_id;
|
|
263
|
+
|
|
264
|
+
return "/profile?mode=viewprofile&u=" + character;
|
|
265
|
+
},
|
|
266
|
+
getLevel: () => {
|
|
267
|
+
return new Promise((resolve, reject) => {
|
|
268
|
+
switch (_userdata.user_level) {
|
|
269
|
+
case 2:
|
|
270
|
+
resolve('mod');
|
|
271
|
+
case 1:
|
|
272
|
+
resolve('admin');
|
|
273
|
+
case 0:
|
|
274
|
+
return -1 == _userdata.user_id ? resolve('guest') : resolve('user');
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
},
|
|
278
|
+
getGroup: () => {
|
|
279
|
+
return new Promise((resolve, reject) => {
|
|
280
|
+
FNR.user.getLevel().then((status) => {
|
|
281
|
+
if (status === 'guest') {
|
|
282
|
+
resolve('unknown');
|
|
283
|
+
} else {
|
|
284
|
+
FNR.user.getProfile(_userdata.user_id, .25).then((data) => {
|
|
285
|
+
resolve(data['colour']);
|
|
286
|
+
});
|
|
287
|
+
}
|
|
236
288
|
});
|
|
237
|
-
}
|
|
289
|
+
});
|
|
238
290
|
},
|
|
239
|
-
|
|
240
|
-
|
|
291
|
+
getProfile: (name, time) => {
|
|
292
|
+
const character = name != undefined ? FNR.user.getUrl(name) : FNR.user.getUrl();
|
|
293
|
+
const cache = time || 5;
|
|
294
|
+
|
|
295
|
+
const processData = (content) => {
|
|
296
|
+
if (content.find('a').length) return Vue.filter('url-to-normal')(content.find('a').attr('href'));
|
|
297
|
+
else if (content.find('table').length) return content.find('table').html();
|
|
298
|
+
else if (content.find('img').length) return content.find('img').attr('src');
|
|
299
|
+
else if (content.find('textarea').length) return content.find('textarea').val();
|
|
300
|
+
else if (content.find('span').length) return content.find('span').text().trim();
|
|
301
|
+
else if (content.text().trim() === '-') return '';
|
|
302
|
+
else return content.text();
|
|
303
|
+
};
|
|
304
|
+
|
|
305
|
+
const getData = () => {
|
|
241
306
|
return new Promise((resolve, reject) => {
|
|
242
|
-
|
|
307
|
+
$.get(character + '&change_version=invision', (data) => {
|
|
308
|
+
let user = {};
|
|
243
309
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
save.onload = () => {
|
|
249
|
-
saveDOM.onload = () => {
|
|
250
|
-
$('#forum-save').remove();
|
|
310
|
+
user['name'] = $(data).find('.maintitle h1 span').text();
|
|
311
|
+
user['lastvisit'] = $(data).find('dt:contains("Última visita")').parent().find('dd').text();
|
|
312
|
+
user['colour'] = FNR.utility.getGroup($(data).find('.maintitle h1 span').css('color').replace('rgb(', 'rgb_').replace(/, /g, '_').replace(')', ''));
|
|
313
|
+
user['avatar'] = $(data).find('.real_avatar img').attr('src');
|
|
251
314
|
|
|
252
|
-
|
|
315
|
+
user['links'] = {
|
|
316
|
+
profile: '/u' + character.split('&u=')[1],
|
|
317
|
+
mp: '/privmsg?mode=post&u=' + character.split('&u=')[1],
|
|
318
|
+
};
|
|
253
319
|
|
|
254
|
-
|
|
320
|
+
user['messages'] = {
|
|
321
|
+
public: parseInt($(data).find('span:contains("Mensajes")').parent().parent().find('dd > div').text()) || 0,
|
|
322
|
+
private: parseInt($(data).find('dt:contains("Mensajes privados")').parent().find('dd').text()) || 0
|
|
255
323
|
};
|
|
256
324
|
|
|
257
|
-
|
|
258
|
-
$('#forum-save').contents().find('.subtitle:contains("Mensaje")').next().find('textarea').val(content);
|
|
259
|
-
$('#forum-save').contents().find('.formbuttonrow.center input[value="Enviar"]').click();
|
|
260
|
-
};
|
|
325
|
+
user['fields'] = {};
|
|
261
326
|
|
|
262
|
-
|
|
327
|
+
$(data).find('dl[id^="field_id"]').each(function() {
|
|
328
|
+
if ($(this).find('dt span').text() !== '') {
|
|
329
|
+
if ($(this).find('dt span').text() === 'Mensajes') return;
|
|
263
330
|
|
|
264
|
-
|
|
331
|
+
user.fields[FNR.utility.genSlug($(this).find('dt span').text())] = {
|
|
332
|
+
name: $(this).find('dt span').text(),
|
|
333
|
+
content: processData($(this).find('dd .field_uneditable'))
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
|
|
338
|
+
$(data).find('.ipbform2 > dl').each(function() {
|
|
339
|
+
if ($(this).find('dt span').length && $(this).find('dt span').text() !== '') {
|
|
340
|
+
if ($(this).find('dt span').text() === 'Mensajes') return;
|
|
341
|
+
|
|
342
|
+
user.fields[FNR.utility.genSlug($(this).find('dt span').text())] = {
|
|
343
|
+
name: $(this).find('dt span').text(),
|
|
344
|
+
content: processData($(this).find('dd'))
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
|
|
349
|
+
user.fields['rango'] = {
|
|
350
|
+
name: 'Rango',
|
|
351
|
+
content: $(data).find('dt:contains("Rango:")').parent().find('dd').text()
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
resolve(user);
|
|
355
|
+
});
|
|
265
356
|
});
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
const readUserCache = (dat) => {
|
|
360
|
+
const id = "userInfo" + dat;
|
|
361
|
+
|
|
362
|
+
return new Promise((resolve, reject) => {
|
|
363
|
+
FNR.cache.useData(id, cache).then(
|
|
364
|
+
(result) => {
|
|
365
|
+
resolve(result);
|
|
366
|
+
},
|
|
367
|
+
(err) => {
|
|
368
|
+
getData().then((data) => {
|
|
369
|
+
FNR.cache.setData(id, data);
|
|
370
|
+
|
|
371
|
+
resolve(data);
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
);
|
|
375
|
+
});
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
return readUserCache(name);
|
|
283
379
|
},
|
|
284
|
-
changeAccount:
|
|
380
|
+
changeAccount: (out, username, password) => {
|
|
285
381
|
return new Promise((resolve, reject) => {
|
|
286
382
|
let save = document.createElement('iframe');
|
|
287
383
|
|
|
@@ -311,16 +407,7 @@ const FNR = {
|
|
|
311
407
|
});
|
|
312
408
|
},
|
|
313
409
|
profile: {
|
|
314
|
-
|
|
315
|
-
let character =
|
|
316
|
-
name !== undefined ? encodeURIComponent(name)
|
|
317
|
-
.replace(/[!'()]/g, escape)
|
|
318
|
-
.replace(/\*/g, "%2A") :
|
|
319
|
-
_userdata.user_id;
|
|
320
|
-
|
|
321
|
-
return "/profile?mode=viewprofile&u=" + character;
|
|
322
|
-
},
|
|
323
|
-
getData: function(array) {
|
|
410
|
+
getData: (array) => {
|
|
324
411
|
return new Promise((resolve, reject) => {
|
|
325
412
|
$.get('/profile?change_version=invision&mode=editprofile', (data) => {
|
|
326
413
|
const fields = data;
|
|
@@ -385,7 +472,7 @@ const FNR = {
|
|
|
385
472
|
});
|
|
386
473
|
});
|
|
387
474
|
},
|
|
388
|
-
setData:
|
|
475
|
+
setData: (array) => {
|
|
389
476
|
return new Promise((resolve, reject) => {
|
|
390
477
|
const resolveSetter = () => {
|
|
391
478
|
$('#forum-save').remove();
|
|
@@ -449,96 +536,7 @@ const FNR = {
|
|
|
449
536
|
const saveDOM = document.getElementById('forum-save');
|
|
450
537
|
});
|
|
451
538
|
},
|
|
452
|
-
|
|
453
|
-
const character = name != undefined ? FNR.user.profile.getUrl(name) : FNR.user.profile.getUrl();
|
|
454
|
-
const cache = time || 5;
|
|
455
|
-
|
|
456
|
-
const processData = (content) => {
|
|
457
|
-
if (content.find('a').length) return Vue.filter('url-to-normal')(content.find('a').attr('href'));
|
|
458
|
-
else if (content.find('table').length) return content.find('table').html();
|
|
459
|
-
else if (content.find('img').length) return content.find('img').attr('src');
|
|
460
|
-
else if (content.find('textarea').length) return content.find('textarea').val();
|
|
461
|
-
else if (content.find('span').length) return content.find('span').text().trim();
|
|
462
|
-
else if (content.text().trim() === '-') return '';
|
|
463
|
-
else return content.text();
|
|
464
|
-
};
|
|
465
|
-
|
|
466
|
-
const getData = () => {
|
|
467
|
-
return new Promise((resolve, reject) => {
|
|
468
|
-
$.get(character + '&change_version=invision', (data) => {
|
|
469
|
-
let user = {};
|
|
470
|
-
|
|
471
|
-
user['name'] = $(data).find('.maintitle h1 span').text();
|
|
472
|
-
user['lastvisit'] = $(data).find('dt:contains("Última visita")').parent().find('dd').text();
|
|
473
|
-
user['colour'] = FNR.utility.getGroup($(data).find('.maintitle h1 span').css('color').replace('rgb(', 'rgb_').replace(/, /g, '_').replace(')', ''));
|
|
474
|
-
user['avatar'] = $(data).find('.real_avatar img').attr('src');
|
|
475
|
-
|
|
476
|
-
user['links'] = {
|
|
477
|
-
profile: '/u' + character.split('&u=')[1],
|
|
478
|
-
mp: '/privmsg?mode=post&u=' + character.split('&u=')[1],
|
|
479
|
-
};
|
|
480
|
-
|
|
481
|
-
user['messages'] = {
|
|
482
|
-
public: parseInt($(data).find('span:contains("Mensajes")').parent().parent().find('dd > div').text()) || 0,
|
|
483
|
-
private: parseInt($(data).find('dt:contains("Mensajes privados")').parent().find('dd').text()) || 0
|
|
484
|
-
};
|
|
485
|
-
|
|
486
|
-
user['fields'] = {};
|
|
487
|
-
|
|
488
|
-
$(data).find('dl[id^="field_id"]').each(function() {
|
|
489
|
-
if ($(this).find('dt span').text() !== '') {
|
|
490
|
-
if ($(this).find('dt span').text() === 'Mensajes') return;
|
|
491
|
-
|
|
492
|
-
user.fields[FNR.utility.genSlug($(this).find('dt span').text())] = {
|
|
493
|
-
name: $(this).find('dt span').text(),
|
|
494
|
-
content: processData($(this).find('dd .field_uneditable'))
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
});
|
|
498
|
-
|
|
499
|
-
$(data).find('.ipbform2 > dl').each(function() {
|
|
500
|
-
if ($(this).find('dt span').length && $(this).find('dt span').text() !== '') {
|
|
501
|
-
if ($(this).find('dt span').text() === 'Mensajes') return;
|
|
502
|
-
|
|
503
|
-
user.fields[FNR.utility.genSlug($(this).find('dt span').text())] = {
|
|
504
|
-
name: $(this).find('dt span').text(),
|
|
505
|
-
content: processData($(this).find('dd'))
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
});
|
|
509
|
-
|
|
510
|
-
user.fields['rango'] = {
|
|
511
|
-
name: 'Rango',
|
|
512
|
-
content: $(data).find('dt:contains("Rango:")').parent().find('dd').text()
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
resolve(user);
|
|
516
|
-
});
|
|
517
|
-
});
|
|
518
|
-
};
|
|
519
|
-
|
|
520
|
-
const readUserCache = (dat) => {
|
|
521
|
-
const id = "userInfo" + dat;
|
|
522
|
-
|
|
523
|
-
return new Promise((resolve, reject) => {
|
|
524
|
-
FNR.cache.useData(id, cache).then(
|
|
525
|
-
(result) => {
|
|
526
|
-
resolve(result);
|
|
527
|
-
},
|
|
528
|
-
(err) => {
|
|
529
|
-
getData().then((data) => {
|
|
530
|
-
FNR.cache.setData(id, data);
|
|
531
|
-
|
|
532
|
-
resolve(data);
|
|
533
|
-
});
|
|
534
|
-
}
|
|
535
|
-
);
|
|
536
|
-
});
|
|
537
|
-
};
|
|
538
|
-
|
|
539
|
-
return readUserCache(name);
|
|
540
|
-
},
|
|
541
|
-
getDrafts: function() {
|
|
539
|
+
getDrafts: () => {
|
|
542
540
|
return new Promise((resolve, reject) => {
|
|
543
541
|
$.get('/search?search_id=draftsearch&change_version=invision', (data) => {
|
|
544
542
|
if (parseFloat($(data).find('.maintitle > h3').text()) !== 0) {
|
|
@@ -570,7 +568,11 @@ const FNR = {
|
|
|
570
568
|
}
|
|
571
569
|
},
|
|
572
570
|
cache: {
|
|
573
|
-
|
|
571
|
+
getData: (id) => {
|
|
572
|
+
if (localStorage.getItem(forumData.prefix + '_' + id) === null) return false;
|
|
573
|
+
else return JSON.parse(localStorage.getItem(forumData.prefix + '_' + id)).content;
|
|
574
|
+
},
|
|
575
|
+
setData: (id, data, time) => {
|
|
574
576
|
let cur_date = time === -1 ? 'undefined' : new Date().getTime();
|
|
575
577
|
|
|
576
578
|
localStorage.setItem(
|
|
@@ -581,15 +583,11 @@ const FNR = {
|
|
|
581
583
|
})
|
|
582
584
|
);
|
|
583
585
|
},
|
|
584
|
-
|
|
585
|
-
if (localStorage.getItem(forumData.prefix + '_' + id) === null) return false;
|
|
586
|
-
else return JSON.parse(localStorage.getItem(forumData.prefix + '_' + id)).content;
|
|
587
|
-
},
|
|
588
|
-
delData: function(id) {
|
|
586
|
+
delData: (id) => {
|
|
589
587
|
if (localStorage.getItem(forumData.prefix + '_' + id) === null) return false;
|
|
590
588
|
else return localStorage.removeItem(forumData.prefix + '_' + id);
|
|
591
589
|
},
|
|
592
|
-
useData:
|
|
590
|
+
useData: (id, time) => {
|
|
593
591
|
return new Promise((resolve, reject) => {
|
|
594
592
|
let item = localStorage.getItem(forumData.prefix + '_' + id),
|
|
595
593
|
cur_date = new Date(),
|
|
@@ -604,7 +602,7 @@ const FNR = {
|
|
|
604
602
|
},
|
|
605
603
|
},
|
|
606
604
|
utility: {
|
|
607
|
-
genSlug:
|
|
605
|
+
genSlug: (text, alt) => {
|
|
608
606
|
const slug = (Q) => {
|
|
609
607
|
const R = '\xE0\xE1\xE4\xE2\xE8\xE9\xEB\xEA\xEC\xED\xEF\xEE\xF2\xF3\xF6\xF4\xF9\xFA\xFC\xFB\xF1\xE7\xB7/_,:;';
|
|
610
608
|
Q = Q.trim().toLowerCase();
|
|
@@ -616,10 +614,10 @@ const FNR = {
|
|
|
616
614
|
|
|
617
615
|
return slug(text).replace(/-/g, replace);
|
|
618
616
|
},
|
|
619
|
-
genArray:
|
|
617
|
+
genArray: (string) => {
|
|
620
618
|
return JSON.parse(string.replace(/`/g, '"'));
|
|
621
619
|
},
|
|
622
|
-
genValidation:
|
|
620
|
+
genValidation: (array) => {
|
|
623
621
|
let final = '';
|
|
624
622
|
|
|
625
623
|
[].forEach.call(array, (item) => {
|
|
@@ -640,7 +638,7 @@ const FNR = {
|
|
|
640
638
|
|
|
641
639
|
return final;
|
|
642
640
|
},
|
|
643
|
-
getGroup:
|
|
641
|
+
getGroup: (color) => {
|
|
644
642
|
const returnHexVer = (code) => {
|
|
645
643
|
let status = 'unknown';
|
|
646
644
|
|
|
@@ -669,7 +667,7 @@ const FNR = {
|
|
|
669
667
|
}
|
|
670
668
|
},
|
|
671
669
|
html: {
|
|
672
|
-
genModal:
|
|
670
|
+
genModal: (title, content, buttons) => {
|
|
673
671
|
if (title === '' || title === undefined || title === null) return;
|
|
674
672
|
if (content === '' || content === undefined || content === null) return;
|
|
675
673
|
|
|
@@ -706,7 +704,7 @@ const FNR = {
|
|
|
706
704
|
|
|
707
705
|
document.getElementById('forum-modal').innerHTML = final;
|
|
708
706
|
},
|
|
709
|
-
genPrompt:
|
|
707
|
+
genPrompt: (title, content, placeholder, text) => {
|
|
710
708
|
if (title === '' || title === undefined || title === null) return;
|
|
711
709
|
if (content === '' || content === undefined || content === null) return;
|
|
712
710
|
|
|
@@ -741,7 +739,7 @@ const FNR = {
|
|
|
741
739
|
};
|
|
742
740
|
});
|
|
743
741
|
},
|
|
744
|
-
genNotification:
|
|
742
|
+
genNotification: (title, content, icon, url) => {
|
|
745
743
|
if (title === '' || title === undefined || title === null) return;
|
|
746
744
|
if (content === '' || content === undefined || content === null) return;
|
|
747
745
|
if (content.length > 50) return;
|
|
@@ -799,7 +797,7 @@ const FNR = {
|
|
|
799
797
|
}
|
|
800
798
|
},
|
|
801
799
|
behaviour: {
|
|
802
|
-
genWiki:
|
|
800
|
+
genWiki: () => {
|
|
803
801
|
if (document.querySelector('.wiki-cascade')) {
|
|
804
802
|
[].forEach.call(document.getElementsByClassName('wiki-cascade'), (item) => {
|
|
805
803
|
item.onclick = () => {
|
|
@@ -843,7 +841,7 @@ const FNR = {
|
|
|
843
841
|
};
|
|
844
842
|
}
|
|
845
843
|
},
|
|
846
|
-
genDropeable:
|
|
844
|
+
genDropeable: () => {
|
|
847
845
|
if (document.querySelector('.is-dropeable')) {
|
|
848
846
|
[].forEach.call(document.getElementsByClassName('is-dropeable'), (item) => {
|
|
849
847
|
item.onclick = () => {
|