public bool Process(TypableMapCommandProcessor processor, PrivMsgMessage msg, Status status, string args)
 {
     processor.Session.SendServer(new NoticeMessage
     {
         Receiver = msg.Receiver,
         Content  = String.Format(
             "http://twitter.com/{0}",
             status.User.ScreenName)
     });
     return(true);
 }
 void Session_ConfigChanged(object sender, EventArgs e)
 {
     if (CurrentSession.Config.EnableTypableMap)
     {
         if (_typableMapCommands == null)
             UpdateProcessor();
         if (_typableMapCommands.TypableMapKeySize != CurrentSession.Config.TypableMapKeySize)
             _typableMapCommands.TypableMapKeySize = CurrentSession.Config.TypableMapKeySize;
     }
     else
     {
         _typableMapCommands = null;
     }
 }
            public Boolean Process(TypableMapCommandProcessor processor, PrivMsgMessage msg, Status status, String args)
            {
                Boolean isUnfav = (String.Compare(CommandName, "unfav", true) == 0);

                processor.Session.RunCheck(() =>
                {
                    Status favStatus = (isUnfav
                                                                           ? processor.Session.TwitterService.DestroyFavorite(
                                            status.Id)
                                                                           : processor.Session.TwitterService.CreateFavorite(
                                            status.Id));
                    processor.Session.SendChannelMessage(msg.Receiver, processor.Session.CurrentNick, String.Format(
                                                             "ユーザ {0} のステータス \"{1}\"をFavorites{2}しました。",
                                                             favStatus.User.ScreenName,
                                                             favStatus.Text,
                                                             (isUnfav ? "から削除" : "に追加")), true, false, false, true);
                });
                return(true);
            }
            public Boolean Process(TypableMapCommandProcessor processor, PrivMsgMessage msg, Status status, string args)
            {
                var session = processor.Session;

                if (args.Trim() == String.Empty)
                {
                    session.SendChannelMessage(msg.Receiver, Server.ServerNick, "返信に空メッセージの送信はできません。", true, false, false, true);
                    return(true);
                }

                String replyMsg = String.Format("@{0} {1}", status.User.ScreenName, args);

                // 入力が発言されたチャンネルには必ずエコーバックする。
                // 先に出しておかないとundoがよくわからなくなる。
                session.SendChannelMessage(msg.Receiver, session.CurrentNick, replyMsg, true, false, false, false);
                session.UpdateStatusWithReceiverDeferred(msg.Receiver, replyMsg, status.Id, (updatedStatus) =>
                {
                });
                return(true);
            }
        public bool Process(TypableMapCommandProcessor processor, Misuzilla.Net.Irc.PrivMsgMessage msg, Status status, string args)
        {
            Boolean isDestroy = (String.Compare(CommandName, "remove", true) == 0);

            return processor.Session.RunCheck(() =>
            {
                if (isDestroy)
                    processor.Session.TwitterService.DestroyFriendship(status.User.ScreenName);
                else
                    processor.Session.TwitterService.CreateFriendship(status.User.ScreenName);

                processor.Session.SendServer(new NoticeMessage
                {
                    Receiver = msg.Receiver,
                    Content =
                        String.Format(
                        "ユーザ {0} を {1} しました。",
                        status.User.ScreenName, (isDestroy ? "remove" : "follow")
                        )
                });
            });
        }
Esempio n. 6
0
            public Boolean Process(TypableMapCommandProcessor processor, PrivMsgMessage msg, Status status, string args)
            {
                var session = processor.Session;

                if (args.Trim() == String.Empty)
                {
                    // ここに公式RT機能を実装
                    Status retweetStatus = processor.Session.TwitterService.RetweetStatus(status.Id);
                    session.SendChannelMessage(msg.Receiver, session.CurrentNick, String.Format(
                                                   "ユーザ {0} のステータス \"{1}\"をRetweetしました。",
                                                   retweetStatus.RetweetedStatus.User.ScreenName,
                                                   retweetStatus.Text), true, false, false, true
                                               );

                    return(true);
                }
                else
                {
                    session.SendChannelMessage(msg.Receiver, Server.ServerNick, "Retweetにメッセージ添付は有効ではありません。", true, false, false, true);
                }
                return(true);
            }
            public Boolean Process(TypableMapCommandProcessor processor, PrivMsgMessage msg, Status status, string args)
            {
                var session = processor.Session;
                if (args.Trim() == String.Empty)
                {
                    // ここに公式RT機能を実装
                    Status retweetStatus = processor.Session.TwitterService.RetweetStatus(status.Id);
                    session.SendChannelMessage(msg.Receiver, session.CurrentNick, String.Format(
                        "ユーザ {0} のステータス \"{1}\"をRetweetしました。",
                        retweetStatus.RetweetedStatus.User.ScreenName,
                        retweetStatus.Text), true, false, false, true
                    );

                    return true;
                }
                else
                {
                    session.SendChannelMessage(msg.Receiver, Server.ServerNick, "Retweetにメッセージ添付は有効ではありません。", true, false, false, true);
                }
                return true;
            }
            public Boolean Process(TypableMapCommandProcessor processor, PrivMsgMessage msg, Status status, string args)
            {
                var session = processor.Session;
                if (args.Trim() == String.Empty)
                {
                    session.SendChannelMessage(msg.Receiver, Server.ServerNick, "返信に空メッセージの送信はできません。", true, false, false, true);
                    return true;
                }

                String replyMsg = String.Format("@{0} {1}", status.User.ScreenName, args);

                // 入力が発言されたチャンネルには必ずエコーバックする。
                // 先に出しておかないとundoがよくわからなくなる。
                session.SendChannelMessage(msg.Receiver, session.CurrentNick, replyMsg, true, false, false, false);
                session.UpdateStatusWithReceiverDeferred(msg.Receiver, replyMsg, status.Id, (updatedStatus) =>
                                                                                                {
                                                                                                });
                return true;
            }
 public bool Process(TypableMapCommandProcessor processor, PrivMsgMessage msg, Status status, string args)
 {
     processor.Session.SendServer(new NoticeMessage
     {
         Receiver = msg.Receiver,
         Content = String.Format(
             "http://twitter.com/{0}/statuses/{1}",
             status.User.ScreenName,
             status.Id)
     });
     return true;
 }
 public bool Process(TypableMapCommandProcessor processor, PrivMsgMessage msg, Status status, string args)
 {
     return _processCommandDelegate(processor, msg, status, args);
 }
 public Boolean Process(TypableMapCommandProcessor processor, PrivMsgMessage msg, Status status, String args)
 {
     Boolean isUnfav = (String.Compare(CommandName, "unfav", true) == 0);
     processor.Session.RunCheck(() =>
                                    {
                                        Status favStatus = (isUnfav
                                                                ? processor.Session.TwitterService.DestroyFavorite(
                                                                      status.Id)
                                                                : processor.Session.TwitterService.CreateFavorite(
                                                                      status.Id));
                                        processor.Session.SendChannelMessage(msg.Receiver, processor.Session.CurrentNick, String.Format(
                                                                                 "ユーザ {0} のステータス \"{1}\"をFavorites{2}しました。",
                                                                                 favStatus.User.ScreenName,
                                                                                 favStatus.Text,
                                                                                 (isUnfav ? "から削除" : "に追加")), true, false, false, true);
                                    });
     return true;
 }
 public bool Process(TypableMapCommandProcessor processor, PrivMsgMessage msg, Status status, string args)
 {
     return(_processCommandDelegate(processor, msg, status, args));
 }
 void UpdateProcessor()
 {
     _typableMapCommands = new TypableMapCommandProcessor(TypableMapFactory, CurrentSession, CurrentSession.Config.TypableMapKeySize);
 }