public static void OnDirectMessage(TweetViewModel tweet) { if (AccountStorage.Contains(tweet.Status.User.ScreenName) || tweet.CreatedAt < wakeupTime) { return; } Register(new EventDescription(EventKind.DirectMessage, UserStorage.Get(tweet.Status.User), null, tweet)); }
public static void OnUnfavored(TweetViewModel tweet, UserViewModel favorer) { if (AccountStorage.Contains(favorer.TwitterUser.ScreenName)) { return; } Register(new EventDescription(EventKind.Unfavorite, favorer, UserStorage.Get(tweet.Status.User), tweet)); }
public static void OnRetweeted(TweetViewModel tweet, UserViewModel retweeter) { if (AccountStorage.Contains(retweeter.TwitterUser.ScreenName) || tweet.CreatedAt < wakeupTime) { return; } Register(new EventDescription(EventKind.Retweet, retweeter, UserStorage.Get(tweet.Status.User), tweet)); }
internal static void UpdateMute() { if (Setting.Instance.TimelineFilteringProperty.MuteFilterCluster == null) { return; } GetAll(t => Setting.Instance.TimelineFilteringProperty.MuteFilterCluster.Filter(t.Status)) .ForEach(t => { if (!AccountStorage.Contains(t.Status.User.ScreenName)) { Remove(t.bindingId); } }); }
static void RaiseStatusAdded(TweetViewModel added) { // Mention通知設定がないか、 // 自分へのMentionでない場合にのみRegisterする // + // Retweet通知設定がないか、 // 自分のTweetのRetweetでない場合にのみRegisterする if ((!Setting.Instance.NotificationProperty.NotifyMention || !TwitterHelper.IsMentionOfMe(added.Status)) && (!Setting.Instance.NotificationProperty.NotifyRetweet || !(added.Status is TwitterStatus) || ((TwitterStatus)added.Status).RetweetedOriginal == null || !AccountStorage.Contains(((TwitterStatus)added.Status).RetweetedOriginal.User.ScreenName))) { NotificationCore.RegisterNotify(added); } OnTweetStorageChanged(new TweetStorageChangedEventArgs(TweetActionKind.Added, added)); NotificationCore.DispatchNotify(added); }
/// <summary> /// ステータスの追加に際しての処理 /// </summary> private static TweetViewModel RegisterStatus(TwitterStatus status) { if (status.RetweetedOriginal != null) { // リツイートのオリジナルステータスを登録 var vm = Register(status.RetweetedOriginal); // リツイートユーザーに登録 var user = UserStorage.Get(status.User); var tuser = UserStorage.Get(status.RetweetedOriginal.User); if (vm.RegisterRetweeted(user)) { if (!vm.IsStatusInfoContains) { vm.SetStatus(status.RetweetedOriginal); } // 自分が関係していれば if (AccountStorage.Contains(status.RetweetedOriginal.User.ScreenName) || AccountStorage.Contains(user.TwitterUser.ScreenName)) { EventStorage.OnRetweeted(vm, user); } } } UserStorage.Register(status.User); var registered = RegisterCore(status); // 返信先の登録 if (status.InReplyToStatusId != 0) { Get(status.InReplyToStatusId, true).RegisterInReplyToThis(status.Id); } if (TwitterHelper.IsMentionOfMe(status)) { EventStorage.OnMention(registered); } return(registered); }