fchat-rising/learn/store/queries/unknown-species.js

65 lines
1.7 KiB
JavaScript

(() => {
const conn = indexedDB.open('flist-ascending-profiles', 1);
conn.onsuccess = (e) => {
const db = e.target.result;
const txn = db.transaction('profiles', 'readonly');
const store = txn.objectStore('profiles');
const cursorReq = store.openCursor();
const records = [];
cursorReq.onsuccess = (ce) => {
const cursor = ce.target.result;
if (!cursor) {
return;
}
if (!cursor.value.species) {
const infotags = cursor.value.profileData.character.infotags;
if (infotags['9']) {
records.push(infotags['9'].string.toLowerCase().replace(/[^a-z0-9 \-\_]/g, '').trim());
}
}
cursor.continue();
};
txn.oncomplete = (te) => {
console.log('Found', records.length, 'records to download');
records.sort();
const finalData = _.join(
_.map(
_.groupBy(records),
(val, key) => (`${key}: ${val.length}`)
),
"\n"
);
const blob = new Blob([finalData], { type: 'plain/text;charset=utf-8;' });
const url = URL.createObjectURL(blob);
const el = document.createElement('a');
const d = new Date();
el.href = url;
el.download = `unknown-species.txt`;
document.body.appendChild(el);
el.click();
setTimeout(
() => {
document.body.removeChild(el);
window.URL.revokeObjectURL(url);
},
0
);
};
};
})();