mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
resolve entry link when url is relative (fix #181)
This commit is contained in:
@@ -76,7 +76,9 @@ public class FeedParser {
|
|||||||
|
|
||||||
entry.setGuid(FeedUtils.truncate(item.getUri(), 2048));
|
entry.setGuid(FeedUtils.truncate(item.getUri(), 2048));
|
||||||
entry.setGuidHash(DigestUtils.sha1Hex(item.getUri()));
|
entry.setGuidHash(DigestUtils.sha1Hex(item.getUri()));
|
||||||
entry.setUrl(FeedUtils.truncate(item.getLink(), 2048));
|
entry.setUrl(FeedUtils.toAbsoluteUrl(
|
||||||
|
FeedUtils.truncate(item.getLink(), 2048),
|
||||||
|
feed.getLink()));
|
||||||
entry.setUpdated(validateDate(getUpdateDate(item)));
|
entry.setUpdated(validateDate(getUpdateDate(item)));
|
||||||
entry.setAuthor(FeedUtils.truncate(item.getAuthor(), 128));
|
entry.setAuthor(FeedUtils.truncate(item.getAuthor(), 128));
|
||||||
|
|
||||||
|
|||||||
@@ -185,4 +185,23 @@ public class FeedUtils {
|
|||||||
Collections.reverse(timestamps);
|
Collections.reverse(timestamps);
|
||||||
return timestamps;
|
return timestamps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String removeTrailingSlash(String url) {
|
||||||
|
if (url.endsWith("/")) {
|
||||||
|
url = url.substring(0, url.length() - 1);
|
||||||
|
}
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String toAbsoluteUrl(String url, String baseUrl) {
|
||||||
|
if (baseUrl == null || url == null || url.startsWith("http")) {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (url.startsWith("/") == false) {
|
||||||
|
url = "/" + url;
|
||||||
|
}
|
||||||
|
|
||||||
|
return baseUrl + url;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
|
|
||||||
import com.commafeed.backend.HttpGetter;
|
import com.commafeed.backend.HttpGetter;
|
||||||
import com.commafeed.backend.dao.FeedPushInfoDAO;
|
import com.commafeed.backend.dao.FeedPushInfoDAO;
|
||||||
|
import com.commafeed.backend.feeds.FeedUtils;
|
||||||
import com.commafeed.backend.model.Feed;
|
import com.commafeed.backend.model.Feed;
|
||||||
import com.commafeed.backend.model.FeedPushInfo;
|
import com.commafeed.backend.model.FeedPushInfo;
|
||||||
import com.commafeed.backend.services.ApplicationSettingsService;
|
import com.commafeed.backend.services.ApplicationSettingsService;
|
||||||
@@ -39,10 +40,9 @@ public class SubscriptionHandler {
|
|||||||
FeedPushInfo info = feed.getPushInfo();
|
FeedPushInfo info = feed.getPushInfo();
|
||||||
String hub = info.getHub();
|
String hub = info.getHub();
|
||||||
String topic = info.getTopic();
|
String topic = info.getTopic();
|
||||||
String publicUrl = applicationSettingsService.get().getPublicUrl();
|
String publicUrl = FeedUtils
|
||||||
if (publicUrl.endsWith("/")) {
|
.removeTrailingSlash(applicationSettingsService.get()
|
||||||
publicUrl = publicUrl.substring(0, publicUrl.length() - 1);
|
.getPublicUrl());
|
||||||
}
|
|
||||||
|
|
||||||
log.debug("sending new pubsub subscription to {} for {}", hub, topic);
|
log.debug("sending new pubsub subscription to {} for {}", hub, topic);
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
|
|||||||
|
|
||||||
import com.commafeed.backend.StartupBean;
|
import com.commafeed.backend.StartupBean;
|
||||||
import com.commafeed.backend.dao.UserDAO;
|
import com.commafeed.backend.dao.UserDAO;
|
||||||
|
import com.commafeed.backend.feeds.FeedUtils;
|
||||||
import com.commafeed.backend.feeds.OPMLImporter;
|
import com.commafeed.backend.feeds.OPMLImporter;
|
||||||
import com.commafeed.backend.model.ApplicationSettings;
|
import com.commafeed.backend.model.ApplicationSettings;
|
||||||
import com.commafeed.backend.model.User;
|
import com.commafeed.backend.model.User;
|
||||||
@@ -44,10 +45,7 @@ public class GoogleImportCallbackPage extends WebPage {
|
|||||||
UserDAO userDAO;
|
UserDAO userDAO;
|
||||||
|
|
||||||
public static String getCallbackUrl(String publicUrl) {
|
public static String getCallbackUrl(String publicUrl) {
|
||||||
if (publicUrl.endsWith("/")) {
|
return FeedUtils.removeTrailingSlash(publicUrl) + "/" + PAGE_PATH;
|
||||||
publicUrl = publicUrl.substring(0, publicUrl.length() - 1);
|
|
||||||
}
|
|
||||||
return publicUrl + "/" + PAGE_PATH;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public GoogleImportCallbackPage(PageParameters params) {
|
public GoogleImportCallbackPage(PageParameters params) {
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import org.apache.wicket.model.Model;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.commafeed.backend.feeds.FeedUtils;
|
||||||
import com.commafeed.backend.model.User;
|
import com.commafeed.backend.model.User;
|
||||||
import com.commafeed.frontend.pages.components.BootstrapFeedbackPanel;
|
import com.commafeed.frontend.pages.components.BootstrapFeedbackPanel;
|
||||||
|
|
||||||
@@ -67,10 +68,9 @@ public class PasswordRecoveryPage extends BasePage {
|
|||||||
|
|
||||||
private String buildEmailContent(User user) throws Exception {
|
private String buildEmailContent(User user) throws Exception {
|
||||||
|
|
||||||
String publicUrl = applicationSettingsService.get().getPublicUrl();
|
String publicUrl = FeedUtils
|
||||||
if (publicUrl.endsWith("/")) {
|
.removeTrailingSlash(applicationSettingsService.get()
|
||||||
publicUrl = publicUrl.substring(0, publicUrl.length() - 1);
|
.getPublicUrl());
|
||||||
}
|
|
||||||
publicUrl += "/recover2";
|
publicUrl += "/recover2";
|
||||||
|
|
||||||
return String
|
return String
|
||||||
|
|||||||
Reference in New Issue
Block a user