package plugins.CENO.Bridge.Signaling;
import java.io.IOException;
import plugins.CENO.Bridge.CENOBridge;
import plugins.CENO.Bridge.Signaling.PollingPuzzle.Puzzle;
import freenet.client.InsertException;
import freenet.client.async.PersistenceDisabledException;
import freenet.keys.FreenetURI;
import freenet.support.Logger;
import freenet.support.SimpleFieldSet;
public class ChannelMakerAnnouncer {
private String bridgeInsertURI;
private String pubAsymKey;
private Puzzle puzzle;
public ChannelMakerAnnouncer(String bridgeInsertURI, String pubAsymKey, Puzzle puzzle) {
this.bridgeInsertURI = bridgeInsertURI;
this.pubAsymKey = pubAsymKey;
this.puzzle = puzzle;
}
public void doAnnounce() throws IOException, InsertException {
SimpleFieldSet sfs = new SimpleFieldSet(false, true);
sfs.putOverwrite("pubkey", pubAsymKey);
sfs.putOverwrite("question", puzzle.getQuestion());
FreenetURI insertURIconfig = new FreenetURI(bridgeInsertURI);
FreenetURI announcementURI = new FreenetURI("USK", CENOBridge.ANNOUNCER_PATH, insertURIconfig.getRoutingKey(), insertURIconfig.getCryptoKey(), insertURIconfig.getExtra());
Logger.normal(ChannelMaker.class, "Inserting announcement freesite with USK: " + announcementURI.toString());
try {
CENOBridge.nodeInterface.insertSingleChunk(announcementURI, sfs.toOrderedString(), CENOBridge.nodeInterface.getVoidPutCallback(
"Successfully inserted Channel Maker Announcer page with URI: " + announcementURI, ""));
} catch (PersistenceDisabledException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}