feat.rs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. use crate::core::*;
  2. use crate::data::*;
  3. use crate::log_if_err;
  4. // 切换模式
  5. pub fn change_clash_mode(mode: &str) {
  6. let core = Core::global();
  7. log_if_err!(core.update_mode(mode));
  8. }
  9. // 切换系统代理
  10. pub fn toggle_system_proxy() {
  11. let core = Core::global();
  12. let data = Data::global();
  13. let verge = data.verge.lock();
  14. let enable = !verge.enable_system_proxy.clone().unwrap_or(false);
  15. drop(verge);
  16. log_if_err!(core.patch_verge(Verge {
  17. enable_system_proxy: Some(enable),
  18. ..Verge::default()
  19. }));
  20. let handle = core.handle.lock();
  21. let _ = handle.refresh_verge();
  22. }
  23. // 打开系统代理
  24. pub fn enable_system_proxy() {
  25. let core = Core::global();
  26. log_if_err!(core.patch_verge(Verge {
  27. enable_system_proxy: Some(true),
  28. ..Verge::default()
  29. }));
  30. let handle = core.handle.lock();
  31. let _ = handle.refresh_verge();
  32. }
  33. // 关闭系统代理
  34. pub fn disable_system_proxy() {
  35. let core = Core::global();
  36. log_if_err!(core.patch_verge(Verge {
  37. enable_system_proxy: Some(false),
  38. ..Verge::default()
  39. }));
  40. let handle = core.handle.lock();
  41. let _ = handle.refresh_verge();
  42. }
  43. // 切换tun模式
  44. pub fn toggle_tun_mode() {
  45. let core = Core::global();
  46. let data = Data::global();
  47. let verge = data.verge.lock();
  48. let enable = !verge.enable_tun_mode.clone().unwrap_or(false);
  49. drop(verge);
  50. log_if_err!(core.patch_verge(Verge {
  51. enable_tun_mode: Some(enable),
  52. ..Verge::default()
  53. }));
  54. let handle = core.handle.lock();
  55. let _ = handle.refresh_verge();
  56. }
  57. // 打开tun模式
  58. pub fn enable_tun_mode() {
  59. let core = Core::global();
  60. log_if_err!(core.patch_verge(Verge {
  61. enable_tun_mode: Some(true),
  62. ..Verge::default()
  63. }));
  64. let handle = core.handle.lock();
  65. let _ = handle.refresh_verge();
  66. }
  67. // 关闭tun模式
  68. pub fn disable_tun_mode() {
  69. let core = Core::global();
  70. log_if_err!(core.patch_verge(Verge {
  71. enable_tun_mode: Some(false),
  72. ..Verge::default()
  73. }));
  74. let handle = core.handle.lock();
  75. let _ = handle.refresh_verge();
  76. }