Ejemplo n.º 1
0
 /// <summary>
 /// StreamMessaged イベントを発行します。
 /// </summary>
 protected virtual void OnStreamMessaged(StreamEventArgs e)
 {
     if (StreamMessaged != null)
     {
         StreamMessaged(this, e);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Stream イベントを発行します。
 /// </summary>
 protected virtual void OnStream(StreamEventArgs e)
 {
     if (Stream != null)
     {
         Stream(this, e);
     }
 }
Ejemplo n.º 3
0
        private void StreamingCallback(object sender, StreamEventArgs e)
        {
            this.Deley = 0;
            var json = Twitch.Utility.DynamicJson.Parse(e.Data);

            // Status deleted
            if (json.IsDefined("delete"))
            {
                this.OnStatusDeletion(
                    new StatusDeletionEventArgs
                {
                    ID           = (Int64)json["delete"]["status"]["id"],
                    StringID     = json["delete"]["status"]["id_str"],
                    UserID       = (Int64)json["delete"]["status"]["user_id"],
                    StringUserID = json["delete"]["status"]["user_id_str"]
                }
                    );
                return;
            }
            // Disconnected
            else if (json.IsDefined("disconnect"))
            {
                this.OnDisconnected(
                    new DisconnectedEventArgs
                {
                    Code       = (int)json["code"],
                    StreamName = json["stream_name"],
                    Reason     = json["reason"]
                }
                    );
                return;
            }
            else
            {
                this.OnStreamMessaged(new StreamEventArgs(e.Data));
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// イベントの振り分けを行います。
        /// </summary>
        private void StreamingCallback(object sender, StreamEventArgs e)
        {
            var json = Twitch.Utility.DynamicJson.Parse(e.Data);

            #region Filing

            // Events
            if (json.IsDefined("event"))
            {
                #region Events
                switch ((string)json["event"])
                {
                    case "block":
                        this.OnBlocked(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "unblock":
                        this.OnUnBlocked(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "favorite":
                        this.OnFavorited(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = new Twitter.Status(json["target_object"].ToString()),
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "unfavorite":
                        this.OnUnFavorited(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = new Twitter.Status(json["target_object"].ToString()),
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "follow":
                        this.OnFollowed(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "unfollow":
                        this.OnUnFollowed(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "list_created":
                        this.OnListCreated(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "list_destroyed":
                        this.OnListDestoryed(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "list_updated":
                        this.OnListUpdated(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "list_member_added":
                        this.OnListMemberAdded(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "list_member_removed":
                        this.OnListMemberRemoved(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "list_user_subscribed":
                        this.OnListUserSubscribed(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "list_user_unsubscribed":
                        this.OnListUserUnSubscribed(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    case "user_update":
                        this.OnUserUpdated(
                            new StreamEventEventArgs
                            {
                                Target = new Twitter.User(json["target"].ToString()),
                                Source = new Twitter.User(json["source"].ToString()),
                                Event = json["event"],
                                TargetObject = null,
                                CreatedAt = json["created_at"],
                            }
                        );
                        break;

                    default:
                        if (!this.IsTolerance)
                            throw new ApplicationException(
                                "不明なイベントが発行されました。\"" + (string)json["event"] + "\"" + Environment.NewLine +
                                "この種の予期しないメッセージに対して例外を発生させない場合は、このStreamの IsTolerance プロパティを true に設定してください。");
                        break;
                }
                #endregion
            }
            // Friends lists
            else if (json.IsDefined("friends"))
            {
                if (this.IsReceiveFriendsList)
                    this.OnSendFriendsListsMessaged(
                        new FriendsListsEventArgs
                        {
                            IntList = (Int64[])json
                        }
                    );
                else
                    return;
            }
            // Friends lists (str)
            else if (json.IsDefined("friends_str"))
            {
                if (this.IsReceiveFriendsList)
                    this.OnSendFriendsListsMessaged(
                        new FriendsListsEventArgs
                        {
                            StringList = json
                        }
                    );
                else
                    return;
            }
            // Status
            else
            {
                Twitter.Status status;

                try
                {
                    status = new Twitter.Status(json.ToString());
                }
                catch
                {
                    if (!this.IsTolerance)
                        throw new ApplicationException(
                            "不明なメッセージが発行されました。\"" + json.ToString() + "\"" + Environment.NewLine +
                            "この種の予期しないメッセージに対して例外を発生させない場合は、このStreamの IsTolerance プロパティを true に設定してください。");
                    return;
                }

                this.OnStatusUpdated(
                    new StatusUpdatedEventArgs
                    {
                        Status = status
                    }
                );
            }

            #endregion
        }
Ejemplo n.º 5
0
 /// <summary>
 /// StreamMessaged イベントを発行します。
 /// </summary>
 protected virtual void OnStreamMessaged(StreamEventArgs e)
 {
     if (StreamMessaged != null)
         StreamMessaged(this, e);
 }
Ejemplo n.º 6
0
        private void StreamingCallback(object sender, StreamEventArgs e)
        {
            this.Deley = 0;
            var json = Twitch.Utility.DynamicJson.Parse(e.Data);

            // Status deleted
            if (json.IsDefined("delete"))
            {
                this.OnStatusDeletion(
                    new StatusDeletionEventArgs
                    {
                        ID = (Int64)json["delete"]["status"]["id"],
                        StringID = json["delete"]["status"]["id_str"],
                        UserID = (Int64)json["delete"]["status"]["user_id"],
                        StringUserID = json["delete"]["status"]["user_id_str"]
                    }
                );
                return;
            }
            // Disconnected
            else if (json.IsDefined("disconnect"))
            {
                this.OnDisconnected(
                    new DisconnectedEventArgs
                    {
                        Code = (int)json["code"],
                        StreamName = json["stream_name"],
                        Reason = json["reason"]
                    }
                );
                return;
            }
            else
            {
                this.OnStreamMessaged(new StreamEventArgs(e.Data));
            }
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Stream イベントを発行します。
 /// </summary>
 protected virtual void OnStream(StreamEventArgs e)
 {
     if (Stream != null)
         Stream(this, e);
 }
Ejemplo n.º 8
0
 private void StreamingCallback(object sender, StreamEventArgs e)
 {
     var json = Twitch.Utility.DynamicJson.Parse(e.Data);
     Console.WriteLine(e.Data);
 }
Ejemplo n.º 9
0
        /// <summary>
        /// イベントの振り分けを行います。
        /// </summary>
        private void StreamingCallback(object sender, StreamEventArgs e)
        {
            var json = Twitch.Utility.DynamicJson.Parse(e.Data);

            #region Filing

            // Events
            if (json.IsDefined("event"))
            {
                #region Events
                switch ((string)json["event"])
                {
                case "block":
                    this.OnBlocked(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "unblock":
                    this.OnUnBlocked(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "favorite":
                    this.OnFavorited(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = new Status(json["target_object"].ToString()),
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "favorited_retweet":
                    this.OnFavoritedRetweet(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = new Status(json["target_object"].ToString()),
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "unfavorite":
                    this.OnUnFavorited(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = new Status(json["target_object"].ToString()),
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "follow":
                    this.OnFollowed(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "unfollow":
                    this.OnUnFollowed(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "list_created":
                    this.OnListCreated(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "list_destroyed":
                    this.OnListDestoryed(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "list_updated":
                    this.OnListUpdated(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "list_member_added":
                    this.OnListMemberAdded(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "list_member_removed":
                    this.OnListMemberRemoved(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "list_user_subscribed":
                    this.OnListUserSubscribed(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "list_user_unsubscribed":
                    this.OnListUserUnSubscribed(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                case "user_update":
                    this.OnUserUpdated(
                        new StreamEventEventArgs
                    {
                        Target       = new Entity.User(json["target"].ToString()),
                        Source       = new Entity.User(json["source"].ToString()),
                        Event        = json["event"],
                        TargetObject = null,
                        CreatedAt    = json["created_at"],
                    }
                        );
                    break;

                default:
                    if (!this.IsTolerance)
                    {
                        throw new ApplicationException(
                                  "不明なイベントが発行されました。\"" + (string)json["event"] + "\"" + Environment.NewLine +
                                  "この種の予期しないメッセージに対して例外を発生させない場合は、このStreamの IsTolerance プロパティを true に設定してください。");
                    }
                    break;
                }
                #endregion
            }
            // Friends lists
            else if (json.IsDefined("friends"))
            {
                if (this.IsReceiveFriendsList)
                {
                    this.OnSendFriendsListsMessaged(
                        new FriendsListsEventArgs
                    {
                        IntList = (Int64[])json
                    }
                        );
                }
                else
                {
                    return;
                }
            }
            // Friends lists (str)
            else if (json.IsDefined("friends_str"))
            {
                if (this.IsReceiveFriendsList)
                {
                    this.OnSendFriendsListsMessaged(
                        new FriendsListsEventArgs
                    {
                        StringList = json
                    }
                        );
                }
                else
                {
                    return;
                }
            }
            // Status
            else
            {
                Status status;

                try
                {
                    status = new Status(json.ToString());
                }
                catch
                {
                    if (!this.IsTolerance)
                    {
                        throw new ApplicationException(
                                  "不明なメッセージが発行されました。\"" + json.ToString() + "\"" + Environment.NewLine +
                                  "この種の予期しないメッセージに対して例外を発生させない場合は、このStreamの IsTolerance プロパティを true に設定してください。");
                    }
                    return;
                }

                this.OnStatusUpdated(
                    new StatusUpdatedEventArgs
                {
                    Status = status
                }
                    );
            }

            #endregion
        }