Пример #1
0
        // This is not the recommended way to write a bot - consider
        // reading over the Commands Framework sample.
        private async Task MessageReceivedAsync(SocketMessage message)
        {
            // The bot should never respond to itself.
            if (message.Author.Id == _client.CurrentUser.Id)
            {
                return;
            }

            history.Add(message.Id, message.Content);

            if (message.Content.StartsWith("!help"))
            {
                await message.Channel.SendMessageAsync("Do you need frisk bullying advice? Please contact Christian II of Denmark.");
            }

            if (message.Content.StartsWith("!clown"))
            {
                await message.Channel.SendMessageAsync("Frisk is a clown");
            }

            if (message.Content.StartsWith("!calc"))
            {
                try {
                    SuperHappyScript.SuperHappyScript shs = new SuperHappyScript.SuperHappyScript(message.Content.Substring(5));
                    var bla = new Dictionary <string, double>();

                    await message.Channel.SendMessageAsync(shs.Eval(bla).ToString());
                } catch (Exception exc) {
                    await message.Channel.SendMessageAsync("Felis: " + exc.Message);
                }
            }

            if (message.Content.Replace(" ", "") == "<a:glenoeoeogif:567000592979853312><a:glenoeoeogif:567000592979853312>")
            {
                await message.Channel.SendMessageAsync("<a:glenoeoeogif:567000592979853312>");
            }

            if (message.Content == "!vecka")
            {
                await message.Channel.SendMessageAsync(System.Globalization.CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday).ToString());
            }

            if (message.Content == "!ping")
            {
                await message.Channel.SendMessageAsync("Frisk loves men.");
            }
        }
        // This is not the recommended way to write a bot - consider
        // reading over the Commands Framework sample.
        private async Task MessageReceivedAsync(SocketMessage message)
        {
            // The bot should never respond to itself.
            if (message.Author.Id == _client.CurrentUser.Id)
            {
                return;
            }

            if (message.Content.StartsWith("!version"))
            {
                await message.Channel.SendMessageAsync(_version);
            }

            if (message.Content == "!id")
            {
                await message.Channel.SendMessageAsync(message.Channel.Id + "," + string.Join(";", _client.Guilds.Select(p => p.Id)));
            }

            if (message.Content == "!kodändring")
            {
                await message.Channel.SendMessageAsync("lol");
            }

            if (message.Content.StartsWith("!remindme"))
            {
                try {
                    var split         = message.Content.Split(" ");
                    var date          = DateTime.ParseExact(split[1] + " " + split[2], "yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture);
                    var remindMessage = string.Join(" ", split.Skip(2));
                    var chnl          = message.Channel as SocketGuildChannel;

                    _remindMes.Add(new RemindMe()
                    {
                        Date = date, Message = remindMessage, ChannelId = message.Channel.Id, User = message.Author.Mention, GuildId = chnl.Guild.Id
                    });

                    System.IO.File.WriteAllText("/data/test.txt", Newtonsoft.Json.JsonConvert.SerializeObject(_remindMes));

                    await message.Channel.SendMessageAsync("jag kommer påminna dig då jag är en duktig båt");
                } catch (Exception exc) {
                    await message.Channel.SendMessageAsync("du formaterade skiten fel, fråga frisk hur man gör: " + exc.Message);
                }
            }

            if (message.Content.StartsWith("!strlen "))
            {
                await message.Channel.SendMessageAsync(message.Content.Substring(8).Length.ToString() + " tecken lång, jävla dålig stil att viktor inte fixade detta");
            }

            if (message.Content.StartsWith("!strlen2 "))
            {
                await message.Channel.SendMessageAsync(System.Text.Encoding.UTF8.GetBytes(message.Content.Substring(9)).Length.ToString() + ", " + Convert.ToString(System.Text.Encoding.UTF8.GetBytes(message.Content.Substring(9)).Length, 16) + " tecken lång, jävla dålig stil att viktor inte fixade detta");
            }

            if (message.Author.Id == 297436465565007872)
            {
                // stolen from https://stackoverflow.com/questions/10576686/c-sharp-regex-pattern-to-extract-urls-from-given-string-not-full-html-urls-but
                var linkParser = new Regex(@"\b(?:https?://|www\.)\S+\b", RegexOptions.Compiled | RegexOptions.IgnoreCase);

                foreach (Match m in linkParser.Matches(message.Content).Take(1))
                {
                    var tags = await Services.ImageTagListerService.GetImageTags(m.Value);

                    if (tags.Any(p => p == "monkey"))
                    {
                        await message.Channel.SendMessageAsync("sluta stål");

                        await message.DeleteAsync();
                    }
                }

                foreach (string url in message.Attachments.Select(p => p.Url))
                {
                    var tags = await Services.ImageTagListerService.GetImageTags(url);

                    if (tags.Any(p => p.ToUpper() == "MONKEY"))
                    {
                        await message.Channel.SendMessageAsync("sluta stål");

                        await message.DeleteAsync();
                    }
                }
            }

            if (message.Content.ToUpper().Contains("BÅT"))
            {
                var sentiment = await Services.SentimentService.GetSentiment(message.Content);

                if (sentiment > 0.70)
                {
                    await message.Channel.SendMessageAsync("tack :3");
                }
                else if (sentiment < 0.30)
                {
                    await message.Channel.SendMessageAsync("sluta mobbas");
                }
            }

            if ((message.Content.StartsWith("!exterminatus") || message.Content.StartsWith("!purge")) && message.Channel.Id == 84660308882239488)
            {
                var guild = _client.Guilds.FirstOrDefault(p => p.Id == 84660308882239488);

                if (guild != null)
                {
                    var channels = guild.Channels.Where(p => isfriendochannel(p));

                    if (channels.Count() > 12)
                    {
                        channels = channels.OrderBy(p => p.CreatedAt).Reverse().Take(12);
                    }

                    var survivors = new HashSet <ulong>(channels.Select(p => p.Id));

                    //foreach (var channel in guild.Channels.Where(p => !survivors.Contains(p.Id)))
                    //{
                    //    await channel.DeleteAsync();
                    //}

                    //await message.Channel.SendMessageAsync(string.Join(" ", guild.Channels.Where(p => !survivors.Contains(p.Id)).Select(p => p.Name)));
                }
            }

            history.Add(message.Id, message.Content);

            if (message.Content.StartsWith("!help"))
            {
                if (message.Content.ToLower() == "!help nilaus")
                {
                    await message.Channel.SendMessageAsync("HEY MUFFIN! HELP NILAUS BULLY BUM");
                }
                else if (message.Content.ToLower() == "!help viktor")
                {
                    await message.Channel.SendMessageAsync("böghög");
                }
                else if (message.Content.Length > 5)
                {
                    await message.Channel.SendMessageAsync("HEY! DONT BULLY" + message.Content.Substring(5).ToUpper());
                }
                else
                {
                    await message.Channel.SendMessageAsync("HEY! DONT BULLY FRISK");
                }
            }

            if (message.Content.StartsWith("!clown"))
            {
                await message.Channel.SendMessageAsync("If frisk is the clown wolf does that make me a clown bot? :(");
            }

            if (message.Content.StartsWith("!edit ") && message.Channel.Id == 503278200064049152)
            {
                int index = -1;

                if (int.TryParse(message.Content.Substring(6), out index) && index < sortedEdits.Count)
                {
                    await message.Channel.SendMessageAsync(sortedEdits.Skip(sortedEdits.Count - 1 - index).First());
                }
            }

            if (message.Content.StartsWith("!uptime"))
            {
                await message.Channel.SendMessageAsync("I've been alive for " + (DateTime.Now - _started).TotalHours.ToString("#.##") + " hours");
            }

            if (message.Content.StartsWith("!tupptid"))
            {
                DateTime now     = DateTime.Now;
                TimeSpan toEarly = new TimeSpan(13, 0, 0);
                TimeSpan toLate  = new TimeSpan(18, 0, 0);

                if (now.TimeOfDay > toEarly && now.TimeOfDay < toLate)
                {
                    await message.Channel.SendMessageAsync("Perfekt tid för en tupplur!");
                }
                else if (now.TimeOfDay < toEarly)
                {
                    await message.Channel.SendMessageAsync("För tidigt, jobba istället din slacker!");
                }
                else if (now.TimeOfDay > toLate)
                {
                    await message.Channel.SendMessageAsync("Nu är det kväll, ingen tupplur då!");
                }
            }

            if (message.Content.StartsWith("!calc") && message.Content.Substring(5).Replace(" ", "").ToUpper() == "KATTEN+MUSEN")
            {
                await message.Channel.SendMessageAsync("tiotusen");
            }
            else if (message.Content.StartsWith("!calc") && message.Content.Substring(5).Replace(" ", "").ToUpper() == "LÄNGDPÅVIKTORSVADERIM")
            {
                await message.Channel.SendMessageAsync("0.5");
            }
            else if (message.Content.StartsWith("!calc") && message.Content.Substring(5).Replace(" ", "").ToUpper() == "LÄNGDPÅSTÅLSVADERIM")
            {
                await message.Channel.SendMessageAsync("0.2");
            }
            else if (message.Content.StartsWith("!calc") && message.Content.Substring(5).Replace(" ", "").ToUpper() == "LÄNGDPÅFRISKSVADERIM")
            {
                await message.Channel.SendMessageAsync("0.1");
            }
            else if (message.Content.StartsWith("!calc") && message.Content.Substring(5).Replace(" ", "").ToUpper() == "STÅL")
            {
                await message.Channel.SendMessageAsync("venne, inte implementerat än");
            }
            else if (message.Content.StartsWith("!calc"))
            {
                try {
                    SuperHappyScript.SuperHappyScript shs = new SuperHappyScript.SuperHappyScript(message.Content.Substring(5).Replace("kotlett", "1").Replace("kottvå", "2").Replace("kottre", "3"));
                    var bla = new Dictionary <string, double>();

                    await message.Channel.SendMessageAsync(shs.Eval(bla).ToString());
                } catch (Exception exc) {
                    await message.Channel.SendMessageAsync("Felis: " + exc.Message);
                }
            }

            if (message.Content.Replace(" ", "") == "<a:glenoeoeogif:567000592979853312><a:glenoeoeogif:567000592979853312>")
            {
                await message.Channel.SendMessageAsync("<a:glenoeoeogif:567000592979853312>");
            }

            if (message.Content == "!vecka")
            {
                await message.Channel.SendMessageAsync(System.Globalization.CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday).ToString());
            }

            if (message.Content == "!datum")
            {
                DateTime date = DateTime.Now;

                if (date > new DateTime(date.Year, 10, 1))
                {
                    var days = (date - new DateTime(date.Year, 10, 1)).Days + 1;

                    await message.Channel.SendMessageAsync("It's the " + days + "st of October, " + date.Year);
                }
                else
                {
                    var days = (date - new DateTime(date.Year - 1, 10, 1)).Days + 1;

                    await message.Channel.SendMessageAsync("It's the " + days + "st of October, " + (date.Year - 1));
                }
            }

            if (message.Content.StartsWith("!cat "))
            {
                await message.Channel.SendMessageAsync("https://cataas.com/cat/says/" + Uri.EscapeDataString(message.Content.Substring(5)) + "?" + _rnd.Next());
            }
            else if (message.Content == "!cat")
            {
                await message.Channel.SendMessageAsync("https://cataas.com/cat?" + _rnd.Next());
            }

            if (message.Content == "!dog")
            {
                try {
                    HttpClient dogFetcher = new HttpClient();
                    var        temp       = await dogFetcher.GetStringAsync("https://dog.ceo/api/breeds/image/random");

                    dynamic dogguJson = JObject.Parse(temp);

                    await message.Channel.SendMessageAsync((string)dogguJson.message);
                } catch (Exception exc) {
                    await message.Channel.SendMessageAsync("Något gick jättefel :( " + exc.Message);
                }
            }

            if (message.Content == "!ping")
            {
                await message.Channel.SendMessageAsync("pong!");
            }
        }