/* * WoTNS - ResolverPage.java - Copyright © 2011 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 * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package net.pterodactylus.wotns.ui.web; import java.net.MalformedURLException; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContext; import net.pterodactylus.wotns.main.Resolver; import net.pterodactylus.wotns.web.FreenetRequest; import freenet.keys.FreenetURI; /** * TODO * * @author David ‘Bombe’ Roden */ public class ResolverPage extends BasicPage { private final Resolver resolver; public ResolverPage(Template unknownNameTemplate, WebInterface webInterface, Resolver resolver) { super(webInterface, "", "Error - Web of Trust Name Service", unknownNameTemplate); this.resolver = resolver; } // // PAGE METHODS // /** * {@inheritDoc} */ @Override public boolean isPrefixPage() { return true; } // // FREENETTEMPLATEPAGE METHODS // /** * {@inheritDoc} */ @Override protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException { String uri = request.getUri().getPath(); String path = uri.substring(uri.indexOf('/', 1) + 1); /* look for path after target. */ int firstSlash = path.indexOf('/'); int secondSlash = path.indexOf('/', firstSlash + 1); String filePath = ""; if (secondSlash != -1) { filePath = path.substring(secondSlash); path = path.substring(0, secondSlash); } try { FreenetURI targetUri = resolver.resolveURI(path); if (targetUri != null) { throw new RedirectException("/" + targetUri.toString() + filePath); } } catch (MalformedURLException mue1) { /* TODO - do something. */ } templateContext.set("shortName", path); } }