Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        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);
        }