+/*
+ * 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;
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/services/analytics/config/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;
// 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()