X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FRescuePage.java;h=1ba86e965cce1835b103613ebe03c61eb864f5eb;hb=01e37a5196463006ce4ce4e1f505971af794817f;hp=f653615ab6b3fe0495b263de679119abe0bbc473;hpb=38cb6c5ec82298ee351d0eb15ddd8331db273af2;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/RescuePage.java b/src/main/java/net/pterodactylus/sone/web/RescuePage.java index f653615..1ba86e9 100644 --- a/src/main/java/net/pterodactylus/sone/web/RescuePage.java +++ b/src/main/java/net/pterodactylus/sone/web/RescuePage.java @@ -1,5 +1,5 @@ /* - * Sone - RescuePage.java - Copyright © 2011 David Roden + * Sone - RescuePage.java - Copyright © 2011–2013 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,12 +17,17 @@ package net.pterodactylus.sone.web; +import static net.pterodactylus.sone.utils.NumberParsers.parseLong; + +import java.util.Arrays; +import java.util.Collections; + import net.pterodactylus.sone.core.SoneRescuer; -import net.pterodactylus.sone.data.Sone; +import net.pterodactylus.sone.data.LocalSone; import net.pterodactylus.sone.web.page.FreenetRequest; -import net.pterodactylus.util.number.Numbers; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContext; +import net.pterodactylus.util.web.Header; import net.pterodactylus.util.web.Method; /** @@ -55,11 +60,11 @@ public class RescuePage extends SoneTemplatePage { @Override protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException { super.processTemplate(request, templateContext); - Sone currentSone = getCurrentSone(request.getToadletContext(), false); + LocalSone currentSone = getCurrentSone(request.getToadletContext(), false).get(); SoneRescuer soneRescuer = webInterface.getCore().getSoneRescuer(currentSone); if (request.getMethod() == Method.POST) { if ("true".equals(request.getHttpRequest().getPartAsStringFailsafe("fetch", 4))) { - long edition = Numbers.safeParseLong(request.getHttpRequest().getPartAsStringFailsafe("edition", 8), -1L); + long edition = parseLong(request.getHttpRequest().getPartAsStringFailsafe("edition", 8), -1L); if (edition > -1) { soneRescuer.setEdition(edition); } @@ -70,4 +75,16 @@ public class RescuePage extends SoneTemplatePage { templateContext.set("soneRescuer", soneRescuer); } + @Override + protected Iterable
getAdditionalHeaders(FreenetRequest request) { + LocalSone currentSone = getCurrentSone(request.getToadletContext(), false).get(); + SoneRescuer soneRescuer = webInterface.getCore().getSoneRescuer(currentSone); + if ((request.getMethod() == Method.GET) && soneRescuer.isFetching()) { + final Header header = new Header("Refresh"); + header.addValue("5; url=rescue.html"); + return Arrays.asList(header); + } + return Collections.emptyList(); + } + }