Beispiel #1
0
    public X_Json_Send SendMessage(String msg, long chat_id)
    {
        Action_SendMessage param = new Action_SendMessage();

        param.chat_id = chat_id;
        param.text    = msg;
        dynamic feedback = new X_Json_Send();

        MakeRequest(param, send_message_url, ref feedback);
        return(feedback);
    }
Beispiel #2
0
    internal X_Json_Send EditeMessageText(string text, long chat_id, long message_id)
    {
        Action_EditMessageText param = new Action_EditMessageText();

        param.chat_id    = chat_id;
        param.message_id = message_id;
        param.text       = text;
        dynamic feedback = new X_Json_Send();

        MakeRequest(param, edit_message_text_url, ref feedback);
        return(feedback);
    }
Beispiel #3
0
    internal X_Json_Send CreatInlineButton(string text, long chat_id, List <List <Action_SendMessage.inline_keyboard> > inline_keyboard)
    {
        Action_SendMessage sendMessage = new Action_SendMessage();

        sendMessage.text    = text;
        sendMessage.chat_id = chat_id;
        Action_SendMessage.ReplyMarkup replay_markup = new Action_SendMessage.ReplyMarkup();

        replay_markup.inline_keyboard = inline_keyboard;
        sendMessage.reply_markup      = replay_markup;
        dynamic feedback = new X_Json_Send();

        MakeRequest(sendMessage, send_message_url, ref feedback);
        return(feedback);
    }
Beispiel #4
0
    //public static readonly JsonSerializerSettings JsonSettings = new JsonSerializerSettings
    //{
    //    ContractResolver = new NetTelegramBotApi.Util.JsonLowerCaseUnderscoreContractResolver(),
    //    NullValueHandling = NullValueHandling.Ignore,
    //};


    //protected T DeserializeMessage<T>(string json)
    //{
    //    return JsonConvert.DeserializeObject<T>(json, JsonSettings);
    //}

    //public IWebProxy WebProxy { get; set; }

    //protected virtual HttpClientHandler MakeHttpMessageHandler()
    //{
    //    return new HttpClientHandler
    //    {
    //        Proxy = WebProxy,
    //        UseProxy = (WebProxy != null)
    //    };
    //}

    //public async Task<T> MakeRequestAsync<T>(RequestBase<T> request)
    //{
    //    using (var client = new HttpClient(MakeHttpMessageHandler()))
    //    {
    //        client.BaseAddress = getBaseAddress();
    //        using (var httpMessage = new HttpRequestMessage(HttpMethod.Get, request.MethodName))
    //        {
    //            var postContent = request.CreateHttpContent();
    //            if (postContent != null)
    //            {
    //                httpMessage.Method = HttpMethod.Post;
    //                httpMessage.Content = postContent;
    //            }

    //            using (var response = await client.SendAsync(httpMessage).ConfigureAwait(false))
    //            {
    //                if ((int)response.StatusCode >= 500)
    //                {
    //                    response.EnsureSuccessStatusCode();
    //                }

    //                var responseText = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
    //                var result = DeserializeMessage<BotResponse<T>>(responseText);
    //                if (!result.Ok || !response.IsSuccessStatusCode)
    //                {
    //                    var exceptionMessage = "Request failed (status code {(int)response.StatusCode}): {result.Description}";
    //                    throw new BotRequestException(exceptionMessage)
    //                    {
    //                        StatusCode = response.StatusCode,
    //                        ResponseBody = responseText,
    //                        Description = result.Description,
    //                        ErrorCode = result.ErrorCode,
    //                        Parameters = result.Parameters,
    //                    };
    //                }

    //                var retVal = result.Result;
    //                var forPostProcessing = retVal as IPostProcessingRequired;
    //                if (forPostProcessing != null)
    //                {
    //                    forPostProcessing.PostProcess(getToken());
    //                }

    //                return retVal;
    //            }
    //        }
    //    }
    //}

    public void MakeRequest(object obj, Uri url, ref dynamic output)
    {
        dynamic ret = null;

        if (output is X_Json_Send)
        {
            ret = new X_Json_Send();
        }
        var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);

        httpWebRequest.ContentType = "application/json";
        httpWebRequest.Method      = "POST";

        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
        {
            string json = JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.None,
                                                      new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            });
            streamWriter.Write(json);
            streamWriter.Flush();
            streamWriter.Close();
        }

        try
        {
            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                var result = streamReader.ReadToEnd();
                if (output != null)
                {
                    ParseTelegramJson(result, ref ret);
                    output = ret;
                }
                else
                {
                    output = result;
                }
            }
        }
        catch (Exception ex)
        {
        }
    }
Beispiel #5
0
    public void ParseTelegramJson(String json, ref dynamic output)
    {
        if (output is X_Json_Update)
        {
            output = new X_Json_Update();
        }
        else if (output is X_Json_Me)
        {
            output = new X_Json_Me();
        }
        else if (output is X_Json_Send)
        {
            output = new X_Json_Send();
        }
        else if (output is X_Json_WebHook)
        {
            output = new X_Json_WebHook();
        }
        else if (output is X_Json_CallBack)
        {
            output = new X_Json_CallBack();
        }

        String error = "";

        string result = json;

        try
        {
            if (!string.IsNullOrEmpty(result))
            {
                try
                {
                    dynamic deserializedMessages = null;
                    if (output is X_Json_Update)
                    {
                        deserializedMessages = new X_Json_Update();
                        deserializedMessages = JsonConvert.DeserializeObject <X_Json_Update>(result);
                    }
                    else if (output is X_Json_Me)
                    {
                        deserializedMessages = new X_Json_Me();
                        deserializedMessages = JsonConvert.DeserializeObject <X_Json_Me>(result);
                    }
                    else if (output is X_Json_Send)
                    {
                        deserializedMessages = new X_Json_Send();
                        deserializedMessages = JsonConvert.DeserializeObject <X_Json_Send>(result);
                    }
                    else if (output is X_Json_WebHook)
                    {
                        deserializedMessages = new X_Json_WebHook();
                        deserializedMessages = JsonConvert.DeserializeObject <X_Json_WebHook>(result);
                    }
                    else if (output is X_Json_CallBack)
                    {
                        deserializedMessages = new X_Json_CallBack();
                        deserializedMessages = JsonConvert.DeserializeObject <X_Json_CallBack>(result);
                    }

                    if (deserializedMessages == null)
                    {
                        error        = "E003: " + "Deserialized Messages are NULL";
                        output.ERROR = error;
                    }
                    else
                    {
                        if (output is X_Json_WebHook)
                        {
                            output       = deserializedMessages;
                            output.ERROR = "NaN";
                        }
                        else if (output is X_Json_CallBack)
                        {
                            output       = deserializedMessages;
                            output.ERROR = "NaN";
                        }
                        else
                        {
                            if (deserializedMessages.ok)
                            {
                                output       = deserializedMessages;
                                output.ERROR = "NaN";
                            }
                            else
                            {
                                error        = "E004: " + "Deserialized Messages are NOT OK!";
                                output.ERROR = error;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    error        = "E005: " + ex.Message;
                    output.ERROR = error;
                }
            }
        }
        catch (Exception ex)
        {
            error        = "E006: " + ex.Message;
            output.ERROR = error;
        }
    }
Beispiel #6
0
    ///////////////////////////////////////////////////////////////////////////////////

    private void WebService(String telegram_url, ref dynamic output)
    {
        if (output is X_Json_Update)
        {
            output = new X_Json_Update();
        }
        else if (output is X_Json_Me)
        {
            output = new X_Json_Me();
        }
        else if (output is X_Json_Send)
        {
            output = new X_Json_Send();
        }
        else if (output is X_Json_WebHook)
        {
            output = new X_Json_WebHook();
        }

        byte[] byteReceiveData = null;
        String error           = "";

        using (var wc = new System.Net.WebClient())
        {
            try
            {
                byteReceiveData = wc.DownloadData(telegram_url);
            }
            catch (Exception ex)
            {
                error        = "E001: " + ex.Message;
                output.ERROR = error;
            }
        }
        if (byteReceiveData != null)
        {
            Stream streamMemory = null;
            try
            {
                streamMemory = new MemoryStream(byteReceiveData);
            }
            catch (Exception ex)
            {
                error        = "E002: " + ex.Message;
                output.ERROR = error;
            }

            if (streamMemory != null)
            {
                byte[] byteCopyData = new byte[byteReceiveData.Length];
                for (int i = 0; i < byteReceiveData.Length; i++)
                {
                    byteCopyData[i] = byteReceiveData[i];
                }

                string result = System.Text.Encoding.UTF8.GetString(byteCopyData);

                try
                {
                    if (!string.IsNullOrEmpty(result))
                    {
                        try
                        {
                            dynamic deserializedMessages = null;
                            if (output is X_Json_Update)
                            {
                                deserializedMessages = new X_Json_Update();
                                deserializedMessages = JsonConvert.DeserializeObject <X_Json_Update>(result);
                            }
                            else if (output is X_Json_Me)
                            {
                                deserializedMessages = new X_Json_Me();
                                deserializedMessages = JsonConvert.DeserializeObject <X_Json_Me>(result);
                            }
                            else if (output is X_Json_Send)
                            {
                                deserializedMessages = new X_Json_Send();
                                deserializedMessages = JsonConvert.DeserializeObject <X_Json_Send>(result);
                            }
                            else if (output is X_Json_WebHook)
                            {
                                deserializedMessages = new X_Json_WebHook();
                                deserializedMessages = JsonConvert.DeserializeObject <X_Json_WebHook>(result);
                            }
                            if (deserializedMessages == null)
                            {
                                error        = "E003: " + "Deserialized Messages are NULL";
                                output.ERROR = error;
                            }
                            else
                            {
                                if (deserializedMessages.ok)
                                {
                                    output       = deserializedMessages;
                                    output.ERROR = "NaN";
                                }
                                else
                                {
                                    error        = "E004: " + "Deserialized Messages are NOT OK!";
                                    output.ERROR = error;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            error        = "E005: " + ex.Message;
                            output.ERROR = error;
                        }
                    }
                }
                catch (Exception ex)
                {
                    error        = "E006: " + ex.Message;
                    output.ERROR = error;
                }
            }
        }
        else
        {
            error        = "E007: " + "Received Data(byte) is NULL";
            output.ERROR = error;
        }
    }