From 7c20290ce4be0c642e9bd02edb82d235e39b761c Mon Sep 17 00:00:00 2001 From: Harikrishna Date: Sun, 26 Nov 2023 08:26:06 +0530 Subject: [PATCH] Refactor addTargetRequests method to eliminate redundant code. (#1138) --- .../main/java/us/codecraft/webmagic/Page.java | 41 ++++++++++++------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/Page.java b/webmagic-core/src/main/java/us/codecraft/webmagic/Page.java index e48d4cb0..17f8b03d 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/Page.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/Page.java @@ -49,7 +49,7 @@ public class Page { private byte[] bytes; - private List targetRequests = new ArrayList(); + private List targetRequests = new ArrayList<>(); private String charset; @@ -142,13 +142,7 @@ public class Page { * @param requests requests */ public void addTargetRequests(Iterable requests) { - for (String s : requests) { - if (StringUtils.isBlank(s) || s.equals("#") || s.startsWith("javascript:")) { - continue; - } - s = UrlUtils.canonicalizeUrl(s, url.toString()); - targetRequests.add(new Request(s)); - } + addTargetRequests(requests, 0); // Default priority is 0 } /** @@ -158,13 +152,32 @@ public class Page { * @param priority priority */ public void addTargetRequests(Iterable requests, long priority) { - for (String s : requests) { - if (StringUtils.isBlank(s) || s.equals("#") || s.startsWith("javascript:")) { - continue; - } - s = UrlUtils.canonicalizeUrl(s, url.toString()); - targetRequests.add(new Request(s).setPriority(priority)); + if(requests == null) { + return; + } + + for (String req : requests) { + addRequestIfValid(req, priority); + } + } + + /** + * Helper method to add a request if it's valid. + * + * @param url URL to add + * @param priority Priority for the URL + */ + private void addRequestIfValid(String url, long priority) { + if (StringUtils.isBlank(url) || url.equals("#") || url.startsWith("javascript:")) { + return; + } + + String canonicalizedUrl = UrlUtils.canonicalizeUrl(url, this.url.toString()); + Request req = new Request(canonicalizedUrl); + if(priority > 0) { + req.setPriority(priority); } + targetRequests.add(req); } /**