コード例 #1
0
        protected override void DoAfterRead(Dictionary <string, HtmlDocument> docs)
        {
            HeaderFilterRules.Clear();
            var doc = docs.Single(d => d.Key == "privacy/spam").Value;

            int i = 0;

            while (doc.DocumentNode.SafeSelectNodes(String.Format("//input[@name='hdrfilter_delete_{0:D2}']", ++i)).Any())
            {
                string index = i.ToString("D2");

                this.HeaderFilterRules.Add(new HeaderFilterRule()
                {
                    Regexes = doc.GetTextAreaListValue(_regexTag + index),
                    Action  = doc.GetInputEnumValue <HeaderFilterAction>(_actionTag + index).Value,
                });
            }

            EquivalentDomains.Clear();
            doc = docs.Single(d => d.Key == "privacy/sender").Value;
            var allGroups = doc.GetTextAreaStringValue(_equivalentDomainsTag);

            if (!String.IsNullOrWhiteSpace(allGroups))
            {
                var groups = allGroups.Split(';');
                foreach (var group in groups)
                {
                    var domains = group.Split(',').Select(d => d.Trim());
                    EquivalentDomains.Add(domains.ToList());
                }
            }
        }
コード例 #2
0
        protected override void DoBeforeFinishWrite(RestRequest req)
        {
            for (int i = 0; i < this.HeaderFilterRules.Count; ++i)
            {
                var    filter = this.HeaderFilterRules[i];
                string index  = (i + 1).ToString("D2");
                req.AddParameter(_regexTag + index, filter.Regexes.Cat());
                req.AddParameter(_actionTag + index, (int)filter.Action);
            }

            var groups = EquivalentDomains.Select(g => String.Join(",", g));
            var all    = String.Join(";", groups);

            req.AddParameter(_equivalentDomainsTag, all);
        }