/// <summary> /// StreamMessaged イベントを発行します。 /// </summary> protected virtual void OnStreamMessaged(StreamEventArgs e) { if (StreamMessaged != null) { StreamMessaged(this, e); } }
/// <summary> /// Stream イベントを発行します。 /// </summary> protected virtual void OnStream(StreamEventArgs e) { if (Stream != null) { Stream(this, e); } }
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)); } }
/// <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 }
/// <summary> /// StreamMessaged イベントを発行します。 /// </summary> protected virtual void OnStreamMessaged(StreamEventArgs e) { if (StreamMessaged != null) StreamMessaged(this, e); }
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)); } }
/// <summary> /// Stream イベントを発行します。 /// </summary> protected virtual void OnStream(StreamEventArgs e) { if (Stream != null) Stream(this, e); }
private void StreamingCallback(object sender, StreamEventArgs e) { var json = Twitch.Utility.DynamicJson.Parse(e.Data); Console.WriteLine(e.Data); }
/// <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 }