本文整理汇总了C#中Smuxi.Engine.MessageModel.GetNick方法的典型用法代码示例。如果您正苦于以下问题:C# MessageModel.GetNick方法的具体用法?C# MessageModel.GetNick怎么用?C# MessageModel.GetNick使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Smuxi.Engine.MessageModel
的用法示例。
在下文中一共展示了MessageModel.GetNick方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: MessageHookEnvironment
public MessageHookEnvironment(MessageModel msg, string sender, string receiver)
{
if (msg == null) {
throw new ArgumentNullException("msg");
}
if (sender == null) {
throw new ArgumentNullException("sender");
}
if (receiver == null) {
throw new ArgumentNullException("receiver");
}
var nick = msg.GetNick();
var message = msg.ToString();
if (String.IsNullOrEmpty(nick)) {
this["MSG"] = message;
} else {
this["MSG"] = message.Substring(nick.Length + 3);
}
this["MSG_TYPE"] = msg.MessageType.ToString();
var timestamp = (Int64) (msg .TimeStamp - UnixEpoch).TotalSeconds;
this["MSG_TIMESTAMP_UNIX"] = timestamp.ToString();
this["MSG_TIMESTAMP_ISO_UTC"] = msg.TimeStamp.ToString("u").Replace('Z', ' ').TrimEnd();
this["MSG_TIMESTAMP_ISO_LOCAL"] = msg.TimeStamp.ToLocalTime().ToString("u").Replace('Z', ' ').TrimEnd();
this["SENDER"] = sender;
this["RECEIVER"] = receiver;
}
示例2: AddMessage
public override void AddMessage(MessageModel msg)
{
base.AddMessage(msg);
var nick = msg.GetNick();
if (nick == null) {
return;
}
// update who spoke last
for (int i = 0; i < Participants.Count; ++i) {
var speaker = Participants[i];
if (speaker.IdentityName == nick) {
Participants.RemoveAt(i);
Participants.Insert(0, speaker);
break;
}
}
}
示例3: InsertTimeStamp
protected override void InsertTimeStamp(Gtk.TextBuffer buffer, ref Gtk.TextIter iter,
string timestamp, MessageModel msg)
{
if (String.IsNullOrWhiteSpace(msg.ID)) {
buffer.Insert(ref iter, timestamp);
} else {
var uri = new Uri(String.Format("https://twitter.com/{0}/status/{1}", msg.GetNick(), msg.ID));
var tags = new List<Gtk.TextTag>();
// link URI tag
var linkTag = new LinkTag(uri);
linkTag.TextEvent += OnLinkTagTextEvent;
_MessageTextTagTable.Add(linkTag);
tags.Add(linkTag);
// link style tag
tags.Add(LinkTag);
buffer.InsertWithTags(ref iter, timestamp, tags.ToArray());
}
buffer.Insert(ref iter, " ");
}
示例4: AddMessage
//.........这里部分代码省略.........
} else if (msgPart is TextMessagePartModel) {
var tags = new List<Gtk.TextTag>();
TextMessagePartModel fmsgti = (TextMessagePartModel) msgPart;
if (fmsgti.ForegroundColor != TextColor.None) {
var bg = ColorConverter.GetTextColor(BackgroundColor);
if (fmsgti.BackgroundColor != TextColor.None) {
bg = fmsgti.BackgroundColor;
}
TextColor color = TextColorTools.GetBestTextColor(
fmsgti.ForegroundColor, bg
);
string tagname = GetTextTagName(color, null);
var tag = _MessageTextTagTable.Lookup(tagname);
tags.Add(tag);
}
if (fmsgti.BackgroundColor != TextColor.None) {
// TODO: get this from ChatView
string tagname = GetTextTagName(null, fmsgti.BackgroundColor);
var tag = _MessageTextTagTable.Lookup(tagname);
tags.Add(tag);
}
if (fmsgti.Underline) {
#if LOG4NET && MSG_DEBUG
_Logger.Debug("AddMessage(): fmsgti.Underline is true");
#endif
tags.Add(UnderlineTag);
}
if (fmsgti.Bold) {
#if LOG4NET && MSG_DEBUG
_Logger.Debug("AddMessage(): fmsgti.Bold is true");
#endif
tags.Add(BoldTag);
}
if (fmsgti.Italic) {
#if LOG4NET && MSG_DEBUG
_Logger.Debug("AddMessage(): fmsgti.Italic is true");
#endif
tags.Add(ItalicTag);
}
if (tags.Count > 0) {
buffer.InsertWithTags(ref iter, fmsgti.Text, tags.ToArray());
} else {
buffer.Insert(ref iter, fmsgti.Text);
}
}
}
var startIter = buffer.GetIterAtMark(startMark);
if (msg.MessageType == MessageType.Event) {
buffer.ApplyTag(EventTag, startIter, iter);
}
if (indentTag != null) {
buffer.ApplyTag(indentTag, startIter, iter);
}
var nick = msg.GetNick();
if (nick != null) {
// TODO: re-use the same person tag for the same nick
var personTag = new PersonTag(nick, nick);
personTag.TextEvent += OnPersonTagTextEvent;
_MessageTextTagTable.Add(personTag);
var msgStartIter = buffer.GetIterAtMark(msgStartMark);
var nickEndIter = msgStartIter;
nickEndIter.ForwardChars(nick.Length + 2);
buffer.ApplyTag(PersonTag, msgStartIter, nickEndIter);
buffer.ApplyTag(personTag, msgStartIter, nickEndIter);
}
buffer.DeleteMark(startMark);
buffer.DeleteMark(msgStartMark);
if (addLinebreak) {
buffer.Insert(ref iter, "\n");
}
CheckBufferSize();
if (IsGtk2_17) {
// HACK: force a redraw of the widget, as for some reason
// GTK+ 2.17.6 is not redrawing some lines we add here, especially
// for local messages. See:
// http://projects.qnetp.net/issues/show/185
QueueDraw();
}
if (Frontend.IsWindows && _LastMessage == null) {
// HACK: workaround rendering issue on Windows where the
// first inserted text is not showing up until the next insert
QueueDraw();
}
if (MessageAdded != null) {
MessageAdded(this, new MessageTextViewMessageAddedEventArgs(msg));
}
if (hasHighlight) {
if (MessageHighlighted != null) {
MessageHighlighted(this, new MessageTextViewMessageHighlightedEventArgs(msg));
}
}
_LastMessage = msg;
}
示例5: AddMessage
public void AddMessage(MessageModel msg, bool addLinebreak, bool showTimestamps)
{
#if MSG_DEBUG
Trace.Call(msg, addLinebreak);
#endif
if (msg == null) {
throw new ArgumentNullException("msg");
}
var buffer = Buffer;
var iter = buffer.EndIter;
var startMark = new Gtk.TextMark(null, true);
buffer.AddMark(startMark, iter);
var senderPrefixWidth = GetSenderPrefixWidth(msg);
Gtk.TextTag indentTag = null;
if (senderPrefixWidth != 0) {
// TODO: re-use text tags that have the same indent width
indentTag = new Gtk.TextTag(null) {
Indent = -senderPrefixWidth
};
_MessageTextTagTable.Add(indentTag);
}
if (showTimestamps) {
var msgTimeStamp = msg.TimeStamp.ToLocalTime();
if (_LastMessage != null) {
var lastMsgTimeStamp = _LastMessage.TimeStamp.ToLocalTime();
var span = msgTimeStamp.Date - lastMsgTimeStamp.Date;
if (span.Days > 0) {
var dayLine = new MessageBuilder().
AppendEventPrefix();
if (span.Days > 1) {
dayLine.AppendText(_("Day changed from {0} to {1}"),
lastMsgTimeStamp.ToShortDateString(),
msgTimeStamp.ToShortDateString());
} else {
dayLine.AppendText(_("Day changed to {0}"),
msgTimeStamp.ToLongDateString());
}
dayLine.AppendText("\n");
var dayLineMsg = dayLine.ToMessage().ToString();
Buffer.InsertWithTags(ref iter, dayLineMsg, EventTag);
}
}
string timestamp = null;
try {
string format = (string)Frontend.UserConfig["Interface/Notebook/TimestampFormat"];
if (!String.IsNullOrEmpty(format)) {
timestamp = msgTimeStamp.ToString(format);
}
} catch (FormatException e) {
timestamp = "Timestamp Format ERROR: " + e.Message;
}
if (timestamp != null) {
InsertTimeStamp(buffer, ref iter, timestamp, msg);
// apply timestamp width to indent tag
if (indentTag != null) {
indentTag.Indent -= GetPangoWidth(timestamp);
}
}
}
var msgStartMark = new Gtk.TextMark(null, true);
buffer.AddMark(msgStartMark, iter);
bool hasHighlight = false;
foreach (MessagePartModel msgPart in msg.MessageParts) {
// supposed to be used only in a ChatView
if (msgPart.IsHighlight) {
hasHighlight = true;
}
// TODO: implement all types
if (msgPart is UrlMessagePartModel) {
InsertToBuffer(buffer, ref iter, (UrlMessagePartModel) msgPart);
} else if (msgPart is TextMessagePartModel) {
InsertToBuffer(buffer, ref iter, (TextMessagePartModel) msgPart);
} else if (msgPart is ImageMessagePartModel) {
InsertToBuffer(buffer, ref iter, (ImageMessagePartModel) msgPart);
}
}
var startIter = buffer.GetIterAtMark(startMark);
if (msg.MessageType == MessageType.Event) {
buffer.ApplyTag(EventTag, startIter, iter);
}
if (indentTag != null) {
buffer.ApplyTag(indentTag, startIter, iter);
}
var nick = msg.GetNick();
if (nick != null) {
// TODO: re-use the same person tag for the same nick
var personTag = new PersonTag(nick, nick);
personTag.TextEvent += OnPersonTagTextEvent;
_MessageTextTagTable.Add(personTag);
//.........这里部分代码省略.........