Esempio n. 1
0
        public Misc(Instance db, Setting settings, TelegramBotClient bot)
        {
            settings.AddField(db, "ClarifaiToken");
            var clarifaiToken = settings.GetString(db, "ClarifaiToken");
            var r             = new Random();

            if (String.IsNullOrWhiteSpace(clarifaiToken))
            {
                //now ask for the API Key
                Console.Clear();
                Console.Write("What is your Clarifai token? : ");
                clarifaiToken = Console.ReadLine();
                settings.SetString(db, "ClarifaiToken", clarifaiToken);
            }
            if (String.IsNullOrEmpty(clarifaiToken))
            {
                return;
            }
            bot.OnUpdate += (sender, args) =>
            {
                try
                {
                    if (args.Update?.Message?.Type == MessageType.PhotoMessage)
                    {
                        if (args.Update.Message.Chat.Type != ChatType.Private)
                        {
                            var g    = db.GetGroupById(args.Update.Message.Chat.Id);
                            var nsfw = g.GetSetting <bool>("NSFW", db, false);
                            if (nsfw)
                            {
                                return;
                            }
                        }
                        new Task(() =>
                        {
                            var photo   = args.Update.Message.Photo.OrderByDescending(x => x.Height).FirstOrDefault(x => x.FileId != null);
                            var pathing = bot.GetFileAsync(photo.FileId).Result;
                            var url     =
                                $"https://api.telegram.org/file/bot{settings.TelegramBotAPIKey}/{pathing.FilePath}";

                            var nsfw = GetIsNude(url, clarifaiToken);
                            if (nsfw > 70)
                            {
                                //omg it's not safe for work, do something!
                            }
                        }).Start();
                    }
                }
                catch
                {
                    // ignored
                }
            };
        }
Esempio n. 2
0
        public Weather(Instance db, Setting settings, TelegramBotClient bot)
        {
            //In the module constructor, you can do some initial setup, like adding information to the database and getting input

            settings.AddField(db, "WeatherAPIKey");
            ApiKey = settings.GetString(db, "WeatherAPIKey");

            if (String.IsNullOrWhiteSpace(ApiKey))
            {
                //now ask for the API Key
                Console.Clear();
                Console.Write("What is your weather underground API key? : ");
                ApiKey = Console.ReadLine();
                settings.SetString(db, "WeatherAPIKey", ApiKey);
            }
        }
Esempio n. 3
0
        public Steam(Instance db, Setting settings, TelegramBotClient bot)
        {
            settings.AddField(db, "SteamKey");
            var steamKey = settings.GetString(db, "SteamKey");

            if (String.IsNullOrWhiteSpace(steamKey))
            {
                //now ask for the API Key
                Console.Clear();
                Console.Write("What is your Steam API key? : ");
                steamKey = Console.ReadLine();
                settings.SetString(db, "SteamKey", steamKey);
            }
            if (String.IsNullOrEmpty(steamKey))
            {
                return;
            }
            _steamKey = steamKey;
        }
Esempio n. 4
0
        public CoC(Instance db, Setting settings, TelegramBotClient bot)
        {
            settings.AddField(db, "CoCKey");
            var token = settings.GetString(db, "CoCKey");

            if (String.IsNullOrWhiteSpace(token))
            {
                //now ask for the API Key
                Console.Clear();
                Console.SetIn(new StreamReader(Console.OpenStandardInput(),
                                               Console.InputEncoding,
                                               false,
                                               bufferSize: 1024));
                Console.Write("What is your Clash of Clans API key? : ");
                token = Console.ReadLine();
                settings.SetString(db, "CoCKey", token);
            }
            if (String.IsNullOrEmpty(token))
            {
                return;
            }
            _token = token;
        }
Esempio n. 5
0
        public Misc(Instance db, Setting settings, TelegramBotClient bot)
        {
            RandoFactGenerator.Init();
            settings.AddField(db, "ClarifaiAppId");
            var ClarifaiAppId = settings.GetString(db, "ClarifaiAppId");
            var r             = new Random();

            if (String.IsNullOrWhiteSpace(ClarifaiAppId))
            {
                //now ask for the API Key
                Console.Clear();
                Console.Write("What is your Clarifai App Id? : ");
                ClarifaiAppId = Console.ReadLine();
                settings.SetString(db, "ClarifaiAppId", ClarifaiAppId);
            }
            if (String.IsNullOrEmpty(ClarifaiAppId))
            {
                return;
            }

            settings.AddField(db, "ClarifaiAppSecret");
            var ClarifaiAppSecret = settings.GetString(db, "ClarifaiAppSecret");

            if (String.IsNullOrWhiteSpace(ClarifaiAppSecret))
            {
                //now ask for the API Key
                Console.Clear();
                Console.Write("What is your Clarifai App Secret? : ");
                ClarifaiAppSecret = Console.ReadLine();
                settings.SetString(db, "ClarifaiAppSecret", ClarifaiAppSecret);
            }
            if (String.IsNullOrEmpty(ClarifaiAppSecret))
            {
                return;
            }

            bot.OnUpdate += (sender, args) =>
            {
                try
                {
                    if (args.Update?.Message?.Type == MessageType.PhotoMessage)
                    {
                        if (args.Update.Message.Chat.Type != ChatType.Private)
                        {
                            var g    = db.GetGroupById(args.Update.Message.Chat.Id);
                            var nsfw = g.GetSetting <bool>("NSFW", db, false);
                            if (!nsfw)
                            {
                                return;
                            }
                        }
                        new Task(() =>
                        {
                            var photo   = args.Update.Message.Photo.OrderByDescending(x => x.Height).FirstOrDefault(x => x.FileId != null);
                            var pathing = bot.GetFileAsync(photo.FileId).Result;
                            var url     =
                                $"https://api.telegram.org/file/bot{settings.TelegramBotAPIKey}/{pathing.FilePath}";
                            var nsfw = GetIsNude(url, ClarifaiAppId, ClarifaiAppSecret);
                            if (nsfw > 70)
                            {
                                var responses = new[]
                                {
                                    "rrrrf",
                                    "Hot!",
                                    "OMAI",
                                    "*mounts*",
                                    "oh f**k the hell yes....",
                                    "mmf.  *excuses herself for a few minutes*",
                                    "Yes, I'll take one, to go..  to my room...",
                                    "Keep em cumming...",
                                };
                                bot.SendTextMessageAsync(args.Update.Message.Chat.Id,
                                                         responses[r.Next(responses.Length)], replyToMessageId: args.Update.Message.MessageId);

                                //download it
                                Directory.CreateDirectory("nsfw");
                                var name = "nsfw\\" + pathing.FilePath.Substring(pathing.FilePath.LastIndexOf("/") + 1);
                                new WebClient().DownloadFileAsync(new Uri(url), name);
                            }
                        }).Start();
                    }
                }
                catch
                {
                    // ignored
                }
            };
        }