mirror of
https://mirror.ghproxy.com/https://github.com/StarCitizenToolBox/app.git
synced 2025-02-06 07:04:27 +08:00
add Analytics
This commit is contained in:
parent
1d017e5ef2
commit
cebe74d972
17
lib/api/analytics.dart
Normal file
17
lib/api/analytics.dart
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import 'package:dio/dio.dart';
|
||||||
|
import 'package:starcitizen_doctor/common/conf.dart';
|
||||||
|
import 'package:starcitizen_doctor/common/utils/base_utils.dart';
|
||||||
|
|
||||||
|
class AnalyticsApi {
|
||||||
|
static final Dio _dio = Dio();
|
||||||
|
|
||||||
|
static touch(String key) async {
|
||||||
|
dPrint("AnalyticsApi.touch === $key start");
|
||||||
|
try {
|
||||||
|
await _dio.post("${AppConf.xkeycApiUrl}/analytics/$key");
|
||||||
|
dPrint("AnalyticsApi.touch === $key over");
|
||||||
|
} catch (e) {
|
||||||
|
dPrint("AnalyticsApi.touch === $key Error:$e");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -4,8 +4,10 @@ import 'package:device_info_plus/device_info_plus.dart';
|
|||||||
import 'package:flutter_acrylic/flutter_acrylic.dart';
|
import 'package:flutter_acrylic/flutter_acrylic.dart';
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
|
import 'package:starcitizen_doctor/api/analytics.dart';
|
||||||
import 'package:starcitizen_doctor/api/api.dart';
|
import 'package:starcitizen_doctor/api/api.dart';
|
||||||
import 'package:starcitizen_doctor/data/app_version_data.dart';
|
import 'package:starcitizen_doctor/data/app_version_data.dart';
|
||||||
|
import 'package:uuid/uuid.dart';
|
||||||
import 'package:window_manager/window_manager.dart';
|
import 'package:window_manager/window_manager.dart';
|
||||||
|
|
||||||
import '../base/ui.dart';
|
import '../base/ui.dart';
|
||||||
@ -26,6 +28,8 @@ class AppConf {
|
|||||||
static const String webTranslateHomeUrl =
|
static const String webTranslateHomeUrl =
|
||||||
"https://jihulab.com/StarCitizenCN_Community/scweb_chinese_translate/-/raw/main/json/locales";
|
"https://jihulab.com/StarCitizenCN_Community/scweb_chinese_translate/-/raw/main/json/locales";
|
||||||
|
|
||||||
|
static const String xkeycApiUrl = "https://sctoolbox.xkeyc.com";
|
||||||
|
|
||||||
static late final String applicationSupportDir;
|
static late final String applicationSupportDir;
|
||||||
|
|
||||||
static AppVersionData? networkVersionData;
|
static AppVersionData? networkVersionData;
|
||||||
@ -49,7 +53,11 @@ class AppConf {
|
|||||||
dPrint("applicationSupportDir == $applicationSupportDir");
|
dPrint("applicationSupportDir == $applicationSupportDir");
|
||||||
try {
|
try {
|
||||||
Hive.init("$applicationSupportDir/db");
|
Hive.init("$applicationSupportDir/db");
|
||||||
await Hive.openBox("app_conf");
|
final box = await Hive.openBox("app_conf");
|
||||||
|
if (box.get("install_id", defaultValue: "") == "") {
|
||||||
|
await box.put("install_id", const Uuid().v4());
|
||||||
|
AnalyticsApi.touch("firstLaunch");
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -75,6 +83,7 @@ class AppConf {
|
|||||||
await Window.hideWindowControls();
|
await Window.hideWindowControls();
|
||||||
});
|
});
|
||||||
await _checkUpdate();
|
await _checkUpdate();
|
||||||
|
AnalyticsApi.touch("launch");
|
||||||
}
|
}
|
||||||
|
|
||||||
static String getUpgradePath() {
|
static String getUpgradePath() {
|
||||||
|
@ -2,6 +2,7 @@ import 'package:extended_image/extended_image.dart';
|
|||||||
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
import 'package:flutter_svg/flutter_svg.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||||
|
import 'package:starcitizen_doctor/api/analytics.dart';
|
||||||
import 'package:starcitizen_doctor/base/ui.dart';
|
import 'package:starcitizen_doctor/base/ui.dart';
|
||||||
import 'package:url_launcher/url_launcher_string.dart';
|
import 'package:url_launcher/url_launcher_string.dart';
|
||||||
|
|
||||||
@ -106,7 +107,8 @@ class HomeUI extends BaseUI<HomeUIModel> {
|
|||||||
webURL: "https://robertsspaceindustries.com",
|
webURL: "https://robertsspaceindustries.com",
|
||||||
info: "罗伯茨航天工业公司,万物的起源",
|
info: "罗伯茨航天工业公司,万物的起源",
|
||||||
useLocalization: true,
|
useLocalization: true,
|
||||||
width: width),
|
width: width,
|
||||||
|
touchKey: "webLocalization_rsi"),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
makeWebViewButton(model,
|
makeWebViewButton(model,
|
||||||
icon: Row(
|
icon: Row(
|
||||||
@ -123,7 +125,8 @@ class HomeUI extends BaseUI<HomeUIModel> {
|
|||||||
webURL: "https://uexcorp.space",
|
webURL: "https://uexcorp.space",
|
||||||
info: "采矿、精炼、贸易计算器、价格、船信息",
|
info: "采矿、精炼、贸易计算器、价格、船信息",
|
||||||
useLocalization: true,
|
useLocalization: true,
|
||||||
width: width),
|
width: width,
|
||||||
|
touchKey: "webLocalization_uex"),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
makeWebViewButton(model,
|
makeWebViewButton(model,
|
||||||
icon: Row(
|
icon: Row(
|
||||||
@ -140,7 +143,8 @@ class HomeUI extends BaseUI<HomeUIModel> {
|
|||||||
webURL: "https://www.erkul.games/live/calculator",
|
webURL: "https://www.erkul.games/live/calculator",
|
||||||
info: "在线改船,查询伤害数值和配件购买地点",
|
info: "在线改船,查询伤害数值和配件购买地点",
|
||||||
useLocalization: true,
|
useLocalization: true,
|
||||||
width: width),
|
width: width,
|
||||||
|
touchKey: "webLocalization_dps"),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
const Text("外部浏览器拓展:"),
|
const Text("外部浏览器拓展:"),
|
||||||
const SizedBox(height: 8),
|
const SizedBox(height: 8),
|
||||||
@ -589,7 +593,8 @@ class HomeUI extends BaseUI<HomeUIModel> {
|
|||||||
required String webURL,
|
required String webURL,
|
||||||
required bool useLocalization,
|
required bool useLocalization,
|
||||||
required double width,
|
required double width,
|
||||||
String? info}) {
|
String? info,
|
||||||
|
String? touchKey}) {
|
||||||
return Container(
|
return Container(
|
||||||
width: width,
|
width: width,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
@ -622,8 +627,12 @@ class HomeUI extends BaseUI<HomeUIModel> {
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
onPressed: () =>
|
onPressed: () {
|
||||||
model.goWebView(webTitle, webURL, useLocalization: true)),
|
if (touchKey != null) {
|
||||||
|
AnalyticsApi.touch(touchKey);
|
||||||
|
}
|
||||||
|
model.goWebView(webTitle, webURL, useLocalization: true);
|
||||||
|
}),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ import 'dart:io';
|
|||||||
import 'package:desktop_webview_window/desktop_webview_window.dart';
|
import 'package:desktop_webview_window/desktop_webview_window.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
|
import 'package:starcitizen_doctor/api/analytics.dart';
|
||||||
import 'package:starcitizen_doctor/api/api.dart';
|
import 'package:starcitizen_doctor/api/api.dart';
|
||||||
import 'package:starcitizen_doctor/base/ui_model.dart';
|
import 'package:starcitizen_doctor/base/ui_model.dart';
|
||||||
import 'package:starcitizen_doctor/common/conf.dart';
|
import 'package:starcitizen_doctor/common/conf.dart';
|
||||||
@ -131,6 +132,7 @@ class HomeUIModel extends BaseUIModel {
|
|||||||
lastScreenInfo = "扫描完毕,共找到 ${scInstallPaths.length} 个有效安装目录";
|
lastScreenInfo = "扫描完毕,共找到 ${scInstallPaths.length} 个有效安装目录";
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
lastScreenInfo = "解析 log 文件失败!";
|
lastScreenInfo = "解析 log 文件失败!";
|
||||||
|
AnalyticsApi.touch("error_launchLogs");
|
||||||
showToast(context!,
|
showToast(context!,
|
||||||
"解析 log 文件失败! \n请关闭游戏,退出RSI启动器后重试,若仍有问题,请使用工具箱中的 RSI Launcher log 修复。");
|
"解析 log 文件失败! \n请关闭游戏,退出RSI启动器后重试,若仍有问题,请使用工具箱中的 RSI Launcher log 修复。");
|
||||||
}
|
}
|
||||||
@ -369,6 +371,7 @@ class HomeUIModel extends BaseUIModel {
|
|||||||
showToast(context!, "该功能需要一个有效的安装位置");
|
showToast(context!, "该功能需要一个有效的安装位置");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
AnalyticsApi.touch("performance_launch");
|
||||||
BaseUIContainer(
|
BaseUIContainer(
|
||||||
uiCreate: () => PerformanceUI(),
|
uiCreate: () => PerformanceUI(),
|
||||||
modelCreate: () => PerformanceUIModel(scInstalledPath))
|
modelCreate: () => PerformanceUIModel(scInstalledPath))
|
||||||
@ -414,7 +417,7 @@ class HomeUIModel extends BaseUIModel {
|
|||||||
if (skip != tipVersion) {
|
if (skip != tipVersion) {
|
||||||
final ok = await showConfirmDialogs(
|
final ok = await showConfirmDialogs(
|
||||||
context!,
|
context!,
|
||||||
"星际公民官网汉化",
|
"星际公民网站汉化",
|
||||||
const Text(
|
const Text(
|
||||||
"本插功能件仅供大致浏览使用,不对任何有关本功能产生的问题负责!在涉及账号操作前请注意确认网站的原本内容!"
|
"本插功能件仅供大致浏览使用,不对任何有关本功能产生的问题负责!在涉及账号操作前请注意确认网站的原本内容!"
|
||||||
"\n\n\n使用此功能登录账号时请确保您的 星际公民盒子 是从可信任的来源下载。",
|
"\n\n\n使用此功能登录账号时请确保您的 星际公民盒子 是从可信任的来源下载。",
|
||||||
@ -482,6 +485,7 @@ class HomeUIModel extends BaseUIModel {
|
|||||||
await Process.run("powershell.exe", ["ps \"StarCitizen\" | kill"]);
|
await Process.run("powershell.exe", ["ps \"StarCitizen\" | kill"]);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
AnalyticsApi.touch("gameLaunch");
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context!,
|
context: context!,
|
||||||
dismissWithEsc: false,
|
dismissWithEsc: false,
|
||||||
|
@ -4,6 +4,7 @@ import 'dart:io';
|
|||||||
import 'package:archive/archive_io.dart';
|
import 'package:archive/archive_io.dart';
|
||||||
import 'package:dio/dio.dart';
|
import 'package:dio/dio.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:starcitizen_doctor/api/analytics.dart';
|
||||||
import 'package:starcitizen_doctor/api/api.dart';
|
import 'package:starcitizen_doctor/api/api.dart';
|
||||||
import 'package:starcitizen_doctor/base/ui_model.dart';
|
import 'package:starcitizen_doctor/base/ui_model.dart';
|
||||||
import 'package:starcitizen_doctor/common/conf.dart';
|
import 'package:starcitizen_doctor/common/conf.dart';
|
||||||
@ -128,6 +129,7 @@ class LocalizationUIModel extends BaseUIModel {
|
|||||||
|
|
||||||
VoidCallback? doRemoteInstall(ScLocalizationData value) {
|
VoidCallback? doRemoteInstall(ScLocalizationData value) {
|
||||||
return () async {
|
return () async {
|
||||||
|
AnalyticsApi.touch("install_localization");
|
||||||
final downloadUrl =
|
final downloadUrl =
|
||||||
"${AppConf.gitlabLocalizationUrl}/-/archive/${value.versionName}/LocalizationData-${value.versionName}.tar.bz2";
|
"${AppConf.gitlabLocalizationUrl}/-/archive/${value.versionName}/LocalizationData-${value.versionName}.tar.bz2";
|
||||||
final savePath =
|
final savePath =
|
||||||
|
@ -3,6 +3,7 @@ import 'dart:io';
|
|||||||
|
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
|
import 'package:starcitizen_doctor/api/analytics.dart';
|
||||||
import 'package:starcitizen_doctor/base/ui_model.dart';
|
import 'package:starcitizen_doctor/base/ui_model.dart';
|
||||||
import 'package:starcitizen_doctor/common/helper/log_helper.dart';
|
import 'package:starcitizen_doctor/common/helper/log_helper.dart';
|
||||||
import 'package:starcitizen_doctor/data/game_performance_data.dart';
|
import 'package:starcitizen_doctor/data/game_performance_data.dart';
|
||||||
@ -94,6 +95,7 @@ class PerformanceUIModel extends BaseUIModel {
|
|||||||
|
|
||||||
applyProfile(bool cleanShader) async {
|
applyProfile(bool cleanShader) async {
|
||||||
if (performanceMap == null) return;
|
if (performanceMap == null) return;
|
||||||
|
AnalyticsApi.touch("performance_apply");
|
||||||
workingString = "生成配置文件";
|
workingString = "生成配置文件";
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
String conf = "";
|
String conf = "";
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
|
import 'package:starcitizen_doctor/api/analytics.dart';
|
||||||
import 'package:starcitizen_doctor/base/ui_model.dart';
|
import 'package:starcitizen_doctor/base/ui_model.dart';
|
||||||
import 'package:starcitizen_doctor/global_ui_model.dart';
|
import 'package:starcitizen_doctor/global_ui_model.dart';
|
||||||
import 'package:starcitizen_doctor/ui/about/about_ui_model.dart';
|
import 'package:starcitizen_doctor/ui/about/about_ui_model.dart';
|
||||||
@ -58,6 +59,7 @@ class IndexUIModel extends BaseUIModel {
|
|||||||
await showToast(context!, "运行环境出错,请检查系统环境变量 (PATH)!");
|
await showToast(context!, "运行环境出错,请检查系统环境变量 (PATH)!");
|
||||||
await launchUrlString(
|
await launchUrlString(
|
||||||
"https://answers.microsoft.com/zh-hans/windows/forum/all/%E7%B3%BB%E7%BB%9F%E7%8E%AF%E5%A2%83%E5%8F%98/b88369e6-2620-4a77-b07a-d0af50894a07");
|
"https://answers.microsoft.com/zh-hans/windows/forum/all/%E7%B3%BB%E7%BB%9F%E7%8E%AF%E5%A2%83%E5%8F%98/b88369e6-2620-4a77-b07a-d0af50894a07");
|
||||||
|
await AnalyticsApi.touch("error_powershell");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user