aboutsummaryrefslogtreecommitdiff
path: root/juick-www/src
diff options
context:
space:
mode:
Diffstat (limited to 'juick-www/src')
-rw-r--r--juick-www/src/main/java/com/mitchellbosecke/pebble/extension/FormatterExtension.java38
-rw-r--r--juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/FormatMessageFilter.java52
-rw-r--r--juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/PrettyTimeFilter.java51
-rw-r--r--juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/TagsListFilter.java41
-rw-r--r--juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/TimestampFilter.java23
-rw-r--r--juick-www/src/main/java/ru/sape/Sape.java23
-rw-r--r--juick-www/src/main/java/ru/sape/SapeConnection.java108
-rw-r--r--juick-www/src/main/java/ru/sape/SapePageLinks.java76
8 files changed, 0 insertions, 412 deletions
diff --git a/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/FormatterExtension.java b/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/FormatterExtension.java
deleted file mode 100644
index 9189c2be..00000000
--- a/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/FormatterExtension.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2008-2017, Juick
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package com.mitchellbosecke.pebble.extension;
-
-import com.mitchellbosecke.pebble.extension.filters.*;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Created by vitalyster on 04.05.2017.
- */
-public class FormatterExtension extends AbstractExtension {
- @Override
- public Map<String, Filter> getFilters() {
- Map<String, Filter> filters = new HashMap<>();
- filters.put("formatMessage", new FormatMessageFilter());
- filters.put("prettyTime", new PrettyTimeFilter());
- filters.put("timestamp", new TimestampFilter());
- filters.put("tagsList", new TagsListFilter());
- return filters;
- }
-}
diff --git a/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/FormatMessageFilter.java b/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/FormatMessageFilter.java
deleted file mode 100644
index edb6c827..00000000
--- a/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/FormatMessageFilter.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2008-2017, Juick
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package com.mitchellbosecke.pebble.extension.filters;
-
-import com.juick.Message;
-import com.juick.util.MessageUtils;
-import com.mitchellbosecke.pebble.extension.Filter;
-import com.mitchellbosecke.pebble.extension.escaper.SafeString;
-import org.apache.commons.lang3.StringUtils;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * Created by vitalyster on 04.05.2017.
- */
-public class FormatMessageFilter implements Filter {
- @Override
- public Object apply(Object input, Map<String, Object> args) {
- if (input instanceof Message) {
- Message msg = (Message) input;
- boolean isCode = msg.getTags().stream().anyMatch(t -> t.getName().equals("code"));
- String formatString = MessageUtils.replyStartsWithQuote(msg) ? "@%s,\n%s" : "@%s, %s";
- String msgTxt = msg.getRid() > 0 ? String.format(formatString, msg.getTo().getName(), StringUtils.defaultString(msg.getText()))
- : StringUtils.defaultString(msg.getText());
- String formattedMessage = isCode ? MessageUtils.formatMessageCode(msgTxt)
- : MessageUtils.formatMessage(msgTxt);
- return new SafeString(formattedMessage);
- }
- throw new IllegalArgumentException("invalid input");
- }
-
- @Override
- public List<String> getArgumentNames() {
- return null;
- }
-}
diff --git a/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/PrettyTimeFilter.java b/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/PrettyTimeFilter.java
deleted file mode 100644
index 1d58ce79..00000000
--- a/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/PrettyTimeFilter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2008-2017, Juick
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package com.mitchellbosecke.pebble.extension.filters;
-
-import com.juick.util.PrettyTimeFormatter;
-import com.mitchellbosecke.pebble.extension.Filter;
-import com.mitchellbosecke.pebble.template.EvaluationContext;
-
-import java.time.Instant;
-import java.util.Date;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-/**
- * Created by vitalyster on 04.05.2017.
- */
-public class PrettyTimeFilter implements Filter {
-
- PrettyTimeFormatter formatter = new PrettyTimeFormatter();
-
- @Override
- public Object apply(Object input, Map<String, Object> args) {
- if (input instanceof Instant) {
- EvaluationContext context = (EvaluationContext) args.get("_context");
- Locale locale = context.getLocale();
- return formatter.format(locale, Date.from((Instant)input));
- }
- throw new IllegalArgumentException("invalid input");
- }
-
- @Override
- public List<String> getArgumentNames() {
- return null;
- }
-}
diff --git a/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/TagsListFilter.java b/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/TagsListFilter.java
deleted file mode 100644
index bfbf18fb..00000000
--- a/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/TagsListFilter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2008-2017, Juick
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package com.mitchellbosecke.pebble.extension.filters;
-
-import com.juick.Tag;
-import com.mitchellbosecke.pebble.extension.Filter;
-
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-/**
- * Created by vitalyster on 23.05.2017.
- */
-public class TagsListFilter implements Filter {
- @SuppressWarnings("unchecked")
- @Override
- public Object apply(Object input, Map<String, Object> args) {
- return ((List<Tag>) input).stream().map(Tag::getName).collect(Collectors.toList());
- }
-
- @Override
- public List<String> getArgumentNames() {
- return null;
- }
-}
diff --git a/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/TimestampFilter.java b/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/TimestampFilter.java
deleted file mode 100644
index 35efb314..00000000
--- a/juick-www/src/main/java/com/mitchellbosecke/pebble/extension/filters/TimestampFilter.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.mitchellbosecke.pebble.extension.filters;
-
-import com.mitchellbosecke.pebble.extension.Filter;
-
-import java.time.Instant;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-public class TimestampFilter implements Filter {
- @Override
- public Object apply(Object input, Map<String, Object> args) {
- if (input instanceof Instant) {
- return Date.from((Instant)input);
- }
- throw new IllegalArgumentException("invalid input");
- }
-
- @Override
- public List<String> getArgumentNames() {
- return null;
- }
-}
diff --git a/juick-www/src/main/java/ru/sape/Sape.java b/juick-www/src/main/java/ru/sape/Sape.java
deleted file mode 100644
index 38577c45..00000000
--- a/juick-www/src/main/java/ru/sape/Sape.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * http://code.google.com/p/javasape/
- */
-package ru.sape;
-
-public class Sape {
-
- private final String sapeUser;
- private final SapeConnection sapePageLinkConnection;
-
- public Sape(String sapeUser, String host, int socketTimeout, int cacheLifeTime) {
- this.sapeUser = sapeUser;
-
- this.sapePageLinkConnection = new SapeConnection(
- "/code.php?user=" + sapeUser + "&host=" + host,
- "SAPE_Client PHP", socketTimeout, cacheLifeTime);
- }
- public boolean debug = false;
-
- public SapePageLinks getPageLinks(String requestUri, String cookie) {
- return new SapePageLinks(sapePageLinkConnection, sapeUser, requestUri, cookie, debug);
- }
-}
diff --git a/juick-www/src/main/java/ru/sape/SapeConnection.java b/juick-www/src/main/java/ru/sape/SapeConnection.java
deleted file mode 100644
index a15658fa..00000000
--- a/juick-www/src/main/java/ru/sape/SapeConnection.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package ru.sape;
-
-import com.github.ooxi.phparser.SerializedPhpParser;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.*;
-
-public class SapeConnection {
- private static final Logger logger = LoggerFactory.getLogger(SapeConnection.class);
- private final String version = "1.0.3";
- private final List<String> serverList = Arrays.asList("dispenser-01.sape.ru", "dispenser-02.sape.ru");
- private final String dispenserPath;
- private final String userAgent;
- private final int socketTimeout;
- private final int cacheLifeTime;
-
- public SapeConnection(String dispenserPath, String userAgent, int socketTimeout, int cacheLifeTime) {
- this.dispenserPath = dispenserPath;
- this.userAgent = userAgent;
- this.socketTimeout = socketTimeout;
- this.cacheLifeTime = cacheLifeTime;
- }
-
- protected String fetchRemoteFile(String host, String path) throws IOException {
- Reader r = null;
-
- try {
- HttpURLConnection connection = (HttpURLConnection) ((new URL(("http://" + host + path)).openConnection()));
-
- if (socketTimeout > 0) {
- connection.setConnectTimeout(socketTimeout);
- connection.setReadTimeout(socketTimeout);
- }
-
- connection.addRequestProperty("User-Agent", userAgent + ' ' + version);
-
- connection.setDoOutput(true);
- connection.setDoInput(true);
- connection.setUseCaches(false);
- connection.setRequestMethod("GET");
- connection.connect();
-
- r = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
-
- StringWriter sw = new StringWriter();
-
- int b;
-
- while ((b = r.read()) != -1) {
- sw.write(b);
- }
-
- return sw.toString();
- } finally {
- if (r != null) {
- r.close();
- }
- }
- }
- Map<String, Object> cached;
- long cacheUpdated;
-
- @SuppressWarnings("unchecked")
- public Map<String, Object> getData() {
- if (cacheLifeTime <= (System.currentTimeMillis() - cacheUpdated) / 1000) {
- for (String server : serverList) {
- String data;
-
- try {
- data = fetchRemoteFile(server, dispenserPath + "&charset=UTF-8");
- } catch (IOException e1) {
- continue;
- }
-
- if (data.startsWith("FATAL ERROR:")) {
- logger.error("Sape responded with error: {}", data);
-
- continue;
- }
-
- try {
- cached = (Map<String, Object>) new SerializedPhpParser(data).parse();
- } catch (Exception e) {
- logger.error("Can't parse Sape data", e);
- continue;
- }
-
- cacheUpdated = System.currentTimeMillis();
-
- return cached;
- }
-
- logger.error("Unable to fetch Sape data");
-
- return Collections.emptyMap();
- }
-
- return cached;
- }
-}
diff --git a/juick-www/src/main/java/ru/sape/SapePageLinks.java b/juick-www/src/main/java/ru/sape/SapePageLinks.java
deleted file mode 100644
index e89b4e71..00000000
--- a/juick-www/src/main/java/ru/sape/SapePageLinks.java
+++ /dev/null
@@ -1,76 +0,0 @@
-package ru.sape;
-
-import java.util.*;
-
-public class SapePageLinks {
-
- private boolean showCode;
-
- public SapePageLinks(SapeConnection sapeConnection, String sapeUser, String requestUri, String sapeCookie) {
- this(sapeConnection, sapeUser, requestUri, sapeCookie, false);
- }
-
- @SuppressWarnings("unchecked")
- public SapePageLinks(SapeConnection sapeConnection, String sapeUser, String requestUri, String sapeCookie, boolean showCode) {
- if (sapeUser.equals(sapeCookie)) {
- showCode = true;
- }
-
- Map<String, Object> data = sapeConnection.getData();
-
- if (data.containsKey("__sape_delimiter__")) {
- linkDelimiter = (String) data.get("__sape_delimiter__");
- }
-
- if (data.containsKey(requestUri)) {
- pageLinks = new ArrayList<>(((Map<Object, String>) data.get(requestUri)).values());
- }
-
- if (data.containsKey("__sape_new_url__")) {
- if (showCode) {
- Object newUrl = data.get("__sape_new_url__");
-
- if (newUrl instanceof Map) {
- pageLinks = new ArrayList<>(((Map<Object, String>) newUrl).values());
- } else {
- pageLinks = new ArrayList<>(Collections.singletonList((String) newUrl));
- }
- }
- }
-
- this.showCode = showCode;
- }
- private String linkDelimiter = ".";
- private List<String> pageLinks = new ArrayList<>();
-
- public String render() {
- return render(-1);
- }
-
- public String render(int count) {
- StringBuilder s = new StringBuilder();
-
- if (count < 0) {
- count = pageLinks.size();
- }
-
- for (Iterator<String> i = pageLinks.iterator(); i.hasNext() && count > 0; count--) {
- if (s.length() > 0) {
- s.append(linkDelimiter);
- }
-
- String l = i.next();
-
- s.append(l);
-
- i.remove();
- }
-
- if (showCode) {
- s.insert(0, "<sape_noindex>");
- s.append("</sape_noindex>");
- }
-
- return s.toString();
- }
-}