public static Packet[] Package(int id, Enums.MessageTarget target, string message) { int totalPackets = message.Length % 512 > 1 ? message.Length / 512 : (message.Length / 512) - 1; bool first = true; var packets = new List <Packet>(); while (true) { if (first) { packets.Add(ProcessFirstChunk(message.Length, message.Substring(0, 512), id, target)); first = false; message = message.Substring(512); } else { if (message.Length > 512) { packets.Add(ProcessBodyChunk(message.Substring(0, 512), id, target)); message = message.Substring(512); } else { packets.Add(ProcessLastChunk(message, id, target)); break; } } } return(packets.ToArray()); }
public static Packet[] Package(int id, Enums.MessageTarget target, byte[] img) { int totalPackets = img.Length % 512 > 1 ? img.Length / 512 : (img.Length / 512) - 1; bool first = true; var packets = new List <Packet>(); while (true) { if (first) { packets.Add(ProcessFirstChunk(img.Length, img.Take(512).ToArray(), id, target)); first = false; img = img.Skip(512).ToArray(); } else { if (img.Length > 512) { packets.Add(ProcessBodyChunk(img.Take(512).ToArray(), id, target)); img = img.Skip(512).ToArray(); } else { packets.Add(ProcessLastChunk(img, id, target)); break; } } } return(packets.ToArray()); }
private static Packet ProcessBodyChunk(string message, int id, Enums.MessageTarget target) { Packet SendImage = new Packet(); SendImage.Command = "MESG"; SendImage.Headers.Add("content-type", "text/plain"); SendImage.Headers.Add("correlation-id", "32840"); SendImage.Headers.Add("mesg-id", id.ToString()); SendImage.Headers.Add("mesg-target", ((int)target).ToString()); SendImage.Headers.Add("target-id", id.ToString()); SendImage.Payload = message; return(SendImage); }
private static Packet ProcessBodyChunk(byte[] data, int id, Enums.MessageTarget target) { Packet SendImage = new Packet(); SendImage.Command = "MESG"; SendImage.Headers.Add("content-type", "image/jpeg"); SendImage.Headers.Add("correlation-id", "32840"); SendImage.Headers.Add("mesg-id", id.ToString()); SendImage.Headers.Add("mesg-target", ((int)target).ToString()); SendImage.Headers.Add("target-id", id.ToString()); SendImage.Payload = Encoding.GetEncoding("windows-1252").GetString(data); return(SendImage); }
/*public static Packet[] ChangeProfilePicture(byte[] image) * { * return IconPacket.Package(image); * } * * public static Packet RequestProfile(int contactID) * { * var packet = new Packet("SUB PROFILE QUERY"); * packet.AddHeader("mesg-id", "33925"); * var dataMaps = new DataMap(); * dataMaps.SetValue("Sub-Id", contactID); * packet.Payload = Encoding.GetEncoding("windows-1252").GetString(dataMaps.Serialize()); * return packet; * } * * public static Packet RequestProfile(int contactID, int targetGroup) * { * var req = new Profiles { ContactID = contactID, GroupID = targetGroup }; * if (!Static.RequestedProfiles.Contains(req)) * Static.RequestedProfiles.Add(req); * return RequestProfile(contactID); * }*/ #endregion User Profile Stuff #region Messages private static Packet MessagePacket(Enums.MessageTarget Target, int TargetID, string Message) { return(new Packet("MESG") { Headers = new Dictionary <string, string> { { "content-type", "text/plain" }, { "total-length", Message.Length.ToString() }, { "last", "T" }, { "mesg-id", "1" }, { "mesg-target", ((int)Target).ToString() }, { "target-id", TargetID.ToString() } }, Payload = Message, }); }