Esempio n. 1
0
 private void DownloadCompletedCallback(byte[] data, object userContext)
 {
     if (data == null)
     {
         base.ApiLog.LogWarning("Downloading of profanity data from depot failed!");
         return;
     }
     base.ApiLog.LogDebug("Downloading of profanity data completed");
     try
     {
         WordFilters wordFilters = WordFilters.ParseFrom(data);
         this.m_wordFilters = wordFilters;
     }
     catch (Exception ex)
     {
         base.ApiLog.LogWarning("Failed to parse received data into protocol buffer. Ex  = {0}", new object[]
         {
             ex.ToString()
         });
     }
     if (this.m_wordFilters == null || !this.m_wordFilters.IsInitialized)
     {
         base.ApiLog.LogWarning("WordFilters failed to initialize");
         return;
     }
 }
Esempio n. 2
0
        public void ApplyWordsFilter(string text)
        {
            //select filter words
            var words      = text.Trim().Split(' ');
            var hasChanged = false;

            foreach (var filter in WordFilters.Where(i => i.IsChecked && !words.Contains((string)i.Key, StringComparer.OrdinalIgnoreCase)))
            {
                filter.IsChecked = false;
                hasChanged       = true;
            }
            foreach (var filter in WordFilters.Where(i => words.Contains((string)i.Key, StringComparer.OrdinalIgnoreCase)))
            {
                filter.IsChecked = true;
                hasChanged       = true;
            }

            if (hasChanged)
            {
                //update filter
                ApplyFilters();

                //update selected filters
                WordFiltersSelected.AddRemoveRange(WordFilters.Where(i => i.IsChecked));
            }
        }
Esempio n. 3
0
        public List <WordData> GetAnswersToPhrase(PhraseData phraseData, WordFilters wordFilters)
        {
            var words_ids_list = new List <string>(phraseData.Answers);
            var list           = dbManager.FindWordData(x => words_ids_list.Contains(x.Id) && CheckFilters(wordFilters, x));

            return(list);
        }
Esempio n. 4
0
        // Words contained in the text of the phrase
        public List <WordData> GetWordsFromPhraseText(PhraseData phraseData, WordFilters wordFilters = null)
        {
            var gameWords = GetWordsInPhrase(phraseData, wordFilters);

            List <WordData> outputDatas   = new List <WordData>();
            var             phraseText    = phraseData.Text;
            var             wordsInString = phraseText.Split(' ');

            foreach (var wordText in wordsInString)
            {
                // We ignore apostrophes when deciding if a word is found or not
                var splits           = wordText.Split('\'');
                var strippedWordText = splits[splits.Length - 1];

                var wd = gameWords.FirstOrDefault(w => w.Text.Equals(strippedWordText, StringComparison.InvariantCultureIgnoreCase));

                if (wd != null)
                {
                    outputDatas.Add(new WordData {
                        Id = wd.Id, Text = wordText.ToUpper()
                    });
                }
                else
                {
                    outputDatas.Add(new WordData {
                        Id = $"RUNTIME-{wordText}", Text = wordText.ToUpper()
                    });
                }
            }
            return(outputDatas);
        }
 private void DownloadCompletedCallback(byte[] data)
 {
     if (data == null)
     {
         base.ApiLog.LogWarning("Downloading of profanity data from depot failed!");
     }
     else
     {
         base.ApiLog.LogDebug("Downloading of profanity data completed");
         try
         {
             WordFilters filters = WordFilters.ParseFrom(data);
             this.m_wordFilters = filters;
         }
         catch (Exception exception)
         {
             object[] args = new object[] { exception.ToString() };
             base.ApiLog.LogWarning("Failed to parse received data into protocol buffer. Ex  = {0}", args);
         }
         if ((this.m_wordFilters == null) || !this.m_wordFilters.IsInitialized)
         {
             base.ApiLog.LogWarning("WordFilters failed to initialize");
         }
     }
 }
Esempio n. 6
0
 private bool CheckFilters(WordFilters filters, WordData data)
 {
     if (filters.excludeArticles && data.Article != WordDataArticle.None)
     {
         return(false);
     }
     if (filters.requireDrawings && !data.HasDrawing())
     {
         return(false);
     }
     if (filters.excludeColorWords && data.Category == WordDataCategory.Color)
     {
         return(false);
     }
     if (filters.excludePluralDual && data.Form != WordDataForm.Singular)
     {
         return(false);
     }
     if (filters.excludeDiacritics && this.WordHasDiacriticCombo(data))
     {
         return(false);
     }
     if (filters.excludeLetterVariations && this.WordHasLetterVariations(data))
     {
         return(false);
     }
     if (filters.requireDiacritics && !this.WordHasDiacriticCombo(data))
     {
         return(false);
     }
     return(true);
 }
Esempio n. 7
0
 public List <WordData> GetWordsByCategory(WordDataCategory choice, WordFilters filters)
 {
     if (choice == WordDataCategory.None)
     {
         return(this.GetAllWords(filters));
     }
     return(dbManager.FindWordData(x => x.Category == choice && CheckFilters(filters, x)));
 }
Esempio n. 8
0
        public void Filter1ShouldFilterOutWordsWhoseMiddleCharacterIsAVowel()
        {
            var word        = "get";
            var wordFilters = new WordFilters();

            var isFilteredOut = wordFilters.Filter1(word);

            Assert.True(isFilteredOut);
        }
Esempio n. 9
0
        public void Filter2ShouldFilterOutWordsLessThan3Characters()
        {
            var word        = "th";
            var wordFilters = new WordFilters();

            var isFilteredOut = wordFilters.Filter2(word);

            Assert.True(isFilteredOut);
        }
Esempio n. 10
0
        public void Filter3ShouldFilterOutWordsWithT()
        {
            var word        = "the";
            var wordFilters = new WordFilters();

            var isFilteredOut = wordFilters.Filter3(word);

            Assert.True(isFilteredOut);
        }
Esempio n. 11
0
        public void Filter2ShouldIgnorePunctuationAtStartAndEndOfWord()
        {
            var word        = "'Oh!'";
            var wordFilters = new WordFilters();

            var isFilteredOut = wordFilters.Filter2(word);

            Assert.True(isFilteredOut);
        }
Esempio n. 12
0
        public void Filter1DoesNotFailIfGivenPunctuationInTheMiddleOfAWord()
        {
            var word        = "Alice's";
            var wordFilters = new WordFilters();

            var isFilteredOut = wordFilters.Filter1(word);

            Assert.False(isFilteredOut);
        }
Esempio n. 13
0
        public void Filter1ShouldFilterOutMARMALADE()
        {
            var word        = "MARMALADE',";
            var wordFilters = new WordFilters();

            var isFilteredOut = wordFilters.Filter1(word);

            Assert.True(isFilteredOut);
        }
Esempio n. 14
0
        public void Filter1ShouldNotFilterOurWordsWhichHaveAnEvenNumberOfCharactersAsTheyDontHaveAMiddleCharacter()
        {
            var word        = "what";
            var wordFilters = new WordFilters();

            var isFilteredOut = wordFilters.Filter1(word);

            Assert.False(isFilteredOut);
        }
Esempio n. 15
0
        /// <summary>
        /// Gets the words in phrase, taken from field Words of data Pharse. these words are set manually in the db
        /// </summary>
        /// <returns>The words in phrase.</returns>
        /// <param name="phraseId">Phrase identifier.</param>
        /// <param name="wordFilters">Word filters.</param>
        public List <WordData> GetWordsInPhrase(string phraseId, WordFilters wordFilters = null)
        {
            if (wordFilters == null)
            {
                wordFilters = new WordFilters();
            }
            var phraseData = dbManager.GetPhraseDataById(phraseId);

            return(GetWordsInPhrase(phraseData, wordFilters));
        }
Esempio n. 16
0
 public QuestionBuilderParameters()
 {
     this.correctChoicesHistory = PackListHistory.RepeatWhenFull;
     this.wrongChoicesHistory   = PackListHistory.RepeatWhenFull;
     this.useJourneyForCorrect  = true;
     this.useJourneyForWrong    = false;
     this.correctSeverity       = SelectionSeverity.MayRepeatIfNotEnough;
     this.wrongSeverity         = SelectionSeverity.MayRepeatIfNotEnough;
     this.letterFilters         = new LetterFilters();
     this.wordFilters           = new WordFilters();
     this.phraseFilters         = new PhraseFilters();
 }
Esempio n. 17
0
        void Awake()
        {
            _databaseManager  = AppManager.I.DB;
            _vocabularyHelper = AppManager.I.VocabularyHelper;

            _playSessionDatas = _databaseManager.GetAllPlaySessionData();
            _letterDatas      = _databaseManager.GetAllLetterData();
            _wordDatas        = _databaseManager.GetAllWordData();
            _phraseDatas      = _databaseManager.GetAllPhraseData();

            //_letterFilters = new LetterFilters();
            _wordFilters = new WordFilters();
        }
Esempio n. 18
0
        private bool CheckFilters(WordFilters filters, WordData data)
        {
            if (filters.allowedCategories != null && !filters.allowedCategories.Contains(data.Category))
            {
                return(false);
            }

            if (filters.excludeArticles && data.Article != WordDataArticle.None)
            {
                return(false);
            }
            if (filters.requireDrawings && !data.HasDrawing())
            {
                return(false);
            }
            if (filters.excludeColorWords && data.Category == WordDataCategory.Colors)
            {
                return(false);
            }
            if (filters.excludePluralDual && data.Form != WordDataForm.Singular)
            {
                return(false);
            }
            if (filters.excludeDiacritics && WordHasDiacriticCombo(data))
            {
                return(false);
            }
            if (filters.excludeLetterVariations && WordHasLetterVariations(data))
            {
                return(false);
            }
            if (filters.requireDiacritics && !WordHasDiacriticCombo(data))
            {
                return(false);
            }
            if (filters.excludeDipthongs && WordHasDipthongs(data))
            {
                return(false);
            }
            if (filters.excludeDuplicateLetters && WordContainsDuplicateLetters(data))
            {
                return(false);
            }
            if (filters.excludeSpaces && WordContainsLetter(data, AppManager.I.DB.GetLetterDataById(" ")))
            {
                return(false);
            }
            return(true);
        }
Esempio n. 19
0
        public List <WordData> GetWordsInPhrase(PhraseData phraseData, WordFilters wordFilters)
        {
            var words_ids_list    = new List <string>(phraseData.Words);
            var inputList         = dbManager.FindWordData(x => words_ids_list.Contains(x.Id) && CheckFilters(wordFilters, x));
            var orderedOutputList = new List <WordData>();

            words_ids_list.ForEach(id => {
                var word = inputList.Find(x => x.Id.Equals(id));
                if (word != null)
                {
                    orderedOutputList.Add(word);
                }
            });
            return(orderedOutputList);
        }
Esempio n. 20
0
        public override void Initialize()
        {
            this.m_wordFilters = null;
            ResourcesAPI resources = this.m_battleNet.Resources;

            if (resources == null)
            {
                base.ApiLog.LogWarning("ResourcesAPI is not initialized! Unable to proceed.");
                return;
            }
            this.m_localeName = BattleNet.Client().GetLocaleName();
            if (string.IsNullOrEmpty(this.m_localeName))
            {
                base.ApiLog.LogWarning("Unable to get Locale from Localization class");
                this.m_localeName = "enUS";
            }
            base.ApiLog.LogDebug("Locale is {0}", new object[] { this.m_localeName });
            resources.LookupResource(new FourCC("BN"), new FourCC("apft"), new FourCC(this.m_localeName), new ResourcesAPI.ResourceLookupCallback(this.ResouceLookupCallback), null);
        }
    public override void Initialize()
    {
        this.m_wordFilters = null;
        ResourcesAPI resources = base.m_battleNet.Resources;

        if (resources == null)
        {
            base.ApiLog.LogWarning("ResourcesAPI is not initialized! Unable to proceed.");
        }
        else
        {
            this.m_localeName = Localization.GetLocaleName();
            if (string.IsNullOrEmpty(this.m_localeName))
            {
                base.ApiLog.LogWarning("Unable to get Locale from Localization class");
                this.m_localeName = Localization.DEFAULT_LOCALE_NAME;
            }
            object[] args = new object[] { this.m_localeName };
            base.ApiLog.LogDebug("Locale is {0}", args);
            resources.LookupResource(new FourCC("BN"), new FourCC("apft"), new FourCC(this.m_localeName), new ResourcesAPI.ResourceLookupCallback(this.ResouceLookupCallback), null);
        }
    }
Esempio n. 22
0
        private bool CheckFilters(WordFilters wordFilters, PhraseFilters phraseFilters, PhraseData data)
        {
            // Words are checked with filters. At least 1 must fulfill the requirement.
            var words    = GetWordsInPhrase(data, wordFilters);
            int nOkWords = words.Count;

            var answers    = GetAnswersToPhrase(data, wordFilters);
            int nOkAnswers = answers.Count;

            var wordsInPhraseText = GetWordsFromPhraseText(data, wordFilters);

            if (phraseFilters.maxLength != 0 && data.Text.Length > phraseFilters.maxLength)
            {
                return(false);
            }

            if (phraseFilters.maxWords != 0 && wordsInPhraseText.Count > phraseFilters.maxWords)
            {
                return(false);
            }

            if (phraseFilters.requireWords && nOkWords == 0)
            {
                return(false);
            }
            if (phraseFilters.requireAtLeastTwoWords && nOkWords <= 1)
            {
                return(false);
            }
            if (phraseFilters.requireAnswersOrWords && nOkAnswers == 0 && nOkWords == 0)
            {
                return(false);
            }

            return(true);
        }
Esempio n. 23
0
        private bool CheckFilters(WordFilters wordFilters, PhraseFilters phraseFilters, PhraseData data)
        {
            // Words are checked with filters. At least 1 must fulfill the requirement.
            var words    = GetWordsInPhrase(data, wordFilters);
            int nOkWords = words.Count;

            var answers    = GetAnswersToPhrase(data, wordFilters);
            int nOkAnswers = answers.Count;

            if (phraseFilters.requireWords && (nOkWords == 0))
            {
                return(false);
            }
            if (phraseFilters.requireAtLeastTwoWords && (nOkWords <= 1))
            {
                return(false);
            }
            if (phraseFilters.requireAnswersOrWords && (nOkAnswers == 0 && nOkWords == 0))
            {
                return(false);
            }

            return(true);
        }
Esempio n. 24
0
        public List <PhraseData> GetPhrasesNotIn(WordFilters wordFilters, PhraseFilters phraseFilters, params PhraseData[] tabooArray)
        {
            var tabooList = new List <PhraseData>(tabooArray);

            return(dbManager.FindPhraseData(x => !tabooList.Contains(x) && CheckFilters(wordFilters, phraseFilters, x)));
        }
Esempio n. 25
0
 public List <PhraseData> GetPhrasesByCategory(PhraseDataCategory choice, WordFilters wordFilters, PhraseFilters phraseFilters)
 {
     return(dbManager.FindPhraseData(x => x.Category == choice && CheckFilters(wordFilters, phraseFilters, x)));
 }
Esempio n. 26
0
 public List <PhraseData> GetAllPhrases(WordFilters wordFilters, PhraseFilters phraseFilters)
 {
     return(dbManager.FindPhraseData(x => CheckFilters(wordFilters, phraseFilters, x)));
 }
Esempio n. 27
0
        private List <WordData> GetWordsByLetters(WordFilters filters, LetterData[] okLettersArray, LetterData[] tabooLettersArray, LetterEqualityStrictness letterEqualityStrictness = LetterEqualityStrictness.LetterBase)
        {
            if (okLettersArray == null)
            {
                okLettersArray = new LetterData[] { }
            }
            ;
            if (tabooLettersArray == null)
            {
                tabooLettersArray = new LetterData[] { }
            }
            ;

            var okLetters    = new HashSet <LetterData>(okLettersArray);
            var tabooLetters = new HashSet <LetterData>(tabooLettersArray);

            var comparer = new StrictLetterDataComparer(letterEqualityStrictness);

            List <WordData> wordsByLetters = dbManager.FindWordData(word => {
                if (!CheckFilters(filters, word))
                {
                    return(false);
                }

                var lettersInWord = GetLettersInWord(word);

                if (tabooLetters.Count > 0)
                {
                    foreach (var letter in lettersInWord)
                    {
                        if (tabooLetters.Contains(letter, comparer))
                        {
                            return(false);
                        }
                    }
                }

                if (okLetters.Count > 0)
                {
                    bool hasAllOkLetters = true;
                    foreach (var okLetter in okLetters)
                    {
                        bool hasThisLetter = false;
                        foreach (var letter in lettersInWord)
                        {
                            if (letter.IsSameLetterAs(okLetter, letterEqualityStrictness))
                            {
                                hasThisLetter = true;
                                break;
                            }
                        }
                        if (!hasThisLetter)
                        {
                            hasAllOkLetters = false;
                            break;
                        }
                    }
                    if (!hasAllOkLetters)
                    {
                        return(false);
                    }
                }
                return(true);
            }
                                                                    );

            return(wordsByLetters);
        }
Esempio n. 28
0
 public List <WordData> GetWordsWithoutLetters(WordFilters filters, LetterEqualityStrictness letterEqualityStrictness = LetterEqualityStrictness.LetterBase, params LetterData[] tabooLetters)
 {
     return(GetWordsByLetters(filters, null, tabooLetters, letterEqualityStrictness));
 }
Esempio n. 29
0
 public List <WordData> GetWordsWithoutLetter(WordFilters filters, LetterData tabooLetter, LetterEqualityStrictness letterEqualityStrictness = LetterEqualityStrictness.Letter)
 {
     return(GetWordsByLetters(filters, null, new[] { tabooLetter }, letterEqualityStrictness));
 }
Esempio n. 30
0
 public List <WordData> GetWordsWithLetter(WordFilters filters, LetterData okLetter, LetterEqualityStrictness letterEqualityStrictness = LetterEqualityStrictness.LetterBase)
 {
     return(GetWordsByLetters(filters, new[] { okLetter }, null, letterEqualityStrictness));
 }