X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fanalytics%2FPlausible.java;h=ab2de77c24fcbc4c2aabf026a6633011980530d7;hb=ed379d3f998a6aea83ce8c9cdaab2ec8234adb6a;hp=1f2754e905b92cb7753794a8f4d4b37ab0ec6a6a;hpb=18615246e3b259faacbc97d97a34a72ef600195b;p=jalview.git diff --git a/src/jalview/analytics/Plausible.java b/src/jalview/analytics/Plausible.java index 1f2754e..ab2de77 100644 --- a/src/jalview/analytics/Plausible.java +++ b/src/jalview/analytics/Plausible.java @@ -1,3 +1,23 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview 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 General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.analytics; import java.io.BufferedReader; @@ -19,28 +39,29 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Random; import jalview.bin.Cache; import jalview.bin.Console; -import jalview.bin.Jalview; import jalview.util.ChannelProperties; import jalview.util.HttpUtils; public class Plausible { - private static final String USER_AGENT = HttpUtils.getUserAgent( - MethodHandles.lookup().lookupClass().getCanonicalName()); + private static final String USER_AGENT; private static final String JALVIEW_ID = "Jalview Desktop"; private static final String DOMAIN = "jalview.org"; - private static final String CONFIG_API_BASE_URL = "https://www.jalview.org/config/analytics/url"; + private static final String CONFIG_API_BASE_URL = "https://www.jalview.org/services/config/analytics/url"; - private static final String DEFAULT_API_BASE_URL = "https://DEFAULT.plausible.io/api/event"; + private static final String DEFAULT_API_BASE_URL = "https://analytics.jalview.org/api/event"; private static final String API_BASE_URL; + private static final String clientId; + public static final String APPLICATION_BASE_URL = "desktop://localhost"; private List> queryStringValues; @@ -85,6 +106,9 @@ public class Plausible System.getProperty("os.arch") + " " + System.getProperty("os.name") + " " + System.getProperty("os.version")); + defaultProps.put("os", System.getProperty("os.name")); + defaultProps.put("os_version", System.getProperty("os.version")); + defaultProps.put("os_arch", System.getProperty("os.arch")); String installation = Cache.applicationProperties .getProperty("INSTALLATION"); if (installation != null) @@ -94,6 +118,13 @@ public class Plausible // ascertain the API_BASE_URL API_BASE_URL = getAPIBaseURL(); + + // random clientId to make User-Agent unique (to register analytic) + clientId = String.format("%08x", new Random().nextInt()); + + USER_AGENT = HttpUtils.getUserAgent( + MethodHandles.lookup().lookupClass().getCanonicalName() + " " + + clientId); } private Plausible() @@ -143,10 +174,6 @@ public class Plausible if (sendDefaultProps) { props.putAll(defaultProps); - if (Jalview.isHeadlessMode()) - { - props.put("headless", "true"); - } } // add (and overwrite with) the passed in props @@ -572,4 +599,4 @@ public class Plausible } return DEFAULT_API_BASE_URL; } -} \ No newline at end of file +}