private static List<TwitterStatus> SendTextMessage(TwitterService service, MessageEntity message) { List<TwitterStatus> statuses = new List<TwitterStatus>(); String hashTag = String.Format("{0}{1}", "#LiveSkypeChat", Environment.NewLine); //TODO: module - defining current top hashtag List<string> splittedTwitterMessage = SplitMessage(message.TwitterMessage, hashTag); int messgaeIndex = 0; foreach (string messagePart in splittedTwitterMessage) { String twitterMessage = String.Empty; messgaeIndex++; if (splittedTwitterMessage.Count > 1) { String counter = String.Format("{0}/{1}{2}", messgaeIndex, splittedTwitterMessage.Count, Environment.NewLine); twitterMessage = String.Format("{0}{1}{2}: {3}", hashTag, counter, message.TwitterNick, messagePart); } else { twitterMessage = String.Format("{0}{1}: {2}", hashTag, message.TwitterNick, messagePart); } TwitterStatus status = service.SendTweet(new SendTweetOptions { Status = twitterMessage }); statuses.Add(status); } return statuses; }
public static void SendMessage(MessageEntity message) { TwitterService service = InitializeTwitterService(); //check if message contains image url //if (Constants.IMAGE_EXTS.Where(x => message.Message.IndexOf(x, StringComparison.OrdinalIgnoreCase) > -1).Count() > 0) //{ // status = SendImageMessage(service, message); //} //else //{ // status = SendTextMessage(service, message); //} List<TwitterStatus> statuses = SendTextMessage(service, message); }
private static TwitterStatus SendImageMessage(TwitterService service, MessageEntity message) { TwitterStatus status = null; try { HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(message.Message); WebResponse myResp = myReq.GetResponse(); using (Stream stream = myResp.GetResponseStream()) using (MemoryStream ms = new MemoryStream()) { int count = 0; do { byte[] buf = new byte[1024]; count = stream.Read(buf, 0, 1024); ms.Write(buf, 0, count); } while (stream.CanRead && count > 0); status = service.SendTweetWithMedia(new SendTweetWithMediaOptions() { Status = message.Message, DisplayCoordinates = false, Images = new Dictionary<string, Stream>() { {message.TwitterNick, ms} } }); } } catch (Exception ex) { Extentions.ConsoleWriteLine(ex.Message, ConsoleColor.Red); } return status; }
public static void InsertMessage(MessageEntity message) { CreateTable(message.ChatID); ExecuteCommand(string.Format(Constants.COMMAND_INSERT_MESSAGE, message.ChatID, message.Sender, message.Message.Replace("'", "_"), message.Timestamp)); }
private static void OnMessageReceived(ChatMessage pMessage, TChatMessageStatus status) { if (status == TChatMessageStatus.cmsReceived) { Console.WriteLine("[{0}] [{1}] [{2}]", DateTime.Now.ToString("hh:mm:ss"), pMessage.Sender.FullName, pMessage.Body.Replace(Environment.NewLine, " |")); string answer = string.Empty; if (Slave.HandleMessage(pMessage, out answer)) { MessageEntity messageEnt = new MessageEntity(pMessage); DBTools.InsertMessage(messageEnt); if (messageEnt.Secure) { TwitterTools.SendMessage(messageEnt); } } if (!String.IsNullOrEmpty(answer)) { SendMessage(answer, pMessage); } } else if (status == TChatMessageStatus.cmsSent) { Console.WriteLine("[{0}] Bot [{1}]", DateTime.Now.ToString("hh:mm:ss"), pMessage.Body.Replace(Environment.NewLine, " |")); } if (status != TChatMessageStatus.cmsSent && status != TChatMessageStatus.cmsSending) pMessage.Seen = true; }