Exemplo n.º 1
0
        protected override void Initialize(Settings modSettings)
        {
            base.Initialize(modSettings);
            MetaName      = modSettings.GetString("metaname");
            SplitKeywords = modSettings.GetBool("splitkeywords", true);

            Lookups.DropLookup(LookupName);
            thisLookup = Lookups.Get(LookupName);
        }
Exemplo n.º 2
0
        protected override bool Process(IInteraction parameters)
        {
            IEnumerable <string> keywords;
            object keywordSource = parameters [LookupKeyName];

            if (SplitKeywords && (keywordSource is string))
            {
                keywords = Splitter.Split((string)keywordSource);
            }
            else if (keywordSource is IEnumerable <object> )
            {
                IEnumerable <object> keywordSourceEnumerable = (IEnumerable <object>)keywordSource;
                List <string>        keywordStrings          = new List <string> ();

                foreach (object keywordObject in keywordSourceEnumerable)
                {
                    keywordStrings.Add((string)keywordObject);
                }

                keywords = keywordStrings;
            }
            else if (keywordSource is IEnumerable <string> )
            {
                keywords = (IEnumerable <string>)keywordSource;
            }
            else
            {
                keywords = new List <string> ();
            }

            keywords = Lookups.GetKeylist(keywords);

            thisLookup.Add(new LookupEntry(
                               keywords,
                               parameters[MetaName].ToString(),
                               parameters));

            return(true);
        }
Exemplo n.º 3
0
        protected override bool Process(IInteraction parameters)
        {
            string queryText; int resultCount = 0;
            bool   success = true;

            if (parameters.TryGetFallbackString(this.LookupKeyName, out queryText))
            {
                IEnumerable <string>    keylist = Lookups.GetKeylist(Splitter.Split(queryText), KeyCap);
                CleverSet <LookupEntry> results = Lookups.Get(LookupName).Find(keylist);

                foreach (LookupEntry result in results.Values)
                {
                    if ((ResultCap != -1) && (resultCount++ >= ResultCap))
                    {
                        success &= this.capreached.TryProcess(parameters);
                        break;
                    }
                    else
                    {
                        success &= this.iterator.TryProcess(result.Parameters.Clone(parameters));
                    }
                }
            }

            if (count != null)
            {
                // jezus wat staat hier
                success &= this.count.TryProcess(
                    new SimpleInteraction(
                        parameters, "count",
                        Lookups.Get(
                            LookupName).AllItems.Count));
            }

            return(success);
        }