chore: enable pre-commit for Rust formatting, pre-push for Rust linter check

This commit is contained in:
Tunglies 2025-03-26 18:59:31 +08:00
parent ca0cf4552c
commit 42db9ea0bb
6 changed files with 44 additions and 37 deletions

View File

@ -3,14 +3,14 @@
#pnpm pretty-quick --staged #pnpm pretty-quick --staged
# 运行 clippy fmt # 运行 clippy fmt
#cargo fmt --manifest-path ./src-tauri/Cargo.toml cargo fmt --manifest-path ./src-tauri/Cargo.toml
# if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
# echo "rustfmt failed to format the code. Please fix the issues and try again." echo "rustfmt failed to format the code. Please fix the issues and try again."
# exit 1 exit 1
# fi fi
#git add . git add .
# 允许提交 # 允许提交
exit 0 exit 0

View File

@ -1,13 +1,13 @@
#!/bin/bash #!/bin/bash
# 运行 clippy # 运行 clippy
#cargo clippy --manifest-path ./src-tauri/Cargo.toml --fix cargo clippy --manifest-path ./src-tauri/Cargo.toml --fix
# 如果 clippy 失败,阻止 push # 如果 clippy 失败,阻止 push
#if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
# echo "Clippy found issues in sub_crate. Please fix them before pushing." echo "Clippy found issues in sub_crate. Please fix them before pushing."
# exit 1 exit 1
#fi fi
# 允许 push # 允许 push
exit 0 exit 0

View File

@ -2,11 +2,9 @@ use chrono::Local;
use regex::Regex; use regex::Regex;
use reqwest::Client; use reqwest::Client;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::collections::HashMap; use std::{collections::HashMap, sync::Arc};
use std::sync::Arc;
use tauri::command; use tauri::command;
use tokio::sync::Mutex; use tokio::{sync::Mutex, task::JoinSet};
use tokio::task::JoinSet;
// 定义解锁测试项目的结构 // 定义解锁测试项目的结构
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Debug, Clone, Serialize, Deserialize)]
@ -464,9 +462,11 @@ async fn check_netflix(client: &Client) -> UnlockItem {
let url2 = "https://www.netflix.com/title/70143836"; // Breaking Bad let url2 = "https://www.netflix.com/title/70143836"; // Breaking Bad
// 创建简单的请求(不添加太多头部信息) // 创建简单的请求(不添加太多头部信息)
let result1 = client.get(url1) let result1 = client
.get(url1)
.timeout(std::time::Duration::from_secs(30)) .timeout(std::time::Duration::from_secs(30))
.send().await; .send()
.await;
// 检查连接失败情况 // 检查连接失败情况
if let Err(e) = &result1 { if let Err(e) = &result1 {
@ -480,9 +480,11 @@ async fn check_netflix(client: &Client) -> UnlockItem {
} }
// 如果第一个请求成功,尝试第二个请求 // 如果第一个请求成功,尝试第二个请求
let result2 = client.get(url2) let result2 = client
.get(url2)
.timeout(std::time::Duration::from_secs(30)) .timeout(std::time::Duration::from_secs(30))
.send().await; .send()
.await;
if let Err(e) = &result2 { if let Err(e) = &result2 {
eprintln!("Netflix请求错误: {}", e); eprintln!("Netflix请求错误: {}", e);
@ -521,7 +523,8 @@ async fn check_netflix(client: &Client) -> UnlockItem {
// 成功解锁,尝试获取地区信息 // 成功解锁,尝试获取地区信息
// 使用Netflix测试内容获取区域 // 使用Netflix测试内容获取区域
let test_url = "https://www.netflix.com/title/80018499"; let test_url = "https://www.netflix.com/title/80018499";
match client.get(test_url) match client
.get(test_url)
.timeout(std::time::Duration::from_secs(30)) .timeout(std::time::Duration::from_secs(30))
.send() .send()
.await .await
@ -561,7 +564,7 @@ async fn check_netflix(client: &Client) -> UnlockItem {
region: None, region: None,
check_time: Some(get_local_date_string()), check_time: Some(get_local_date_string()),
} }
}, }
} }
} else { } else {
// 其他未知错误状态 // 其他未知错误状态
@ -579,9 +582,11 @@ async fn check_netflix_cdn(client: &Client) -> UnlockItem {
// Fast.com API URL // Fast.com API URL
let url = "https://api.fast.com/netflix/speedtest/v2?https=true&token=YXNkZmFzZGxmbnNkYWZoYXNkZmhrYWxm&urlCount=5"; let url = "https://api.fast.com/netflix/speedtest/v2?https=true&token=YXNkZmFzZGxmbnNkYWZoYXNkZmhrYWxm&urlCount=5";
let result = client.get(url) let result = client
.get(url)
.timeout(std::time::Duration::from_secs(30)) .timeout(std::time::Duration::from_secs(30))
.send().await; .send()
.await;
match result { match result {
Ok(response) => { Ok(response) => {
@ -602,7 +607,9 @@ async fn check_netflix_cdn(client: &Client) -> UnlockItem {
if let Some(targets) = data.get("targets").and_then(|t| t.as_array()) { if let Some(targets) = data.get("targets").and_then(|t| t.as_array()) {
if !targets.is_empty() { if !targets.is_empty() {
if let Some(location) = targets[0].get("location") { if let Some(location) = targets[0].get("location") {
if let Some(country) = location.get("country").and_then(|c| c.as_str()) { if let Some(country) =
location.get("country").and_then(|c| c.as_str())
{
let emoji = country_code_to_emoji(country); let emoji = country_code_to_emoji(country);
return UnlockItem { return UnlockItem {
name: "Netflix".to_string(), name: "Netflix".to_string(),

View File

@ -232,7 +232,7 @@ impl Sysopt {
log::info!(target: "app", "Auto launch enabled successfully"); log::info!(target: "app", "Auto launch enabled successfully");
} }
log_err!(result) log_err!(result)
}, }
false => { false => {
let result = autostart_manager.disable(); let result = autostart_manager.disable();
if let Err(ref e) = result { if let Err(ref e) = result {
@ -241,7 +241,7 @@ impl Sysopt {
log::info!(target: "app", "Auto launch disabled successfully"); log::info!(target: "app", "Auto launch disabled successfully");
} }
log_err!(result) log_err!(result)
}, }
}; };
Ok(()) Ok(())
@ -256,7 +256,7 @@ impl Sysopt {
Ok(status) => { Ok(status) => {
log::info!(target: "app", "Auto launch status: {}", status); log::info!(target: "app", "Auto launch status: {}", status);
Ok(status) Ok(status)
}, }
Err(e) => { Err(e) => {
log::error!(target: "app", "Failed to get auto launch status: {}", e); log::error!(target: "app", "Failed to get auto launch status: {}", e);
Err(anyhow::anyhow!("Failed to get auto launch status: {}", e)) Err(anyhow::anyhow!("Failed to get auto launch status: {}", e))

View File

@ -1,3 +1,3 @@
pub mod lightweight;
pub mod mihomo; pub mod mihomo;
pub mod sysinfo; pub mod sysinfo;
pub mod lightweight;