protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { // conversation control var vm = TweetStorage.Get(status.Id); if (status is TwitterDirectMessage) { var dm = (TwitterDirectMessage)status; return (dm.Sender.ScreenName.Equals(user1, StringComparison.CurrentCultureIgnoreCase) && dm.Recipient.ScreenName.Equals(user2, StringComparison.CurrentCultureIgnoreCase)) || (dm.Sender.ScreenName.Equals(user2, StringComparison.CurrentCultureIgnoreCase) && dm.Recipient.ScreenName.Equals(user1, StringComparison.CurrentCultureIgnoreCase)); } else { if (!status.User.ScreenName.Equals(user1, StringComparison.CurrentCultureIgnoreCase) && !status.User.ScreenName.Equals(user2, StringComparison.CurrentCultureIgnoreCase)) return false; // ここおかしい, @が入る // あとユーザー名マッチングを使えるように if (RegularExpressions.AtRegex.Matches(status.Text).Cast<Match>() .Any(m => m.Value.Equals("@" + user1, StringComparison.CurrentCultureIgnoreCase) || m.Value.Equals("@" + user2, StringComparison.CurrentCultureIgnoreCase))) return true; if (vm != null && vm.InReplyFroms.Select(id => TweetStorage.Get(id)) .Where(irvm => irvm != null) .Any(irvm => irvm.Status.User.ScreenName.Equals(user1, StringComparison.CurrentCultureIgnoreCase) || irvm.Status.User.ScreenName.Equals(user2, StringComparison.CurrentCultureIgnoreCase))) return true; else return false; } }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { // 自分自身が登録されているフィルタ以外の一覧を取得する var filters = KernelService.MainWindowViewModel.ColumnOwnerViewModel.Columns .SelectMany(c => c.TabItems.Select(t => t.TabProperty.TweetSources)) .Where(f => f.SelectMany(i => Explode(i)) .OfType<ExceptedFilter>() .FirstOrDefault() == null) .SelectMany(i => i); // どのフィルタにもキャプチャされない return filters.Where(f => f.Filter(status)).FirstOrDefault() == null; }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { var ts = status as TwitterStatus; if (ts != null && ts.RetweetedOriginal != null && !acceptBlocking) { return AccountStorage.Accounts.Where(i => Match(i.ScreenName, needle)) .Any(i => i.IsFollowing(status.User.NumericId)) && AccountStorage.Accounts.Where(i => Match(i.ScreenName, needle)) .All(i => !i.IsBlocking(ts.RetweetedOriginal.User.NumericId)); } else { return AccountStorage.Accounts.Where(i => Match(i.ScreenName, needle)) .Any(i => i.IsFollowing(status.User.NumericId)); } }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { var s = status as TwitterStatus; if (s == null) { var d = status as TwitterDirectMessage; if (d == null) return false; else return MatchingUtil.MatchAccount(d.Recipient.ScreenName, needle) || MatchingUtil.MatchAccount(d.Sender.ScreenName, needle); } else { return AccountStorage.Accounts .Where(i => MatchingUtil.MatchAccount(i.ScreenName, needle)) .Any(i => IsMemberOfTimeline(s, i)); } }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { var s = status as TwitterStatus; if (s != null) { if (isStrict) { return !String.IsNullOrEmpty(s.InReplyToUserScreenName) && Match(s.InReplyToUserScreenName, this.needle); } else { return RegularExpressions.AtRegex.Matches(status.Text) .Cast<Match>().Any(m => Match(m.Groups[1].Value, needle)); } } var dm = status as TwitterDirectMessage; if (dm != null) { return Match(dm.Recipient.ScreenName, this.needle); } return false; }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return TraceId(status.Id); }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { var ts = TweetStorage.Get(status.Id); if (ts == null) return false; return this.Range.Check(ts.RetweetedUsers.Count()); }
public override bool FilterUser(Dulcet.Twitter.TwitterUser user) { return user.IsProtected; }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return status.User.IsProtected; }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { var vm = TweetStorage.Get(status.Id); if (vm == null) return false; return vm.FavoredUsers.Any(u => Match(u.TwitterUser.ScreenName, needle)); }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return RegularExpressions.AtRegex.Matches(status.Text) .Cast<Match>().Any(m => Match(m.Groups[1].Value, needle)); }
public override bool FilterUser(Dulcet.Twitter.TwitterUser user) { return Match(user.ScreenName, needle); }
/// <summary> /// 接続が切断されたことを通知します。 /// </summary> internal static void NotifyDisconnected(AccountInfo accountInfo, Dulcet.Twitter.Streaming.StreamingConnection con) { if (accountInfo == null) throw new ArgumentException("accountInfo"); accountInfo.ConnectionState = ConnectionState.Disconnected; OnConnectionStateChanged(EventArgs.Empty); if (ThreadHelper.IsHalted) // アプリケーションが終了中 return; UserStreamsConnection pusc; if (!connections.TryGetValue(accountInfo, out pusc) || pusc == null) return; // User Streams接続を行わない if (pusc.CheckUsingConnection(con)) { // 切断通知されたコネクションを使用しているようだ // -> エラー切断であるので再接続 RefreshConnection(accountInfo); } else { pusc.Dispose(); } }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return status is TwitterDirectMessage; }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return this.Match(status.User.Web, this.needle, this.isCaseSensitive); }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return FilterUser(status.User); }
public bool FilterUser(Dulcet.Twitter.TwitterUser user) { return this.Match(user.UserName, this.needle, this.isCaseSensitive); }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return AccountStorage.Accounts.Where(i => Match(i.ScreenName, needle)) .Any(i => i.IsFollowedBy(status.User.NumericId)); }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return TwitterHelper.GetSuggestedUser(status).IsVerified; }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { var s = status as TwitterStatus; return s != null && s.RetweetedOriginal != null; }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return RegularExpressions.UrlRegex.Matches(status.Text).OfType<Match>() .Any(m => this.Match(m.Value, this.needle, this.isCaseSensitive)); }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return Match(status.User.ScreenName, needle); }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return FilterUser(TwitterHelper.GetSuggestedUser(status)); }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { bool init = Interlocked.Exchange(ref initCheckFlag,1) == 0; if (ListStorage.IsListMemberCached(this.listUser, this.listName)) { var ids = ListStorage.GetListMembers(this.listUser, this.listName) .Select(u => u.TwitterUser.ScreenName).ToArray(); return ids.Contains(status.User.ScreenName) && (!(status is TwitterStatus) || String.IsNullOrEmpty(((TwitterStatus)status).InReplyToUserScreenName) || ids.Contains(((TwitterStatus)status).InReplyToUserScreenName)); } else { if (init) { Task.Factory.StartNew(() => { try { ListStorage.GetListMembers(this.listUser, this.listName).ToArray(); this.RaiseRequireReaccept(); } catch { } }); } return false; } }
protected override bool FilterStatus(Dulcet.Twitter.TwitterStatusBase status) { return this.Range.Check(status.Id); }
public override bool FilterUser(Dulcet.Twitter.TwitterUser user) { return AccountStorage.Accounts.Where(i => MatchingUtil.MatchAccount(i.ScreenName, needle)) .Any(i => i.IsFollowing(user.NumericId)); }