Exemple #1
0
        public override void Handle(IRoomMessage message, IJabbrClient jabbrClient)
        {
            base.Handle(message, jabbrClient);

            if (this.CanHandle(message))
            {
                var match = PrivateMessagePatterns.First(p => p.Match(message.Content).Success).Match(message.Content);
                var url   = string.Format("http://www.google.com/ig/calculator?hl=en&q={0}", Uri.EscapeDataString(match.Groups[3].Value));

                var client = new HttpClient();
                client.Timeout = new TimeSpan(0, 0, 2);
                client.DefaultRequestHeaders.AcceptLanguage.Add(new StringWithQualityHeaderValue("en-us"));
                client.DefaultRequestHeaders.AcceptCharset.Add(new StringWithQualityHeaderValue("utf-8"));
                var request = client.GetAsync(url).ContinueWith(requestTask =>
                {
                    if (requestTask.Result.IsSuccessStatusCode)
                    {
                        requestTask.Result.Content.ReadAsStringAsync().ContinueWith(readTask =>
                        {
                            dynamic json    = JsonConvert.DeserializeObject(readTask.Result);
                            string solution = json.rhs;
                            jabbrClient.SayToRoom(message.Room, solution ?? "Does not compute.");
                        });
                    }
                    else
                    {
                        jabbrClient.SayToRoom(message.Room, "Does not compute.");
                    }
                });
            }
        }
Exemple #2
0
        public override void Handle(IRoomMessage message, IJabbrClient jabbrClient)
        {
            base.Handle(message, jabbrClient);

            if (this.CanHandle(message))
            {
                var match   = PrivateMessagePatterns.First(p => p.Match(message.Content).Success).Match(message.Content);
                var choices = match.Groups[1].Value.Split(new string[] { "\"" }, StringSplitOptions.None).Where(s => !string.IsNullOrWhiteSpace(s));
                jabbrClient.SayToRoom(message.Room, choices.RandomElement());
            }
        }
Exemple #3
0
        public override void Handle(IPrivateMessage message, IJabbrClient jabbrClient)
        {
            base.Handle(message, jabbrClient);

            if (this.CanHandle(message))
            {
                if (PrivateMessagePatterns.First().Match(message.Content).Success)
                {
                    jabbrClient.PrivateReply(message.From, this.GetFormattedHelp());
                }
            }
        }
        public override void Handle(IPrivateMessage message, IJabbrClient jabbrClient)
        {
            base.Handle(message, jabbrClient);

            if (this.CanHandle(message))
            {
                if (PrivateMessagePatterns.First().Match(message.Content).Success)
                {
                    jabbrClient.PrivateReply(message.From, this.GetFormattedHelp());
                }
                else
                {
                    var location             = PrivateMessagePatterns.First(p => p.Match(message.Content).Success).Match(message.Content).Groups[3].Value;
                    var formattedInformation = GetWeather(location);
                    jabbrClient.PrivateReply(message.From, formattedInformation);
                }
            }
        }
Exemple #5
0
        public override void Handle(IPrivateMessage message, IJabbrClient jabbrClient)
        {
            base.Handle(message, jabbrClient);

            if (this.CanHandle(message))
            {
                if (PrivateMessagePatterns.First().Match(message.Content).Success)
                {
                    jabbrClient.PrivateReply(message.From, this.GetFormattedHelp());
                }
                else
                {
                    var id  = PrivateMessagePatterns.First(p => p.Match(message.Content).Success).Match(message.Content).Groups[2].Value;
                    var url = string.IsNullOrWhiteSpace(id) ? GetRandomUrl() : GetComicUrl(id);
                    jabbrClient.PrivateReply(message.From, url);
                }
            }
        }