Package freenet.clients.http

Source Code of freenet.clients.http.DarknetAddRefToadlet

package freenet.clients.http;

import java.io.File;
import java.io.IOException;
import java.net.URI;

import freenet.client.HighLevelSimpleClient;
import freenet.l10n.NodeL10n;
import freenet.node.Node;
import freenet.node.updater.NodeUpdateManager;
import freenet.support.HTMLNode;
import freenet.support.SimpleFieldSet;
import freenet.support.api.HTTPRequest;
import freenet.support.io.FileBucket;

public class DarknetAddRefToadlet extends Toadlet {

  private final Node node;
  private final DarknetConnectionsToadlet friendsToadlet;
 
  protected DarknetAddRefToadlet(Node n, HighLevelSimpleClient client, DarknetConnectionsToadlet friendsToadlet) {
    super(client);
    this.node = n;
    this.friendsToadlet = friendsToadlet;
  }

  public void handleMethodGET(URI uri, final HTTPRequest request, ToadletContext ctx) throws ToadletContextClosedException, IOException, RedirectException {
        if(!ctx.checkFullAccess(this))
            return;
   
    String path = uri.getPath();
    if(path.endsWith(NodeUpdateManager.WINDOWS_FILENAME)) {
      File installer = node.nodeUpdater.getInstallerWindows();
      if(installer != null) {
        FileBucket bucket = new FileBucket(installer, true, false, false, false);
        this.writeReply(ctx, 200, "application/x-msdownload", "OK", bucket);
        return;
      }
    }
   
    if(path.endsWith(NodeUpdateManager.NON_WINDOWS_FILENAME)) {
      File installer = node.nodeUpdater.getInstallerNonWindows();
      if(installer != null) {
        FileBucket bucket = new FileBucket(installer, true, false, false, false);
        this.writeReply(ctx, 200, "application/x-java-archive", "OK", bucket);
        return;
      }
    }
   
    PageMaker pageMaker = ctx.getPageMaker();
   
    PageNode page = pageMaker.getPageNode(l10n("title"), ctx);
    HTMLNode pageNode = page.outer;
    HTMLNode contentNode = page.content;
   
    contentNode.addChild(ctx.getAlertManager().createSummary());
   
    HTMLNode boxContent = pageMaker.getInfobox("infobox-information", l10n("explainBoxTitle"), contentNode, "darknet-explanations", true);
    boxContent.addChild("p", l10n("explainBox1"));
    boxContent.addChild("p", l10n("explainBox2"));
       
    File installer = node.nodeUpdater.getInstallerWindows();
    String shortFilename = NodeUpdateManager.WINDOWS_FILENAME;
   
    HTMLNode p = boxContent.addChild("p");
   
    if(installer != null)
      NodeL10n.getBase().addL10nSubstitution(p, "DarknetAddRefToadlet.explainInstallerWindows", new String[] { "filename", "get-windows" },
          new HTMLNode[] { HTMLNode.text(installer.getCanonicalPath()), HTMLNode.link(path()+shortFilename) });
    else
      NodeL10n.getBase().addL10nSubstitution(p, "DarknetAddRefToadlet.explainInstallerWindowsNotYet", new String[] { "link" }, new HTMLNode[] { HTMLNode.link("/"+node.nodeUpdater.getInstallerWindowsURI().toString()) });
   
    installer = node.nodeUpdater.getInstallerNonWindows();
    shortFilename = NodeUpdateManager.NON_WINDOWS_FILENAME;
   
    boxContent.addChild("#", " ");
   
    p = boxContent.addChild("p");
   
    if(installer != null)
      NodeL10n.getBase().addL10nSubstitution(p, "DarknetAddRefToadlet.explainInstallerNonWindows", new String[] { "filename", "get-nonwindows", "shortfilename" },
          new HTMLNode[] { HTMLNode.text(installer.getCanonicalPath()), HTMLNode.link(path()+shortFilename), HTMLNode.text(shortFilename) });
    else
      NodeL10n.getBase().addL10nSubstitution(p, "DarknetAddRefToadlet.explainInstallerNonWindowsNotYet", new String[] { "link", "shortfilename" }, new HTMLNode[] { HTMLNode.link("/"+node.nodeUpdater.getInstallerNonWindowsURI().toString()), HTMLNode.text(shortFilename) });
     
   
    ConnectionsToadlet.drawAddPeerBox(contentNode, ctx, false, friendsToadlet.path());
   
    friendsToadlet.drawNoderefBox(contentNode, getNoderef(), pageMaker.advancedMode(request, this.container));
   
    this.writeHTMLReply(ctx, 200, "OK", pageNode.generate());
  }

  protected SimpleFieldSet getNoderef() {
    return node.exportDarknetPublicFieldSet();
  }
 
  private static String l10n(String string) {
    return NodeL10n.getBase().getString("DarknetAddRefToadlet."+string);
  }

  static final String PATH = "/addfriend/";

  @Override
  public String path() {
    return PATH;
  }
}
TOP

Related Classes of freenet.clients.http.DarknetAddRefToadlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.