+/*
+ * 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 <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.analytics;
import java.io.BufferedReader;
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://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<Map.Entry<String, String>> queryStringValues;
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)
// 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()
if (sendDefaultProps)
{
props.putAll(defaultProps);
- if (Jalview.isHeadlessMode())
- {
- props.put("headless", "true");
- }
}
// add (and overwrite with) the passed in props
}
return DEFAULT_API_BASE_URL;
}
-}
\ No newline at end of file
+}