Esempio n. 1
0
        public static Command GifCommand(Bot bot)
        {
            return new Command("!gif {search parameters}", "Search for a random gif in Giphy.", "!gif angelina taxi srs", bot,
                               (message) =>
                               {
                                   return (message.text.ToUpper().StartsWith("!GIF "));
                               },
                               (message) =>
                               {
                                   var timeBeforeDecreasingGifCounter = new TimeSpan(0, 5, 0);
                                   var userGifCounter = bot.GetUserSpamCounter(message.sender_id, Model.SpamCounter.SpamType.GIPHY);
                                   if (userGifCounter.Counter < SpamCounter.DEFAULT_MAX_SPAM_COUNTER)
                                   {
                                       userGifCounter.HasBeenWarned = false;

                                       var searchParams = message.text.Substring(5);
                                       if (searchParams.ToUpper().Contains("ALCKIE") && searchParams.ToUpper().Contains("BOT"))
                                       {
                                           var randomNumber = RandomHelper.GetRandomNumber(5);
                                           switch (randomNumber)
                                           {
                                               case 1:
                                                   bot.SendMessage("Try searching for awesome instead.");
                                                   break;
                                               case 2:
                                                   bot.SendMessage("Do you know how many times people search for that? F*****g boring...");
                                                   break;
                                               case 3:
                                                   bot.SendMessage("I won't search for it, just to avoid AlckieBotception.");
                                                   break;
                                               case 4:
                                                   bot.SendMessage("There are no gifs in this world that can represent my awesome self.");
                                                   break;
                                               default:
                                                   bot.SendMessage("F**k off.");
                                                   break;
                                           }
                                       }
                                       else
                                       {
                                           var url = Giphy.GetGiphyUrl(searchParams);
                                           if (url != "")
                                           {
                                               bot.SendMessage(url);
                                               userGifCounter.Counter++;
                                               TimerHelper.ExecuteDelayedActionAsync(() =>
                                               {
                                                   userGifCounter.Counter--;
                                               }, timeBeforeDecreasingGifCounter);
                                           }
                                           else
                                           {
                                               bot.SendMessage("I can't find shit. Either you are an idiot, or Giphy sucks too much...");
                                           }
                                       }
                                   }
                                   else if (!userGifCounter.HasBeenWarned)
                                   {
                                       userGifCounter.HasBeenWarned = true;
                                       bot.SendMessage("F**k off... Just leave me alone for a while.");
                                   }
                               });
        }