/// <summary> /// Clean Patch file /// </summary> /// <param name="chinaList"></param> /// <param name="proxy"></param> public static void CleanConfigurations(string chinaList, WebProxy proxy) { if (DownloadEasyList(null)) { Configurations patchConfig = ChinaLists.GetConfigurations(); if (patchConfig == null) { Console.WriteLine("wrong Patch Confguration file."); return; } StringBuilder sBuilder = new StringBuilder(); using (StreamReader sr = new StreamReader(chinaList, Encoding.UTF8)) { sBuilder.Append(sr.ReadToEnd()); } using (StreamReader sr = new StreamReader(ChinaListConst.EASYLIST, Encoding.UTF8)) { sBuilder.Append(sr.ReadToEnd()); } using (StreamReader sr = new StreamReader(ChinaListConst.EASYPRIVACY, Encoding.UTF8)) { sBuilder.Append(sr.ReadToEnd()); } string s = sBuilder.ToString(); List <string> removedItems = new List <string>(patchConfig.RemovedItems); foreach (var item in patchConfig.RemovedItems) { if (s.IndexOf(item) > -1) { continue; } removedItems.Remove(item); } List <ModifyItem> modifyItems = new List <ModifyItem>(patchConfig.ModifyItems); foreach (var item in patchConfig.ModifyItems) { if (s.IndexOf(item.OldItem) > -1) { continue; } modifyItems.Remove(item); } patchConfig.ModifyItems = modifyItems; patchConfig.RemovedItems = removedItems; string xml = SimpleSerializer.XmlSerialize <Configurations>(patchConfig); Save(ChinaListConst.PATCH_FILE, xml); } }
private static Configurations GetConfigurations() { if (File.Exists(ChinaListConst.PATCH_FILE)) { using (StreamReader sr = new StreamReader(ChinaListConst.PATCH_FILE, Encoding.UTF8)) { string xml = sr.ReadToEnd(); return(SimpleSerializer.XmlDeserialize <Configurations>(xml)); } } return(null); }