blob: c9eeeb6f5e59012a8bef7fcf7517df36cde7e339 (
plain) (
tree)
|
|
/*
* Copyright (C) 2008-2020, 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 ru.sape;
import com.juick.www.ad.models.Site;
import org.apache.commons.lang3.StringUtils;
import java.net.URI;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
public class SapePageLinks {
private final boolean showCode;
private final String linkDelimiter;
private final List<String> pageLinks;
public SapePageLinks(Site site, String sapeUser, URI request, String sapeCookie) {
String req = StringUtils.isNotEmpty(request.getQuery()) ? request.getPath() + "?" + request.getQuery()
: request.getPath();
linkDelimiter = site.delimiter();
this.showCode = sapeUser.equals(sapeCookie);
if (showCode) {
pageLinks = Collections.singletonList(site.code());
} else {
pageLinks = site.pages().stream().filter(page -> page.uri().equals(req))
.flatMap(page -> page.links().stream()).toList();
}
}
public String render() {
StringBuilder s = new StringBuilder();
s.append(String.join(linkDelimiter, pageLinks));
if (showCode) {
s.insert(0, "<sape_noindex>");
s.append("</sape_noindex>");
}
return s.toString();
}
}
|