Does things...
目前為
// ==UserScript==
// @name HIT Database Backup
// @namespace https://github.com/Kadauchi
// @version 1.0.0
// @description Does things...
// @author Kadauchi
// @icon http://i.imgur.com/oGRQwPN.png
// @include https://www.mturk.com/hitdb
// ==/UserScript==
document.body.innerHTML = `generating hit_database.json.... please wait`;
let hitdb;
const request = window.indexedDB.open(`HITDB`);
request.onsuccess = (event) => {
hitdb = event.target.result;
generateFile();
};
request.onupgradeneeded = (event) => {
document.body.innerHTML = `no hit database found`;
};
request.onerror = (event) => {
document.body.innerHTML = `error: something went wrong`;
};
async function generateFile() {
const data = JSON.stringify({
HIT: await getObjectStore(`HIT`),
STATS: await getObjectStore(`STATS`),
NOTES: await getObjectStore(`NOTES`)
});
const exportFile = document.createElement(`a`);
exportFile.href = window.URL.createObjectURL(new Blob([data], { type: `application/json` }));
exportFile.download = `hit_database.json`;
exportFile.click();
document.body.innerHTML = `hit_database.json.... downloaded`;
}
function getObjectStore(name) {
return new Promise((resolve) => {
try {
const transaction = hitdb.transaction([name], `readonly`);
const objectStore = transaction.objectStore(name);
objectStore.getAll().onsuccess = (event) => {
resolve(event.target.result);
};
}
catch (error) {
resolve();
}
});
}