using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; namespace NewsCrawler { static class Config { static Dictionary m_Data = new Dictionary(); static Random m_Random = new Random(); static int m_iDartAPIKeyCnt = 0; static bool[] m_abDartAPIKeyLimit = null; public static void Init() { m_Data.Add("manual-price", 100000); m_Data.Add("buy-price", 1000000); m_Data.Add("ann-dart-api", true); m_Data.Add("ann-supply-contract", true); m_Data.Add("ann-supply-contract-rate", 50.0f); m_Data.Add("ann-revenue", true); m_Data.Add("ann-revenue-rate", 50.0f); m_Data.Add("ann-rights-issue", true); m_Data.Add("ann-patent", true); m_Data.Add("ann-patent-search-string", new Regex("(미국|중국)")); m_Data.Add("ann-profit-change", true); m_Data.Add("ann-profit-change-rate", 50.0f); m_Data.Add("mock-trading", false); Load(); Migration(); Save(); int iIdx = 1; while(true) { if(m_Data.ContainsKey("dart-api-key"+iIdx) == false) break; iIdx++; } m_iDartAPIKeyCnt = iIdx-1; m_abDartAPIKeyLimit = new bool[m_iDartAPIKeyCnt]; for(int i = 0; i pair in m_Data) strContents += pair.Key + "=" + pair.Value.ToString() + Environment.NewLine; string strPath = Util.GetConfigPath()+"/config.ini"; File.WriteAllText(strPath, strContents, new UTF8Encoding(true)); } public static int GetManualPrice() { return (int)m_Data["manual-price"]; } public static void SetManualPrice(int iPrice) { m_Data["manual-price"] = iPrice; Save(); } public static int GetBuyPrice() { return (int)m_Data["buy-price"]; } public static void SetBuyPrice(int iPrice) { m_Data["buy-price"] = iPrice; Save(); } public static void SetAccount(string strAccount, string strAccountSub) { m_Data["account"] = strAccount; m_Data["sub-account"] = strAccountSub; Save(); } public static string GetAccount() { return (string)m_Data["account"]; } public static string GetSubAccount() { return (string)m_Data["sub-account"]; } public static string GetDartAPIKey() { if(m_iDartAPIKeyCnt <= 0) return ""; if(m_abDartAPIKeyLimit.All(s => s == true) == true) return ""; int iNum = -1; while(iNum < 0 || m_abDartAPIKeyLimit[iNum-1] == true) iNum = m_Random.Next(0, 10000)%m_iDartAPIKeyCnt + 1; return (string)m_Data["dart-api-key"+iNum]; } public static void SetDartAPIKeyLimit(string strKey) { for(int i = 0; i