Skip to content

Commit

Permalink
[config] add auto save & [scheme] fix
Browse files Browse the repository at this point in the history
  • Loading branch information
KevinZonda committed Jun 25, 2020
1 parent 7b786b2 commit 2e3b9b2
Show file tree
Hide file tree
Showing 5 changed files with 94 additions and 49 deletions.
47 changes: 0 additions & 47 deletions NaiveSharp/Controller/IniHelper.cs

This file was deleted.

45 changes: 45 additions & 0 deletions NaiveSharp/Controller/KvpHelper.cs
@@ -0,0 +1,45 @@
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;

namespace NaiveSharp.Controller
{
public static class KvpHelper
{
public static Dictionary<string, string> FromStringArray(string[] input)
{
var dic = new Dictionary<string, string>();
string tmp = string.Empty;
for (int i = 0; i < input.Length; i++)
{
tmp = input[i].Trim();

var kv = tmp.Split('=');

if (kv.Length != 2)
{
Debug.WriteLine($"[IniHelper] {tmp} is invalid");
continue;
}
else
{
// MessageBox.Show($"{kv[0]}\r\n{kv[1]}");
dic.Add(kv[0].Trim(), kv[1].Trim()) ;
}
}

return dic;
}

public static Dictionary<string, string> FromFile(string path)
{
if (!File.Exists(path))
{
File.Create(path).Close();
File.WriteAllText(path, $"mode = global");
}
return FromStringArray(File.ReadAllLines(path));
}
}
}
2 changes: 1 addition & 1 deletion NaiveSharp/NaiveSharp.csproj
Expand Up @@ -86,7 +86,7 @@
<Compile Include="Controller\Extension\String.cs" />
<Compile Include="Controller\Extension\String[].cs" />
<Compile Include="Controller\Extension\TreeNodeCollection.cs" />
<Compile Include="Controller\IniHelper.cs" />
<Compile Include="Controller\KvpHelper.cs" />
<Compile Include="Controller\NaiveCmdBuilder.cs" />
<Compile Include="Controller\Net.cs" />
<Compile Include="Controller\NodeList.cs" />
Expand Down
21 changes: 20 additions & 1 deletion NaiveSharp/View/MainWindow.cs
Expand Up @@ -13,15 +13,18 @@ public partial class MainWindow : Form
{
public MainWindow()
{
MessageBox.Show(File.ReadAllText(PATH.CONFIG_INI));
string runMode = LoadModeConfig();

InitializeComponent();
Config.RunMode = runMode;
SyncRunModeToView();

// THIS IS FOR TEST
// TODO: LOGIC
// NodeList.LoadFromStringArray(ref this.tvwNodeList, new string[] { "naive+https://what:happened@test.someone.cf?padding=false#Naive!", "[222]", "naive+https://some.public.rs?padding=true#Public-01" });

LoadFromNodeListFile();

int?[] selectedNode = new int?[] { 0, null };

if (File.Exists(PATH.CONFIG_SELECT_NODE))
Expand Down Expand Up @@ -75,6 +78,7 @@ public MainWindow()

private void MainWindows_Load(object sender, EventArgs e)
{

if (File.Exists("DEBUG"))
{
Config.Debug = true;
Expand All @@ -92,6 +96,7 @@ private void rdoGlobal_CheckedChanged(object sender, EventArgs e)
Config.RunMode = "global";
}
SyncRunModeToView(SyncMode.RadioToTsm);
SaveConfig();
}

private void rdoGfwlist_CheckedChanged(object sender, EventArgs e)
Expand All @@ -101,6 +106,7 @@ private void rdoGfwlist_CheckedChanged(object sender, EventArgs e)
Config.RunMode = "gfwlist";
}
SyncRunModeToView(SyncMode.RadioToTsm);
SaveConfig();
}

private void rdoGeoIP_CheckedChanged(object sender, EventArgs e)
Expand All @@ -110,6 +116,7 @@ private void rdoGeoIP_CheckedChanged(object sender, EventArgs e)
Config.RunMode = "geoip";
}
SyncRunModeToView(SyncMode.RadioToTsm);
SaveConfig();
}
private void rdoNone_CheckedChanged(object sender, EventArgs e)
{
Expand All @@ -118,6 +125,7 @@ private void rdoNone_CheckedChanged(object sender, EventArgs e)
Config.RunMode = "none";
}
SyncRunModeToView(SyncMode.RadioToTsm);
SaveConfig();
}
#endregion

Expand Down Expand Up @@ -372,6 +380,17 @@ private void tvwNodeList_AfterSelect(object sender, TreeViewEventArgs e)
txtUsername.Text = x.Value.Username;
txtPassword.Text = x.Value.Password;
chkPadding.Checked = x.Value.Padding ?? false;
switch (x.Value.Scheme)
{
case "https":
rdoHttps.Checked = true;
rdoQuic.Checked = false;
break;
case "quic":
rdoHttps.Checked = false;
rdoQuic.Checked = true;
break;
}
}
}
}
Expand Down
28 changes: 28 additions & 0 deletions NaiveSharp/View/MainWindowsEx.cs
Expand Up @@ -168,5 +168,33 @@ private void SyncToTag()
tvwNodeList.SelectedNode.Tag = Sharelink.Generate();
}
}

private string LoadModeConfig()
{
var d = KvpHelper.FromFile(PATH.CONFIG_INI);
if (d.ContainsKey("mode"))
{
// MessageBox.Show(d["mode"].ToLower().Trim());
switch (d["mode"].ToLower().Trim())
{
case "none":
case "gfwlist":
case "global":
case "geoip":
return d["mode"].ToLower();
}

}
return "global";
}

private void SaveConfig()
{
if (!File.Exists(PATH.CONFIG_INI))
{
File.Create(PATH.CONFIG_INI).Close();
}
File.WriteAllText(PATH.CONFIG_INI, $"mode = {Config.RunMode}");
}
}
}

0 comments on commit 2e3b9b2

Please sign in to comment.