Skip to content

Commit ee34487

Browse files
authored
v2.0.2: 换回老方法添加文件,FileSystem对火狐支持不好
1 parent 98687e0 commit ee34487

File tree

1 file changed

+15
-21
lines changed

1 file changed

+15
-21
lines changed

NGAEmojiManager.user.js

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// ==UserScript==
22
// @name NGA表情管理器
33
// @namespace https://github.com/jc3213
4-
// @version 2.0.1
4+
// @version 2.0.2
55
// @description 为NGA论坛添加/删除新表情
66
// @author jc3213
77
// @match *://bbs.nga.cn/thread.php?*
@@ -19,18 +19,7 @@
1919
// @grant GM_listValues
2020
// ==/UserScript==
2121

22-
let emojiPackage = GM_getValue('emoji');
23-
if (emojiPackage === undefined) {
24-
emojiPackage = GM_listValues().map((i) => {
25-
if (i === 'bookmark') return;
26-
let value = GM_getValue(i);
27-
GM_deleteValue(i);
28-
return [i, value];
29-
});
30-
GM_setValue('emoji', emojiPackage);
31-
}
32-
console.log(emojiPackage);
33-
let emojis = new Map(emojiPackage);
22+
let emojis = new Map(GM_getValue('emoji', []));
3423
let emojiUI = {};
3524
let emojiTab;
3625
let emojiPanel;
@@ -40,19 +29,24 @@ css.innerText = `.single_ttip2 img { max-height: 64px; }`
4029
document.head.append(css);
4130

4231
let manager = document.createElement('button');
43-
manager.innerText = '添加新表情';
32+
manager.textContent = '添加新表情';
4433
manager.className = 'block_txt_big';
45-
manager.addEventListener('click', async (event) => {
46-
let handles = await document.defaultView.showOpenFilePicker({ types: [ { description: 'JSON 文件', accept: { 'application/json': ['.json'] } } ], multiple: true });
47-
Promise.all(handles.map(async (handler) => {
48-
let file = await handler.getFile();
34+
manager.addEventListener('click', (event) => loader.click());
35+
36+
let loader = document.createElement('input');
37+
loader.type = 'file';
38+
loader.accept = '.json';
39+
loader.multiple = true;
40+
loader.addEventListener('change', (event) => {
41+
[...event.target.files].forEach(async (file) => {
4942
let text = await file.text();
5043
let { name, emoji, author } = JSON.parse(text);
5144
if (!name || !emoji) return;
5245
emojis.set(name, { author, emoji });
5346
GM_setValue('emoji', [...emojis]);
5447
printEmojiUI(name, author, emoji);
55-
}));
48+
});
49+
event.target.value = '';
5650
});
5751

5852
function printEmojiUI(name, author, emoji) {
@@ -64,12 +58,12 @@ function printEmojiUI(name, author, emoji) {
6458
function createEmojiUI(name, author, emoji) {
6559
let tab = document.createElement('button');
6660
tab.className = 'block_txt_big';
67-
tab.innerText = name;
61+
tab.textContent = name;
6862
tab.title = author ? '制作者: ' + author : '';
6963
manager.before(tab);
7064
let panel = document.createElement('div');
7165
emojiPanel.append(panel);
72-
tab.addEventListener('click', event => {
66+
tab.addEventListener('click', (event) => {
7367
if (event.ctrlKey && confirm('确定要删除表情包【'+ name + '】吗?')) {
7468
emojis.delete(name);
7569
GM_setValue('emoji', [...emojis]);

0 commit comments

Comments
 (0)