Add simple import of data from non-core asphyxia

This commit is contained in:
cracrayol 2020-12-12 23:44:01 +01:00
parent 10207c1044
commit 7fcd3024c1
5 changed files with 95 additions and 28 deletions

View File

@ -12,7 +12,3 @@ Changelog
1.0.0
-----
Initial Release.
TODO
====
- Import of old Asphyxia data

View File

@ -0,0 +1,33 @@
import { Profile } from "../models/profile";
import { Scores } from "../models/scores";
export const importPnmData = async (data: {
refid: string;
profile: string;
scores: string;
}) => {
const profile = JSON.parse(data.profile);
const scores = JSON.parse(data.scores);
await DB.Update<Profile>(
data.refid,
{ collection: 'profile' },
{
$set: {
...profile
}
}
);
await DB.Upsert<Scores>(
data.refid,
{ collection: 'scores' },
{
$set: {
scores: {
...scores
}
}
}
);
};

View File

@ -1,9 +1,12 @@
import { getInfo } from "./handler/common";
import { newPlayer, read, readScore, start, writeMusic, write, buy} from "./handler/player"
import { newPlayer, read, readScore, start, writeMusic, write, buy } from "./handler/player";
import { importPnmData } from "./handler/webui";
export function register() {
R.GameCode('M39');
R.WebUIEvent('importPnmData', importPnmData);
const PlayerRoute = (method: string, handler: EPR | boolean) => {
R.Route(`player24.${method}`, handler);
R.Route(`player23.${method}`, handler);

View File

@ -0,0 +1,11 @@
$('#import-click').on('click', () => {
data = {
refid: $('#refid').val(),
profile: $('#profile').val(),
scores: $('#scores').val()
}
emit('importPnmData', data).then(() => {
$('#import-success').removeClass("is-hidden");
});
});

View File

@ -0,0 +1,24 @@
div
div.notification.is-success.is-hidden#import-success
.field
label.label.is-small Data imported
.card
.card-header
p.card-header-title
span.icon
i.mdi.mdi-account-edit
| Import data
.card-content
input(type="hidden" id="refid" name="refid" value=refid)
.field
label.label Import data from previous Asphyxia (non-core)
.field
input.input(type="text" id="profile" name="profile" placeholder="Put content of popn.json")
.field
input.input(type="text" id="scores" name="scores" placeholder="Put content of popn_scores.json")
.field
label.help.is-danger /!\ Please backup your savedata.db before importing data /!\
.field
button.button.is-primary#import-click Import
script(src="static/js/profile_page.js")