X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FWebInterface.java;h=0b25ccd81841e26fe60f5b0e5660c9bc19ea6b08;hb=6940f7d3df4f6164bfc69a9393a0f5796627b880;hp=6401b435a8a4ad211f3a25940c617b2e1a2c8656;hpb=626a2e839efe6c5c912bc6efa1a0cc6c9c8576c2;p=Sone.git
diff --git a/src/main/java/net/pterodactylus/sone/web/WebInterface.java b/src/main/java/net/pterodactylus/sone/web/WebInterface.java
index 6401b43..0b25ccd 100644
--- a/src/main/java/net/pterodactylus/sone/web/WebInterface.java
+++ b/src/main/java/net/pterodactylus/sone/web/WebInterface.java
@@ -1,5 +1,5 @@
/*
- * Sone - WebInterface.java - Copyright © 2010â2016 David Roden
+ * Sone - WebInterface.java - Copyright © 2010â2019 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
@@ -72,11 +72,11 @@ import net.pterodactylus.sone.freenet.L10nFilter;
import net.pterodactylus.sone.freenet.wot.Identity;
import net.pterodactylus.sone.freenet.wot.Trust;
import net.pterodactylus.sone.main.Loaders;
+import net.pterodactylus.sone.main.PluginHomepage;
+import net.pterodactylus.sone.main.PluginVersion;
+import net.pterodactylus.sone.main.PluginYear;
import net.pterodactylus.sone.main.ReparseFilter;
import net.pterodactylus.sone.main.SonePlugin;
-import net.pterodactylus.sone.main.SonePlugin.PluginHomepage;
-import net.pterodactylus.sone.main.SonePlugin.PluginVersion;
-import net.pterodactylus.sone.main.SonePlugin.PluginYear;
import net.pterodactylus.sone.notify.ListNotification;
import net.pterodactylus.sone.notify.ListNotificationFilter;
import net.pterodactylus.sone.notify.PostVisibilityFilter;
@@ -221,8 +221,6 @@ import com.google.inject.Inject;
/**
* Bundles functionality that a web interface of a Freenet plugin needs, e.g.
* references to l10n helpers.
- *
- * @author David âBombeâ Roden
*/
public class WebInterface implements SessionProvider {
@@ -239,7 +237,7 @@ public class WebInterface implements SessionProvider {
private final SonePlugin sonePlugin;
/** The registered toadlets. */
- private final List pageToadlets = new ArrayList();
+ private final List pageToadlets = new ArrayList<>();
/** The form password. */
private final String formPassword;
@@ -262,7 +260,7 @@ public class WebInterface implements SessionProvider {
private final ElementLoader elementLoader;
private final LinkedElementRenderFilter linkedElementRenderFilter;
private final TimeTextConverter timeTextConverter = new TimeTextConverter();
- private final L10nFilter l10nFilter = new L10nFilter(this);
+ private final L10nFilter l10nFilter;
/** The ânew Soneâ notification. */
private final ListNotification newSoneNotification;
@@ -283,7 +281,7 @@ public class WebInterface implements SessionProvider {
private final ListNotification mentionNotification;
/** Notifications for sone inserts. */
- private final Map soneInsertNotifications = new HashMap();
+ private final Map soneInsertNotifications = new HashMap<>();
/** Sone locked notification ticker objects. */
private final Map> lockedSonesTickerObjects = Collections.synchronizedMap(new HashMap>());
@@ -322,6 +320,7 @@ public class WebInterface implements SessionProvider {
this.elementLoader = elementLoader;
formPassword = sonePlugin.pluginRespirator().getToadletContainer().getFormPassword();
soneTextParser = new SoneTextParser(getCore(), getCore());
+ l10nFilter = new L10nFilter(getL10n());
templateContextFactory = new TemplateContextFactory();
templateContextFactory.addAccessor(Object.class, new ReflectionAccessor());
@@ -339,7 +338,7 @@ public class WebInterface implements SessionProvider {
templateContextFactory.addFilter("html", new HtmlFilter());
templateContextFactory.addFilter("replace", new ReplaceFilter());
templateContextFactory.addFilter("store", new StoreFilter());
- templateContextFactory.addFilter("l10n", new L10nFilter(this));
+ templateContextFactory.addFilter("l10n", l10nFilter);
templateContextFactory.addFilter("substring", new SubstringFilter());
templateContextFactory.addFilter("xml", new XmlFilter());
templateContextFactory.addFilter("change", new RequestChangeFilter());
@@ -348,14 +347,14 @@ public class WebInterface implements SessionProvider {
templateContextFactory.addFilter("js", new JavascriptFilter());
templateContextFactory.addFilter("parse", parserFilter = new ParserFilter(getCore(), soneTextParser));
templateContextFactory.addFilter("shorten", shortenFilter = new ShortenFilter());
- templateContextFactory.addFilter("render", renderFilter = new RenderFilter(getCore(), templateContextFactory));
+ templateContextFactory.addFilter("render", renderFilter = new RenderFilter(getCore(), soneTextParser, new HtmlFilter()));
templateContextFactory.addFilter("linked-elements", new LinkedElementsFilter(elementLoader));
templateContextFactory.addFilter("render-linked-element", linkedElementRenderFilter = new LinkedElementRenderFilter(templateContextFactory));
templateContextFactory.addFilter("reparse", new ReparseFilter());
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(getCore(), templateContextFactory));
+ templateContextFactory.addFilter("image-link", new ImageLinkFilter(getCore()));
templateContextFactory.addFilter("replyGroup", new ReplyGroupFilter());
templateContextFactory.addFilter("in", new ContainsFilter());
templateContextFactory.addFilter("unique", new UniqueElementFilter());
@@ -368,37 +367,37 @@ public class WebInterface implements SessionProvider {
/* create notifications. */
Template newSoneNotificationTemplate = loaders.loadTemplate("/templates/notify/newSoneNotification.html");
- newSoneNotification = new ListNotification("new-sone-notification", "sones", newSoneNotificationTemplate, false);
+ newSoneNotification = new ListNotification<>("new-sone-notification", "sones", newSoneNotificationTemplate, false);
Template newPostNotificationTemplate = loaders.loadTemplate("/templates/notify/newPostNotification.html");
- newPostNotification = new ListNotification("new-post-notification", "posts", newPostNotificationTemplate, false);
+ newPostNotification = new ListNotification<>("new-post-notification", "posts", newPostNotificationTemplate, false);
Template localPostNotificationTemplate = loaders.loadTemplate("/templates/notify/newPostNotification.html");
- localPostNotification = new ListNotification("local-post-notification", "posts", localPostNotificationTemplate, false);
+ localPostNotification = new ListNotification<>("local-post-notification", "posts", localPostNotificationTemplate, false);
Template newReplyNotificationTemplate = loaders.loadTemplate("/templates/notify/newReplyNotification.html");
- newReplyNotification = new ListNotification("new-reply-notification", "replies", newReplyNotificationTemplate, false);
+ newReplyNotification = new ListNotification<>("new-reply-notification", "replies", newReplyNotificationTemplate, false);
Template localReplyNotificationTemplate = loaders.loadTemplate("/templates/notify/newReplyNotification.html");
- localReplyNotification = new ListNotification("local-reply-notification", "replies", localReplyNotificationTemplate, false);
+ localReplyNotification = new ListNotification<>("local-reply-notification", "replies", localReplyNotificationTemplate, false);
Template mentionNotificationTemplate = loaders.loadTemplate("/templates/notify/mentionNotification.html");
- mentionNotification = new ListNotification("mention-notification", "posts", mentionNotificationTemplate, false);
+ mentionNotification = new ListNotification<>("mention-notification", "posts", mentionNotificationTemplate, false);
Template lockedSonesTemplate = loaders.loadTemplate("/templates/notify/lockedSonesNotification.html");
- lockedSonesNotification = new ListNotification("sones-locked-notification", "sones", lockedSonesTemplate);
+ lockedSonesNotification = new ListNotification<>("sones-locked-notification", "sones", lockedSonesTemplate);
Template newVersionTemplate = loaders.loadTemplate("/templates/notify/newVersionNotification.html");
newVersionNotification = new TemplateNotification("new-version-notification", newVersionTemplate);
Template insertingImagesTemplate = loaders.loadTemplate("/templates/notify/inserting-images-notification.html");
- insertingImagesNotification = new ListNotification("inserting-images-notification", "images", insertingImagesTemplate);
+ insertingImagesNotification = new ListNotification<>("inserting-images-notification", "images", insertingImagesTemplate);
Template insertedImagesTemplate = loaders.loadTemplate("/templates/notify/inserted-images-notification.html");
- insertedImagesNotification = new ListNotification("inserted-images-notification", "images", insertedImagesTemplate);
+ insertedImagesNotification = new ListNotification<>("inserted-images-notification", "images", insertedImagesTemplate);
Template imageInsertFailedTemplate = loaders.loadTemplate("/templates/notify/image-insert-failed-notification.html");
- imageInsertFailedNotification = new ListNotification("image-insert-failed-notification", "images", imageInsertFailedTemplate);
+ imageInsertFailedNotification = new ListNotification<>("image-insert-failed-notification", "images", imageInsertFailedTemplate);
}
//
@@ -755,12 +754,12 @@ public class WebInterface implements SessionProvider {
pageToadlets.add(pageToadletFactory.createPageToadlet(new LogoutPage(emptyTemplate, this), "Logout"));
pageToadlets.add(pageToadletFactory.createPageToadlet(new OptionsPage(optionsTemplate, this), "Options"));
pageToadlets.add(pageToadletFactory.createPageToadlet(new RescuePage(rescueTemplate, this), "Rescue"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new AboutPage(aboutTemplate, this, new PluginVersion(SonePlugin.getPluginVersion()), new PluginYear(SonePlugin.getYear()), new PluginHomepage(SonePlugin.getHomepage())), "About"));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("noPermission.html", noPermissionTemplate, "Page.NoPermission.Title", this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("emptyImageTitle.html", emptyImageTitleTemplate, "Page.EmptyImageTitle.Title", this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("emptyAlbumTitle.html", emptyAlbumTitleTemplate, "Page.EmptyAlbumTitle.Title", this)));
+ pageToadlets.add(pageToadletFactory.createPageToadlet(new AboutPage(aboutTemplate, this, new PluginVersion(SonePlugin.getPluginVersion()), new PluginYear(sonePlugin.getYear()), new PluginHomepage(sonePlugin.getHomepage())), "About"));
+ pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("noPermission.html", this, noPermissionTemplate, "Page.NoPermission.Title")));
+ pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("emptyImageTitle.html", this, emptyImageTitleTemplate, "Page.EmptyImageTitle.Title")));
+ pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("emptyAlbumTitle.html", this, emptyAlbumTitleTemplate, "Page.EmptyAlbumTitle.Title")));
pageToadlets.add(pageToadletFactory.createPageToadlet(new DismissNotificationPage(emptyTemplate, this)));
- pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("invalid.html", invalidTemplate, "Page.Invalid.Title", this)));
+ pageToadlets.add(pageToadletFactory.createPageToadlet(new SoneTemplatePage("invalid.html", this, invalidTemplate, "Page.Invalid.Title")));
pageToadlets.add(pageToadletFactory.createPageToadlet(loaders.loadStaticPage("css/", "/static/css/", "text/css")));
pageToadlets.add(pageToadletFactory.createPageToadlet(loaders.loadStaticPage("javascript/", "/static/javascript/", "text/javascript")));
pageToadlets.add(pageToadletFactory.createPageToadlet(loaders.loadStaticPage("images/", "/static/images/", "image/png")));
@@ -831,7 +830,7 @@ public class WebInterface implements SessionProvider {
*/
private Collection getMentionedSones(String text) {
/* we need no context to find mentioned Sones. */
- Set mentionedSones = new HashSet();
+ Set mentionedSones = new HashSet<>();
for (Part part : soneTextParser.parse(text, null)) {
if (part instanceof SonePart) {
mentionedSones.add(((SonePart) part).getSone());