public void DeseriableToXML() { var model = new TextResponseMessage { Content = "6666", //CreateTime = 123423, //FromUserName = "******", MsgType = "fff", ToUserName = "******" }; //string result = new WxTextResponse().Response(model); }
/// <summary> /// 响应消息 /// </summary> /// <param name="response">请求消息</param> /// <param name="param">请求参数</param> /// <returns></returns> public string Execute(BaseRequestMessage request, EnterParamEntity param) { string result = string.Empty; var requestType = (MsgTypeRequestEnum)Enum.Parse(typeof(MsgTypeRequestEnum), request.MsgType.ToUpperInvariant()); BaseResponseMessage responseModel = null; switch (requestType) { //文本消息 case MsgTypeRequestEnum.TEXT: responseDelegate = CreateResponseMessageFromText; result = responseDelegate(request, param); break; #region MyRegion //图片消息 case MsgTypeRequestEnum.IMAGE: responseModel = new TextResponseMessage { FromUserName = request.ToUserName, ToUserName = request.FromUserName, MsgType = MsgTypeResponseEnum.TEXT.ToString().ToLower(), Content = "您好,您发送了一张图片!" }; result = MessageFactory.CreateResponseType(responseModel, param, MsgTypeResponseEnum.TEXT); break; //视频消息 case MsgTypeRequestEnum.VIDEO: return ""; //链接消息 case MsgTypeRequestEnum.LINK: return ""; //地理消息 case MsgTypeRequestEnum.LOCATION: return ""; //短视频消息 case MsgTypeRequestEnum.SHORTVIDEO: return ""; //音频消息 case MsgTypeRequestEnum.VOICE: return ""; default: return ""; #endregion } return result; }
public CommandResult ProcessMessage(Update inUpdate) { ResponseMessage resMes = null; if (inUpdate.Type == Telegram.Bot.Types.Enums.UpdateType.EditedMessage) { resMes = new QuoteTextResponseMessage(inUpdate.EditedMessage, "Не хорошо править старые сообщения"); } else if (inUpdate.Type == Telegram.Bot.Types.Enums.UpdateType.MessageUpdate) { Message message = inUpdate.Message ?? inUpdate.EditedMessage; if ((message != null) && (!string.IsNullOrEmpty(message?.Text))) { resMes = new TextResponseMessage(message, $"Эхо: {message.Text?.Substring(0, Math.Min(255, message.Text?.Length ?? 0))}"); } else { resMes = new TextResponseMessage(message, "Ничего не понимаю"); } } return(new CommandResult(resMes, false)); }
/// <summary> /// Process messages /// </summary> /// <param name="inUpd"></param> /// <returns></returns> private async Task <bool> ProcessTgUpdate(Telegram.Bot.TelegramBotClient bot, Update inUpd) { CommandResult comRes = null; Message message = inUpd.Message ?? inUpd.EditedMessage; if (message == null) { Log("$Ошибка обработка Update"); return(false); } if ((message?.Entities?.FirstOrDefault()?.Type == MessageEntityType.BotCommand) && (commandDictionary.ContainsKey(message?.Text))) { // change command comRes = commandDictionary[message?.Text].ProcessInitialMessage(inUpd); userInCommandProcessing[message.From.Id] = message.Text; // change command for user } else if (userInCommandProcessing.ContainsKey(message.From.Id)) { comRes = commandDictionary[userInCommandProcessing[message.From.Id]].ProcessMessage(inUpd); } if (comRes == null) { var tm = new TextResponseMessage(message, "Необходимо выбрать команду"); await tm.ApplyToBot(bot); } else { if ((comRes.CommandCompleted) && (userInCommandProcessing.ContainsKey(message.From.Id))) { userInCommandProcessing.Remove(message.From.Id); } await comRes.ResultMessage.ApplyToBot(bot); } return(true); }
public CommandResult ProcessMessage(Update inUpdate) { //ResponseMessage resMes = null; //if (inUpdate.Type == Telegram.Bot.Types.Enums.UpdateType.EditedMessage) // resMes = new QuoteTextResponseMessage(inUpdate.EditedMessage, "Не хорошо править старые сообщения"); //else //{ // resMes = new TextResponseMessage(inUpdate.Message, $"Echo: {inUpdate.Message.Text.Substring(0, Math.Min(255, inUpdate.Message.Text?.Length ?? 0))}"); //} //return new CommandResult(resMes, false); CurrentWeatherResponse weather = null; if (inUpdate.Message.Type == Telegram.Bot.Types.Enums.MessageType.TextMessage) { // try to get weather base on place name weather = GetWeatherByName(inUpdate.Message.Text); } if (inUpdate.Message.Type == Telegram.Bot.Types.Enums.MessageType.LocationMessage) { weather = GetWeatherByLocation(inUpdate.Message.Location.Longitude, inUpdate.Message.Location.Latitude); } ResponseMessage resMes = null; // Подготовка результата if (weather == null) { resMes = new TextResponseMessage(inUpdate.Message, "Не удалось определить погоду"); } else { resMes = new TextResponseMessage(inUpdate.Message, weather.ConvertWeatherInText()); } return(new CommandResult(resMes, true)); }
public CommandResult ProcessInitialMessage(Update inUpdate) { var message = new TextResponseMessage(inUpdate.Message ?? inUpdate.EditedMessage, "Сообщи, где находишься?"); return(new CommandResult(message, false)); }
public CommandResult ProcessInitialMessage(Update inUpdate) { var message = new TextResponseMessage(inUpdate.Message ?? inUpdate.EditedMessage, "Привет! Пиши всё, что хочешь!"); return(new CommandResult(message, false)); }
/// <summary> /// 处理来自文本类消息 /// </summary> /// <param name="request"></param> /// <param name="param"></param> /// <returns></returns> public string CreateResponseMessageFromText(BaseRequestMessage request, EnterParamEntity param) { string result = string.Empty; BaseResponseMessage responseModel = null; var requestModel = request as TextRequestMessage; if (requestModel.Content.Equals("您好")) { responseModel = new TextResponseMessage { FromUserName = request.ToUserName, ToUserName = request.FromUserName, MsgType = MsgTypeResponseEnum.TEXT.ToString().ToLower(), Content = GetContent("") }; result = MessageFactory.CreateResponseType(responseModel, param, MsgTypeResponseEnum.TEXT); } else if (requestModel.Content.Equals("图文")) { responseModel = new NewsResponseMessage { FromUserName = request.ToUserName, ToUserName = request.FromUserName, MsgType = MsgTypeResponseEnum.NEWS.ToString().ToLower(), ArticleCount = "1", Articles = new List<Article> { new Article{ Title ="测试图文标题1", Description="测试图文描述", PicUrl="http://hn5ery.natappfree.cc/Content/images/pic1.png", Url="http://m.flm365.com/member/Index" }, new Article{ Title ="测试图文标题2", Description="测试图文描述2", PicUrl="http://hn5ery.natappfree.cc/Content/images/img1.jpg", Url="http://m.flm365.com/Member/Store" }, new Article{ Title ="测试图文标题3", Description="测试图文描述3", PicUrl="http://hn5ery.natappfree.cc/Content/images/img2.jpg", Url="http://m.flm365.com/Member/LoanList" }, } }; result = MessageFactory.CreateResponseType(responseModel, param, MsgTypeResponseEnum.NEWS); } else { responseModel = new TextResponseMessage { FromUserName = request.ToUserName, ToUserName = request.FromUserName, MsgType = MsgTypeResponseEnum.TEXT.ToString().ToLower(), Content = GetContent(requestModel.Content) }; result = MessageFactory.CreateResponseType(responseModel, param, MsgTypeResponseEnum.TEXT); } return result; }