잔글 (LiteHell2 사용자가 사용자:LiteHell2/common.js 문서를 넘겨주기를 만들지 않고 사용자:LiteHell2/keybaseInEmail.js 문서로 옮겼습니다: 개발 완료) |
편집 요약 없음 |
||
10번째 줄: | 10번째 줄: | ||
keybaseIdRow.innerHTML = '<td class="mw-label"><label for="input-keybase-id">Keybase 아이디</label></td><td class="mw-input"><input id="input-keybase-id" maxlength="100" title="암호화에 사용할 Keybase Id" type="text"></input></td>'; | keybaseIdRow.innerHTML = '<td class="mw-label"><label for="input-keybase-id">Keybase 아이디</label></td><td class="mw-input"><input id="input-keybase-id" maxlength="100" title="암호화에 사용할 Keybase Id" type="text"></input></td>'; | ||
document.querySelector('table tbody').insertBefore(keybaseIdRow, document.querySelector('table tr.mw-htmlform-field-HTMLTextAreaField')); | document.querySelector('table tbody').insertBefore(keybaseIdRow, document.querySelector('table tr.mw-htmlform-field-HTMLTextAreaField')); | ||
// 버튼 추가 | |||
var encryptBtn = document.createElement("input"); | |||
encryptBtn.className = "mw-htmlform-submit"; | |||
encryptBtn.setAttribute("type", "button"); | |||
encryptBtn.value = "암호화"; | |||
document.querySelector('span.mw-htmlform-submit-buttons').appendChild(encryptBtn); | |||
// 이벤트 핸들러 추가 | // 이벤트 핸들러 추가 | ||
encryptBtn.addEventListener('submit', function() { | |||
if (keybaseIdRow.querySelector('input').value.trim().length != 0) { | if (keybaseIdRow.querySelector('input').value.trim().length != 0) { | ||
// 키 불려오기 | // 키 불려오기 | ||
38번째 줄: | 45번째 줄: | ||
} | } | ||
} | } | ||
}); | }); | ||
})(); | })(); | ||
} | } |
2015년 9월 13일 (일) 23:46 판
if (mw.config.get('wgPageName') == "특수:이메일보내기") {
(function() {
if (document.querySelector('p.error')) return; // 오류시 종료
mw.loader.load('//www.librewiki.net/index.php?title=사용자:LiteHell2/kdpgp.js&action=raw&ctype=text/javascript');
// id 입력칸
var keybaseIdRow = document.createElement("tr");
keybaseIdRow.className = "mw-htmlform-field-HTMLTextField";
keybaseIdRow.innerHTML = '<td class="mw-label"><label for="input-keybase-id">Keybase 아이디</label></td><td class="mw-input"><input id="input-keybase-id" maxlength="100" title="암호화에 사용할 Keybase Id" type="text"></input></td>';
document.querySelector('table tbody').insertBefore(keybaseIdRow, document.querySelector('table tr.mw-htmlform-field-HTMLTextAreaField'));
// 버튼 추가
var encryptBtn = document.createElement("input");
encryptBtn.className = "mw-htmlform-submit";
encryptBtn.setAttribute("type", "button");
encryptBtn.value = "암호화";
document.querySelector('span.mw-htmlform-submit-buttons').appendChild(encryptBtn);
// 이벤트 핸들러 추가
encryptBtn.addEventListener('submit', function() {
if (keybaseIdRow.querySelector('input').value.trim().length != 0) {
// 키 불려오기
var req = new XMLHttpRequest();
req.open('GET', 'https://keybase.io/' + keybaseIdRow.querySelector('input').value + '/key.asc', false);
req.send(null);
if (req.status == 200) {
kbpgp.KeyManager.import_from_armored_pgp({
armored: req.responseText
}, function(err, alice) {
if (!err) {
var txtarea = document.querySelector('.mw-htmlform-field-HTMLTextAreaField textarea');
kbpgp.box({
msg: txtarea.value,
encrypt_for: alice
}, function(err, result_string, result_buffer) {
if (!err) {
txtarea.value = result_string;
} else {
alert('오류가 발생했습니다. 메세지를 그냥 보냅니다.');
}
});
}
});
}
}
});
})();
}