From d2360429c18bc9744ee3881182ae859fbcdc4c46 Mon Sep 17 00:00:00 2001 From: Jonathan Cobb Date: Fri, 14 Aug 2020 16:29:13 -0400 Subject: [PATCH] add HttpUtil.isBrowser --- .../org/cobbzilla/util/http/HttpUtil.java | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/main/java/org/cobbzilla/util/http/HttpUtil.java b/src/main/java/org/cobbzilla/util/http/HttpUtil.java index 667c85b..ce2d1d0 100644 --- a/src/main/java/org/cobbzilla/util/http/HttpUtil.java +++ b/src/main/java/org/cobbzilla/util/http/HttpUtil.java @@ -446,4 +446,40 @@ public class HttpUtil { return httpChunk; } + // adapted from https://github.com/stuartpb/user-agent-is-browser + public static boolean isBrowser (String ua) { + final boolean browser = !empty(ua) && !ua.equals("NONE") && ( + ua.startsWith("Mozilla/") + // Older versions of Opera + || ua.startsWith("Opera/") + // Down the rabbit hole... + || ua.startsWith("Lynx/") + || ua.startsWith("Links ") + || ua.startsWith("Elinks ") || ua.startsWith("ELinks ") + || ua.startsWith("ELinks/") + || ua.startsWith("Midori/") + || ua.startsWith("w3m/") + || ua.startsWith("Webkit/") + || ua.startsWith("Vimprobable/") + || ua.startsWith("Dooble/") + || ua.startsWith("Dillo/") + || ua.startsWith("Surf/") + || ua.startsWith("NetSurf/") + || ua.startsWith("Galaxy/") + || ua.startsWith("Cyberdog/") + || ua.startsWith("iCab/") + || ua.startsWith("IBrowse/") + || ua.startsWith("IBM WebExplorer /") + || ua.startsWith("AmigaVoyager/") + || ua.startsWith("HotJava/") + || ua.startsWith("retawq/") + || ua.startsWith("uzbl ") || ua.startsWith("Uzbl ") + || ua.startsWith("NCSA Mosaic/") || ua.startsWith("NCSA_Mosaic/") + // And, finally, we test to see if they"re using *the first browser ever*. + || ua.equals("WorldWideweb (NEXT)") + ); + if (log.isDebugEnabled()) log.debug("isBrowser("+ua+") returning "+browser); + return browser; + } + }