From 61a80b417bea3f20c8ad893886c6caa19240d633 Mon Sep 17 00:00:00 2001 From: vlofgren Date: Sun, 30 Oct 2022 10:05:52 +0100 Subject: [PATCH] Fix for explore2.marginalia.nu where it wouldn't find some websites that were flagged as redirects. --- .../wmsa/edge/explorer/ExplorerService.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/explorer/ExplorerService.java b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/explorer/ExplorerService.java index ef5d935c..38ec7b6b 100644 --- a/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/explorer/ExplorerService.java +++ b/marginalia_nu/src/main/java/nu/marginalia/wmsa/edge/explorer/ExplorerService.java @@ -117,12 +117,12 @@ public class ExplorerService extends Service { NV.NEIGHBOR_NAME, NV.RELATEDNESS, (LV.DOMAIN_ID IS NOT NULL), - (STATE = 'ACTIVE' OR STATE='SOCIAL_MEDIA'), + (STATE = 'ACTIVE' OR STATE='SOCIAL_MEDIA' OR STATE='REDIR'), INDEXED > 0 FROM EC_NEIGHBORS_VIEW NV LEFT JOIN EC_NEIGHBORS_VIEW LV ON (NV.NEIGHBOR_ID=LV.DOMAIN_ID) INNER JOIN EC_DOMAIN ON EC_DOMAIN.ID=NV.NEIGHBOR_ID - WHERE NV.DOMAIN_ID=? + WHERE NV.DOMAIN_ID IN (?,?) GROUP BY NV.NEIGHBOR_ID ORDER BY NV.RELATEDNESS DESC """); @@ -131,12 +131,12 @@ public class ExplorerService extends Service { NV.DOMAIN_NAME, NV.RELATEDNESS, (LV.NEIGHBOR_ID IS NOT NULL), - (STATE = 'ACTIVE' OR STATE='SOCIAL_MEDIA'), + (STATE = 'ACTIVE' OR STATE='SOCIAL_MEDIA' OR STATE='REDIR'), INDEXED > 0 FROM EC_NEIGHBORS_VIEW NV LEFT JOIN EC_NEIGHBORS_VIEW LV ON (NV.DOMAIN_ID=LV.NEIGHBOR_ID) INNER JOIN EC_DOMAIN ON EC_DOMAIN.ID=NV.DOMAIN_ID - WHERE NV.NEIGHBOR_ID=? + WHERE NV.NEIGHBOR_ID IN (?,?) GROUP BY NV.DOMAIN_ID ORDER BY NV.RELATEDNESS DESC """ @@ -145,6 +145,8 @@ public class ExplorerService extends Service { ) { stmt.setInt(1, domainIdInformation.domainId); + stmt.setInt(2, domainIdInformation.aliasId); + var rsp = stmt.executeQuery(); while (rsp.next()) { @@ -172,6 +174,8 @@ public class ExplorerService extends Service { } stmtRev.setInt(1, domainIdInformation.domainId); + stmtRev.setInt(2, domainIdInformation.aliasId); + rsp = stmtRev.executeQuery(); while (rsp.next()) { @@ -211,22 +215,24 @@ public class ExplorerService extends Service { try (var conn = dataSource.getConnection(); var stmt = conn.prepareStatement(""" - SELECT IFNULL(ALIAS.ID, DOMAIN.ID), DOMAIN.INDEXED>0 OR ALIAS.INDEXED>0, ALIAS.DOMAIN_NAME + SELECT DOMAIN.ID, IFNULL(ALIAS.ID, DOMAIN.ID), DOMAIN.INDEXED>0 OR ALIAS.INDEXED>0, ALIAS.DOMAIN_NAME FROM EC_DOMAIN DOMAIN - LEFT JOIN EC_DOMAIN ALIAS ON DOMAIN.DOMAIN_ALIAS=ALIAS.ID + LEFT JOIN EC_DOMAIN ALIAS ON DOMAIN.DOMAIN_ALIAS=ALIAS.ID WHERE DOMAIN.DOMAIN_NAME=? """)) { + stmt.setString(1, query); var rsp = stmt.executeQuery(); if (rsp.next()) { return new DomainIdInformation( rsp.getInt(1), - rsp.getBoolean(2), - rsp.getString(3) + rsp.getInt(2), + rsp.getBoolean(3), + rsp.getString(4) ); } } - return new DomainIdInformation(-1, false, null); + return new DomainIdInformation(-1, -1, false, null); } private String trimUrlJunk(String query) { @@ -245,7 +251,7 @@ public class ExplorerService extends Service { return query; } - record DomainIdInformation(int domainId, boolean indexed, String alias) { + record DomainIdInformation(int domainId, int aliasId, boolean indexed, String alias) { boolean isPresent() { return domainId >= 0; }