Example #1
0
        private void AddDefaultFilters()
        {
            // keyword "nil, programerski, izziv" -> "http://www.nil.si/"
            var filterK = new RedirectFilter("NIL", true);

            filterK.RedirectType   = RedirectFilterType.Keywords;
            filterK.RedirectString = "nil,programerski,izziv";
            filterK.RedirectTarget = "http://www.nil.si";

            // keyword "uni-lj" -> "http://www.fri.uni-lj.si/"
            var filterF = new RedirectFilter("FRI", true);

            filterF.RedirectType   = RedirectFilterType.Keywords;
            filterF.RedirectString = "uni-lj";
            filterF.RedirectTarget = "http://www.fri.uni-lj.si";

            // url "http://www.nlb.si/" -> "http://www.cert.si"
            var filterU = new RedirectFilter("NLB", false);

            filterU.RedirectType   = RedirectFilterType.URL;
            filterU.RedirectString = "http://www.nlb.si/";
            filterU.RedirectTarget = "http://www.cert.si";

            // regex "http://(www.)?google.[a-z]{2,3}/" -> "http://www.najdi.si"
            var filterR = new RedirectFilter("Google", false);

            filterR.RedirectType   = RedirectFilterType.Regex;
            filterR.RedirectString = "http://(www.)?google.[a-z]{2,3}/";
            filterR.RedirectTarget = "http://www.najdi.si";

            PacketDispatcher.Instance.AddPacketFilter(filterK);
            PacketDispatcher.Instance.AddPacketFilter(filterF);
            PacketDispatcher.Instance.AddPacketFilter(filterU);
            PacketDispatcher.Instance.AddPacketFilter(filterR);
        }
        private void ButtonSave_Click(object sender, RoutedEventArgs e)
        {
            // check filter name
            if (FilterName.Text.Equals(String.Empty))
            {
                MessageBox.Show("Please enter a filter name.",
                                "Empty field", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            // check redirect string
            if (RedirectString.Text.Equals(String.Empty))
            {
                MessageBox.Show("Please enter a redirect url/keywords/regex.",
                                "Empty field", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            var targetURL = RedirectTarget.Text;

            // check redirect string - validate regex
            if ((RedirectFilterType)RedirectType.SelectedIndex == RedirectFilterType.Regex)
            {
                Regex regex;

                try
                {
                    regex = new Regex(RedirectString.Text);
                }
                catch
                {
                    MessageBox.Show("Please enter a valid regular expression.",
                                    "Validation error", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }
            }

            // check target URL
            if (RedirectTarget.Text.Equals(String.Empty))
            {
                MessageBox.Show("Please enter target URL.",
                                "Validation error", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            filter         = new RedirectFilter();
            filter.Enabled = loadedFilterState;

            filter.Name           = FilterName.Text;
            filter.RedirectType   = (RedirectFilterType)RedirectType.SelectedIndex;
            filter.RedirectString = RedirectString.Text;
            filter.RedirectTarget = RedirectTarget.Text;

            DialogResult = true;

            Close();
        }
Example #3
0
        /// <summary>
        /// Gets a list of up to 250 of the shop's redirects.
        /// </summary>
        /// <param name="filter">An optional filter that restricts the results.</param>
        /// <returns>The list of <see cref="Redirect"/>.</returns>
        public virtual async Task <IEnumerable <Redirect> > ListAsync(RedirectFilter filter = null)
        {
            var req = PrepareRequest("redirects.json");

            if (filter != null)
            {
                req.Url.QueryParams.AddRange(filter.ToParameters());
            }

            return(await ExecuteRequestAsync <List <Redirect> >(req, HttpMethod.Get, rootElement : "redirects"));
        }
        private void LoadFilter(RedirectFilter currentFilter)
        {
            loadedFilterState = currentFilter.Enabled;

            TextTitle.Text = "EDIT REDIRECT FILTER";

            FilterName.Text     = currentFilter.Name;
            RedirectString.Text = currentFilter.RedirectString;
            RedirectTarget.Text = currentFilter.RedirectTarget;

            RedirectType.SelectedIndex = (int)currentFilter.RedirectType;
        }
        /// <inheritdoc />
        public override IEnumerable <KeyValuePair <string, object> > EnumParameters(MediaWikiVersion version)
        {
            var p = new OrderedKeyValuePairs <string, object>
            {
                { "lhprop", "pageid|title|redirect" },
                { "lhshow", RedirectFilter.ToString("redirect", "!redirect", null) }
            };

            if (NamespaceSelection != null)
            {
                p.Add("lhnamespace", MediaWikiHelper.JoinValues(NamespaceSelection));
            }
            return(p);
        }
 public RedirectFilterWindow(RedirectFilter currentFilter) : this()
 {
     LoadFilter(currentFilter);
 }