X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FSoneAccessor.java;h=4bc6a5fe7a94b4c5b57b7b82951289ae77d5d48e;hp=ead6066962ebd2a27c17a10dd7442b3ef9f4e719;hb=faf66247a34f64946990a985d2ea3003465969cb;hpb=1bc78b582ac59f2438002997f5780db4dcee0a2a diff --git a/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java b/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java index ead6066..4bc6a5f 100644 --- a/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java +++ b/src/main/java/net/pterodactylus/sone/template/SoneAccessor.java @@ -1,5 +1,5 @@ /* - * Sone - SoneAccessor.java - Copyright © 2010 David Roden + * Sone - SoneAccessor.java - Copyright © 2010–2020 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 @@ -17,17 +17,22 @@ package net.pterodactylus.sone.template; +import static com.google.common.collect.FluentIterable.from; +import static java.util.Arrays.asList; +import static java.util.logging.Logger.getLogger; +import static net.pterodactylus.sone.data.Album.FLATTENER; +import static net.pterodactylus.sone.data.Album.IMAGES; + import java.util.logging.Level; import java.util.logging.Logger; import net.pterodactylus.sone.core.Core; -import net.pterodactylus.sone.core.Core.SoneStatus; import net.pterodactylus.sone.data.Profile; import net.pterodactylus.sone.data.Sone; +import net.pterodactylus.sone.data.Sone.SoneStatus; +import net.pterodactylus.sone.freenet.wot.OwnIdentity; import net.pterodactylus.sone.freenet.wot.Trust; -import net.pterodactylus.sone.web.WebInterface; -import net.pterodactylus.sone.web.ajax.GetTimesAjaxPage; -import net.pterodactylus.util.logging.Logging; +import net.pterodactylus.sone.text.TimeTextConverter; import net.pterodactylus.util.template.Accessor; import net.pterodactylus.util.template.ReflectionAccessor; import net.pterodactylus.util.template.TemplateContext; @@ -46,16 +51,15 @@ import net.pterodactylus.util.template.TemplateContext; *
Will return {@code true} if the sone in question is the currently logged * in Sone.
* - * - * @author David ‘Bombe’ Roden */ public class SoneAccessor extends ReflectionAccessor { /** The logger. */ - private static final Logger logger = Logging.getLogger(SoneAccessor.class); + private static final Logger logger = getLogger(SoneAccessor.class.getName()); /** The core. */ private final Core core; + private final TimeTextConverter timeTextConverter; /** * Creates a new Sone accessor. @@ -63,8 +67,9 @@ public class SoneAccessor extends ReflectionAccessor { * @param core * The Sone core */ - public SoneAccessor(Core core) { + public SoneAccessor(Core core, TimeTextConverter timeTextConverter) { this.core = core; + this.timeTextConverter = timeTextConverter; } /** @@ -75,8 +80,6 @@ public class SoneAccessor extends ReflectionAccessor { Sone sone = (Sone) object; if (member.equals("niceName")) { return getNiceName(sone); - } else if (member.equals("local")) { - return core.isLocalSone(sone); } else if (member.equals("friend")) { Sone currentSone = (Sone) templateContext.get("currentSone"); return (currentSone != null) && currentSone.hasFriend(sone.getId()); @@ -86,32 +89,36 @@ public class SoneAccessor extends ReflectionAccessor { } else if (member.equals("modified")) { return core.isModifiedSone(sone); } else if (member.equals("status")) { - return core.getSoneStatus(sone); + return sone.getStatus(); } else if (member.equals("unknown")) { - return core.getSoneStatus(sone) == SoneStatus.unknown; + return sone.getStatus() == SoneStatus.unknown; } else if (member.equals("idle")) { - return core.getSoneStatus(sone) == SoneStatus.idle; + return sone.getStatus() == SoneStatus.idle; } else if (member.equals("inserting")) { - return core.getSoneStatus(sone) == SoneStatus.inserting; + return sone.getStatus() == SoneStatus.inserting; } else if (member.equals("downloading")) { - return core.getSoneStatus(sone) == SoneStatus.downloading; + return sone.getStatus() == SoneStatus.downloading; } else if (member.equals("new")) { - return core.isNewSone(sone.getId()); + return !sone.isKnown(); } else if (member.equals("locked")) { return core.isLocked(sone); } else if (member.equals("lastUpdatedText")) { - return GetTimesAjaxPage.getTime((WebInterface) templateContext.get("webInterface"), sone.getTime()); + return timeTextConverter.getTimeText(sone.getTime()).getL10nText(); } else if (member.equals("trust")) { Sone currentSone = (Sone) templateContext.get("currentSone"); if (currentSone == null) { return null; } - Trust trust = core.getTrust(currentSone, sone); - logger.log(Level.FINEST, "Trust for %s by %s: %s", new Object[] { sone, currentSone, trust }); + Trust trust = sone.getIdentity().getTrust((OwnIdentity) currentSone.getIdentity()); + logger.log(Level.FINEST, String.format("Trust for %s by %s: %s", sone, currentSone, trust)); if (trust == null) { return new Trust(null, null, null); } return trust; + } else if (member.equals("allImages")) { + return from(asList(sone.getRootAlbum())).transformAndConcat(FLATTENER).transformAndConcat(IMAGES); + } else if (member.equals("albums")) { + return sone.getRootAlbum().getAlbums(); } return super.get(templateContext, object, member); }