public void SendMessageToBuddy(string message) { Pidgin.IPidgin prpl; int account, conversation, im; prpl = Pidgin.FindInstance(); try { Pidgin.GetBuddyIsOnlineAndAccount(this.screen_name, out account); if (account == -1) { account = prpl.PurpleAccountsFindConnected("", ""); } conversation = prpl.PurpleConversationNew(Pidgin.PURPLE_CONV_TYPE_IM, account, this.screen_name); prpl.PurpleConversationPresent(conversation); im = prpl.PurpleConvIm(conversation); prpl.PurpleConvImSend(im, message); } catch (Exception e) { Console.Error.WriteLine("Could not create new Pidgin conversation: {0}", e.Message); } }
public override IEnumerable <Item> Perform(IEnumerable <Item> items, IEnumerable <Item> modItems) { Item item = items.First(); Item moditem = modItems.First(); string name = null; if (item is ContactItem && moditem is IFileItem) { // Just grab the first protocol we see. ContactItem contact = item as ContactItem; foreach (string detail in contact.Details) { if (detail.StartsWith("prpl-")) { name = contact[detail]; // If this buddy is online, break, else keep looking. if (Pidgin.BuddyIsOnline(name)) { break; } } } } if (name != null) { new Thread((ThreadStart) delegate { IFileItem file = moditem as IFileItem; WoofServer ws = new WoofServer(name); ws.ServeFile(file.Path); return; }).Start(); } return(null); }