private bool CheckVisibleTimeline(TwitterStatus status, IEnumerable<AccountData> datas) { if (status.StatusType == StatusType.DirectMessage) return false; return datas.Any(ad => status.User.Id == ad.AccountId || ad.IsFollowing(status.User.Id) || FilterSystemUtil.InReplyToUsers(status).Contains(ad.AccountId)); }
public static IEnumerable<long> InReplyToUsers(TwitterStatus status) { if (status.Entities == null) return Enumerable.Empty<long>(); else return status.Entities .Where(e => e.EntityType == EntityType.UserMentions) .Select(e => { try { return long.Parse(e.OriginalText); } catch { return 0; } }).Where(_ => _ != 0); }
/// <summary> /// Store a tweet. /// </summary> /// <param name="status">storing status</param> /// <param name="publish">flag of publish status for other listening children</param> public static void Store(TwitterStatus status, bool publish = true) { if (_isInShutdown) return; if (publish) statusPublisher.OnNext(new StatusNotification() { IsAdded = true, Status = status, StatusId = status.Id }); store.Store(status); UserStore.Store(status.User); }