import net.pterodactylus.sone.data.Image;
import net.pterodactylus.sone.data.Post;
import net.pterodactylus.sone.data.PostReply;
+import net.pterodactylus.sone.data.Profile;
import net.pterodactylus.sone.data.Reply;
import net.pterodactylus.sone.data.Sone;
import net.pterodactylus.sone.freenet.L10nFilter;
import net.pterodactylus.sone.template.JavascriptFilter;
import net.pterodactylus.sone.template.ParserFilter;
import net.pterodactylus.sone.template.PostAccessor;
+import net.pterodactylus.sone.template.ProfileAccessor;
import net.pterodactylus.sone.template.ReplyAccessor;
import net.pterodactylus.sone.template.ReplyGroupFilter;
import net.pterodactylus.sone.template.RequestChangeFilter;
import net.pterodactylus.util.web.StaticPage;
import net.pterodactylus.util.web.TemplatePage;
import freenet.clients.http.SessionManager;
+import freenet.clients.http.SessionManager.Session;
import freenet.clients.http.ToadletContainer;
import freenet.clients.http.ToadletContext;
-import freenet.clients.http.SessionManager.Session;
import freenet.l10n.BaseL10n;
import freenet.support.api.HTTPRequest;
templateContextFactory.addAccessor(Identity.class, new IdentityAccessor(getCore()));
templateContextFactory.addAccessor(Trust.class, new TrustAccessor());
templateContextFactory.addAccessor(HTTPRequest.class, new HttpRequestAccessor());
+ templateContextFactory.addAccessor(Profile.class, new ProfileAccessor(getCore()));
templateContextFactory.addFilter("date", new DateFilter());
templateContextFactory.addFilter("html", new HtmlFilter());
templateContextFactory.addFilter("replace", new ReplaceFilter());
templateContextFactory.addFilter("store", new StoreFilter());
- templateContextFactory.addFilter("l10n", new L10nFilter(getL10n()));
+ templateContextFactory.addFilter("l10n", new L10nFilter(this));
templateContextFactory.addFilter("substring", new SubstringFilter());
templateContextFactory.addFilter("xml", new XmlFilter());
templateContextFactory.addFilter("change", new RequestChangeFilter());
templateContextFactory.addFilter("unknown", new UnknownDateFilter(getL10n(), "View.Sone.Text.UnknownDate"));
templateContextFactory.addFilter("format", new FormatFilter());
templateContextFactory.addFilter("sort", new CollectionSortFilter());
- templateContextFactory.addFilter("image-link", new ImageLinkFilter(templateContextFactory));
+ templateContextFactory.addFilter("image-link", new ImageLinkFilter(getCore(), templateContextFactory));
templateContextFactory.addFilter("replyGroup", new ReplyGroupFilter());
templateContextFactory.addFilter("in", new ContainsFilter());
templateContextFactory.addFilter("unique", new UniqueElementFilter());
Template emptyTemplate = TemplateParser.parse(new StringReader(""));
Template loginTemplate = TemplateParser.parse(createReader("/templates/login.html"));
Template indexTemplate = TemplateParser.parse(createReader("/templates/index.html"));
+ Template newTemplate = TemplateParser.parse(createReader("/templates/new.html"));
Template knownSonesTemplate = TemplateParser.parse(createReader("/templates/knownSones.html"));
Template createSoneTemplate = TemplateParser.parse(createReader("/templates/createSone.html"));
Template createPostTemplate = TemplateParser.parse(createReader("/templates/createPost.html"));
PageToadletFactory pageToadletFactory = new PageToadletFactory(sonePlugin.pluginRespirator().getHLSimpleClient(), "/Sone/");
pageToadlets.add(pageToadletFactory.createPageToadlet(new RedirectPage<FreenetRequest>("", "index.html")));
pageToadlets.add(pageToadletFactory.createPageToadlet(new IndexPage(indexTemplate, this), "Index"));
+ pageToadlets.add(pageToadletFactory.createPageToadlet(new NewPage(newTemplate, this), "New"));
pageToadlets.add(pageToadletFactory.createPageToadlet(new CreateSonePage(createSoneTemplate, this), "CreateSone"));
pageToadlets.add(pageToadletFactory.createPageToadlet(new KnownSonesPage(knownSonesTemplate, this), "KnownSones"));
pageToadlets.add(pageToadletFactory.createPageToadlet(new EditProfilePage(editProfileTemplate, this), "EditProfile"));
}
}
} catch (IOException ioe1) {
- logger.log(Level.WARNING, "Could not parse post text: " + text, ioe1);
+ logger.log(Level.WARNING, String.format("Could not parse post text: %s", text), ioe1);
}
return Filters.filteredSet(mentionedSones, Sone.LOCAL_SONE_FILTER);
}
if (!getMentionedSones(reply.getText()).isEmpty()) {
boolean isMentioned = false;
for (PostReply existingReply : getCore().getReplies(reply.getPost())) {
- isMentioned |= getCore().isNewReply(reply.getId()) && !getMentionedSones(existingReply.getText()).isEmpty();
+ isMentioned |= !reply.isKnown() && !getMentionedSones(existingReply.getText()).isEmpty();
}
if (!isMentioned) {
mentionNotification.remove(reply.getPost());
try {
return templateCache.get(templateName);
} catch (CacheException ce1) {
- logger.log(Level.WARNING, "Could not get template for " + templateName + "!", ce1);
+ logger.log(Level.WARNING, String.format("Could not get template for %s!", templateName), ce1);
return null;
}
}
try {
template = TemplateParser.parse(templateReader);
} catch (TemplateException te1) {
- logger.log(Level.WARNING, "Could not parse template “" + templateName + "” for inclusion!", te1);
+ logger.log(Level.WARNING, String.format("Could not parse template “%s” for inclusion!", templateName), te1);
}
return template;
}