X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FJavascriptFilter.java;h=a5f734d5243cce5ac3ade8568424fcc4d89214ad;hp=0cd55de08dbed8dade55d3e794fac6ba8a0df095;hb=HEAD;hpb=f4ea1e1b3526175e255831c975d6eea813589f25 diff --git a/src/main/java/net/pterodactylus/sone/template/JavascriptFilter.java b/src/main/java/net/pterodactylus/sone/template/JavascriptFilter.java index 0cd55de..a5f734d 100644 --- a/src/main/java/net/pterodactylus/sone/template/JavascriptFilter.java +++ b/src/main/java/net/pterodactylus/sone/template/JavascriptFilter.java @@ -1,5 +1,5 @@ /* - * Sone - JavascriptFilter.java - Copyright © 2011 David Roden + * Sone - JavascriptFilter.java - Copyright © 2011–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 @@ -19,16 +19,15 @@ package net.pterodactylus.sone.template; import java.util.Map; -import net.pterodactylus.util.number.Hex; -import net.pterodactylus.util.template.DataProvider; import net.pterodactylus.util.template.Filter; +import net.pterodactylus.util.template.TemplateContext; + +import com.google.common.io.BaseEncoding; /** * Escapes double quotes, backslashes, carriage returns and line feeds, and * additionally encloses a given string with double quotes to make it possible * to use a string in Javascript. - * - * @author David ‘Bombe’ Roden */ public class JavascriptFilter implements Filter { @@ -36,7 +35,7 @@ public class JavascriptFilter implements Filter { * {@inheritDoc} */ @Override - public Object format(DataProvider dataProvider, Object data, Map parameters) { + public Object format(TemplateContext templateContext, Object data, Map parameters) { StringBuilder javascriptString = new StringBuilder(); javascriptString.append('"'); for (char c : String.valueOf(data).toCharArray()) { @@ -56,7 +55,7 @@ public class JavascriptFilter implements Filter { javascriptString.append('\\'); javascriptString.append(c); } else if (c < 32) { - javascriptString.append("\\x").append(Hex.toHex((byte) c)); + javascriptString.append("\\x").append(BaseEncoding.base16().lowerCase().encode(new byte[] { (byte) c })); } else { javascriptString.append(c); }