Allow retrying multiworld generation

This commit is contained in:
2026-01-18 01:29:23 -06:00
parent 9f100da58f
commit 2110461bda
2 changed files with 28 additions and 7 deletions

View File

@@ -10,6 +10,7 @@ export default defineComponent({
multidata: null, multidata: null,
worlds: {}, worlds: {},
error: null, error: null,
retry: false,
}; };
}, },
props: { props: {
@@ -25,6 +26,20 @@ export default defineComponent({
}, },
}, },
methods: { methods: {
async retryGeneration() {
await axios.post(`/multi/${this.id}`, {}, {
headers: {
"Content-Type": "text/plain",
}
})
.then(response => {
this.$router.go();
})
.catch(error => {
console.log(error);
this.$router.go();
});
},
async fetchMulti() { async fetchMulti() {
await axios.get(`/multi/${this.id}`) await axios.get(`/multi/${this.id}`)
.then(response => { .then(response => {
@@ -40,6 +55,9 @@ export default defineComponent({
if (error.response?.status == 409) { if (error.response?.status == 409) {
// still generating, try again // still generating, try again
setTimeout(this.fetchMulti.bind(this), 10000); setTimeout(this.fetchMulti.bind(this), 10000);
} else if (error.response?.data?.retry) {
this.error = "Multiworld generation failed. :(";
this.retry = true;
} else { } else {
this.error = "Multiworld not found. :("; this.error = "Multiworld not found. :(";
} }
@@ -76,6 +94,11 @@ export default defineComponent({
</div> </div>
<div v-else-if="error" class="error-message"> <div v-else-if="error" class="error-message">
{{ error }} {{ error }}
<div v-if="retry">
<button type="submit" class="btn btn-primary submit-btn" @click="retryGeneration">
Retry
</button>
</div>
</div> </div>
<div v-else> <div v-else>
<img class="center" src="/bludormspinbig.gif" /> <img class="center" src="/bludormspinbig.gif" />

View File

@@ -80,7 +80,7 @@ export default defineComponent({
async retryGeneration() { async retryGeneration() {
await axios.post(`/seed/${this.id}`, {}, { await axios.post(`/seed/${this.id}`, {}, {
headers: { headers: {
"Content-Type": "text/pain", "Content-Type": "text/plain",
} }
}) })
.then(response => { .then(response => {
@@ -124,13 +124,11 @@ export default defineComponent({
if (error.response?.status == 409) { if (error.response?.status == 409) {
// still generating, try again // still generating, try again
setTimeout(this.fetchSeed.bind(this), 2000); setTimeout(this.fetchSeed.bind(this), 2000);
} else if (error.response?.data?.retry) {
this.error = "Seed generation failed. :(";
this.retry = true;
} else { } else {
if (error.response?.data?.retry) { this.error = "Seed not found. :(";
this.error = "Seed generation failed. :(";
this.retry = true;
} else {
this.error = "Seed not found. :(";
}
} }
}); });
}, },