Skip to content

Instantly share code, notes, and snippets.

@Piket95
Last active November 11, 2023 05:17
Show Gist options
  • Save Piket95/0ae5abde86fb0b9d56c313f642910905 to your computer and use it in GitHub Desktop.
Save Piket95/0ae5abde86fb0b9d56c313f642910905 to your computer and use it in GitHub Desktop.
Script to import the exported data to pom.moe
/* Sources:
- https://learn.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium/storage/indexeddb
- https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB?retiredLocale=de#adding_retrieving_and_removing_data
*/
var fileInput = document.createElement('input');
fileInput.type = 'file';
fileInput.addEventListener('change', (e) => {
const reader = new FileReader();
reader.onload = async (e) => {
var data = JSON.parse(e.target.result);
console.log('Open Database...');
var connection = indexedDB.open('pom_default');
connection.onsuccess = (e) => {
var db = e.target.result;
var transaction = db.transaction(['achievements', 'bannerSummary', 'beginner', 'character', 'items', 'lightcone', 'standard'], 'readwrite');
for (let [table, vals] of Object.entries(data.default)) {
var objectStore = transaction.objectStore(table);
console.log('Deleting previous data...');
objectStore.clear();
for (let value of vals) {
objectStore.add(value);
}
}
transaction.onsuccess = () => {
console.log('Import finished successfully!');
}
transaction.onerror = (e) => {
console.log('Import failed!');
console.error('Errorcode: ' + e.target.errorCode);
}
}
connection.onerror = (e) => {
console.log('Database can\'t be opened!');
console.error('Errorcode: ' + e.target.errorCode);
}
}
reader.readAsText(e.target.files[0]);
});
console.log('Open data file...')
fileInput.click();
@Piket95
Copy link
Author

Piket95 commented Nov 11, 2023

A script to re-import the JSON data that was exported from https://pom.moe.

Attention:
The script deletes all previous data stored in the browser database (IndexedDB). If you already have data on the website, export it beforehand!

Disclaimer:
Not official. There could also be errors in the script, but there were no problems in my tests. If you have any problems, please report them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment