Example #1
0
        public Ipma.DadosTemperatura3Dias[] GetTemperatura(string local, Ipma.DadosIdentificador[] objectoDistritos)
        {
            Ipma.DadosTemperatura3Dias[] _objectoTemperaturas = new Ipma.DadosTemperatura3Dias[5];

            string globalIdLocal = "";

            for (int i = 0; i < objectoDistritos.Length - 1; i++)
            {
                if (local == objectoDistritos[i].local || local == objectoDistritos[i].local.ToLower())
                {
                    globalIdLocal = objectoDistritos[i].GlobalIdLocal;
                }
            }

            if (globalIdLocal == "")
            {
                //Por defeito assume Lisboa
                globalIdLocal = "1110600";
            }

            using (var w = new WebClient())
            {
                var json_data = string.Empty;
                // attempt to download JSON data as a string
                try
                {
                    System.Console.WriteLine("A obter: http://api.ipma.pt/open-data/forecast/meteorology/cities/daily/" + globalIdLocal + ".json");
                    json_data = w.DownloadString("http://api.ipma.pt/open-data/forecast/meteorology/cities/daily/" + globalIdLocal + ".json");
                    var result = JsonConvert.DeserializeObject <RootObject2>(json_data);

                    var precipitaProb  = result.Data.Select(p => p.precipitaProb).ToList();
                    var tMin           = result.Data.Select(p => p.tMin).ToList();
                    var tMax           = result.Data.Select(p => p.tMax).ToList();
                    var predWindDir    = result.Data.Select(p => p.predWindDir).ToList();
                    var idWeatherType  = result.Data.Select(p => p.idWeatherType).ToList();
                    var classWindSpeed = result.Data.Select(p => p.classWindSpeed).ToList();
                    var longitude      = result.Data.Select(p => p.longitude).ToList();
                    var forecastDate   = result.Data.Select(p => p.forecastDate).ToList();
                    var latitude       = result.Data.Select(p => p.latitude).ToList();

                    foreach (var element in precipitaProb.Select((value, i) => new { i, value }))
                    {
                        _objectoTemperaturas[element.i] = new Ipma.DadosTemperatura3Dias();
                        _objectoTemperaturas[element.i].precipitaProb = element.value;
                    }

                    foreach (var element in tMin.Select((value, i) => new { i, value }))
                    {
                        _objectoTemperaturas[element.i].tMin = element.value;
                    }

                    foreach (var element in tMax.Select((value, i) => new { i, value }))
                    {
                        _objectoTemperaturas[element.i].tMax = element.value;
                    }

                    foreach (var element in predWindDir.Select((value, i) => new { i, value }))
                    {
                        _objectoTemperaturas[element.i].predWindDir = element.value;
                    }
                    foreach (var element in idWeatherType.Select((value, i) => new { i, value }))
                    {
                        _objectoTemperaturas[element.i].idWeatherType = element.value;
                    }
                    foreach (var element in classWindSpeed.Select((value, i) => new { i, value }))
                    {
                        _objectoTemperaturas[element.i].classWindSpeed = element.value;
                    }
                    foreach (var element in longitude.Select((value, i) => new { i, value }))
                    {
                        _objectoTemperaturas[element.i].longitude = element.value;
                    }
                    foreach (var element in forecastDate.Select((value, i) => new { i, value }))
                    {
                        _objectoTemperaturas[element.i].forecastDate = element.value;
                    }
                    foreach (var element in latitude.Select((value, i) => new { i, value }))
                    {
                        _objectoTemperaturas[element.i].latitude = element.value;
                    }
                }
                catch (Exception)
                {
                    System.Console.WriteLine("Ocorreu um erro a tentar obter o JSON do IPMA");
                }
            }


            return(_objectoTemperaturas);
        }
Example #2
0
        public async static void PrepareQuestionnaires(MessageEventArgs e)
        {
            if (e.Message.Text.First().ToString() == "/")
            {
                _respostas.Abuso(e);
            }


            if (e.Message.Text.ToLower().Contains("!temperatura"))
            {
                try
                {
                    Ipma.DadosTemperatura3Dias[] _temperaturas  = new Ipma.DadosTemperatura3Dias[5];
                    Ipma.DadosIdentificador[]    _identificador = new Ipma.DadosIdentificador[30];

                    bool   vazio      = true;
                    string localidade = e.Message.Text.ToLower().Substring(12, e.Message.Text.ToLower().Length - 12);

                    localidade = localidade.Replace(" ", "");
                    if (localidade == "")
                    {
                        vazio = true;
                    }
                    else
                    {
                        vazio = false;
                    }

                    if (vazio == false)
                    {
                        string resposta = "";

                        _identificador = _ipma.GetDistritos();

                        _temperaturas = _ipma.GetTemperatura(localidade, _identificador);


                        resposta += "*" + localidade.ToUpper() + "*" + ":" + Environment.NewLine;

                        for (int i = 0; i < _temperaturas.Length; i++)
                        {
                            resposta += _temperaturas[i].forecastDate + ":" + Environment.NewLine;
                            resposta += "*Probabilidade de chuva:* " + _temperaturas[i].precipitaProb + "%" + Environment.NewLine;
                            resposta += "*Max:* " + _temperaturas[i].tMax + "°C *Min:* " + _temperaturas[i].tMin + "°C" + Environment.NewLine;
                            resposta += Environment.NewLine;
                        }
                        _respostas.Temperatura(e, resposta);
                    }
                }



                catch (System.NullReferenceException)
                { }
            }

            if (e.Message.Text.ToLower() == "!mensagens")
            {
                string resposta = await _get.getMensagens(e);

                System.Console.WriteLine(e.Message.From.FirstName + " " + e.Message.From.LastName + " solicitou o numero de mensagens, o resultado foi: " + resposta);
                _respostas.Mensagens(e, resposta);
            }

            if (e.Message.Text.ToLower() == "!noticias")
            {
                System.Console.WriteLine(e.Message.Chat.Id);
                _respostas.Noticias(e);
            }

            if (e.Message.Text.ToLower() == "!horas")
            {
                _respostas.Horas(e);
            }

            if (e.Message.Text.ToLower() == "!euromilhoes")
            {
                _respostas.EuroMilhoes(e);
            }

            if (e.Message.Text.ToLower() == "!admins")
            {
                _respostas.Admins(e);
            }

            if (e.Message.Text.ToLower() == "!convite")
            {
                _respostas.Convite(e);
            }

            if ((e.Message.Text.ToLower() == "!comandos") || (e.Message.Text.ToLower() == "! comandos"))
            {
                _respostas.Comandos(e);
                System.Console.WriteLine("O User " + e.Message.From.FirstName + " " + e.Message.From.LastName + " solicitou a lista de comandos.");
            }

            if (e.Message.Text.ToLower().Contains("melhor grupo"))
            {
                await bot.SendTextMessageAsync(e.Message.Chat.Id, "Pussylga com certeza!");
            }


            if (e.Message.Text.ToString() != null)
            {
                DateTime myDateTime       = DateTime.Now;
                string   sqlFormattedDate = myDateTime.ToString("yyyy-MM-dd HH:mm:ss");

                _basedados.Inserir("INSERT INTO chat (idUser, conversa, data,user) VALUES ('" + e.Message.Chat.Id.ToString() + "','" + e.Message.Text + "','" + sqlFormattedDate + "','" + e.Message.From + "')");
                System.Console.WriteLine(sqlFormattedDate + " : " + e.Message.From + " enviou: " + e.Message.Text);

                string data = await _basedados.Verificar("select nome from membros where nome ='" + e.Message.From + "'");


                if (data == null)
                {
                    _basedados.Inserir("insert into membros (nome, dataEntrada) values ('" + e.Message.From + "','" + sqlFormattedDate + "')");
                }
            }
        }