/// <summary> /// User ViewModelを取得します。<para /> /// 内部キャッシュを更新します。 /// </summary> /// <param name="user">ユーザー情報(nullは指定できません)</param> public static UserViewModel Get(TwitterUser user) { if (user == null) throw new ArgumentNullException("user"); var newvm = new UserViewModel(user); dictionary.AddOrUpdate(user.ScreenName, newvm); return newvm; }
/// <summary> /// User ViewModelを取得します。<para /> /// 内部キャッシュを更新します。 /// </summary> /// <param name="user">ユーザー情報(nullは指定できません)</param> public static UserViewModel Get(TwitterUser user) { if (user == null) throw new ArgumentNullException("user"); var newvm = new UserViewModel(user); using (lockWrap.GetWriterLock()) { if (dictionary.ContainsKey(user.ScreenName)) dictionary[user.ScreenName] = newvm; else dictionary.Add(user.ScreenName, newvm); } return newvm; }
public static TwitterDirectMessage FromNode(XElement node) { if (node == null) { throw new ArgumentNullException("node"); } return(new TwitterDirectMessage() { Id = node.Element("id").ParseLong(), Text = node.Element("text").ParseString(), CreatedAt = node.Element("created_at").ParseDateTime("ddd MMM d HH':'mm':'ss zzz yyyy"), Sender = TwitterUser.FromNode(node.Element("sender")), Recipient = TwitterUser.FromNode(node.Element("recipient")), Entities = TwitterEntity.Parse(node.Element("entities")), }); }
public static TwitterList FromNode(XElement node) { if (node == null) { throw new ArgumentNullException("node"); } return(new TwitterList() { Id = node.Element("id").ParseLong(), Name = node.Element("name").ParseString(), FullName = node.Element("full_name").ParseString(), Slug = node.Element("slug").ParseString(), Description = node.Element("description").ParseString(), SubscriberCount = node.Element("subscriber_count").ParseLong(), PartialUri = node.Element("uri").ParseString(), Mode = node.Element("mode").ParseString(), User = TwitterUser.FromNode(node.Element("user")), }); }
public static TwitterStatus FromNode(XElement node) { if (node == null) { throw new ArgumentNullException("node"); } return(new TwitterStatus() { Id = node.Element("id").ParseLong(), Text = node.Element("text").ParseString(), Source = node.Element("source").ParseString(), CreatedAt = node.Element("created_at").ParseDateTime("ddd MMM d HH':'mm':'ss zzz yyyy"), InReplyToStatusId = node.Element("in_reply_to_status_id").ParseLong(), InReplyToUserId = node.Element("in_reply_to_user_id").ParseLong(), InReplyToUserScreenName = node.Element("in_reply_to_screen_name").ParseString(), RetweetedOriginal = node.Element("retweeted_status") == null ? null : TwitterStatus.FromNode(node.Element("retweeted_status")), User = TwitterUser.FromNode(node.Element("user")), Entities = TwitterEntity.Parse(node.Element("entities")), }); }
public override bool FilterUser(Dulcet.Twitter.TwitterUser user) { return AccountStorage.Accounts.Where(i => MatchingUtil.MatchAccount(i.ScreenName, needle)) .Any(i => i.IsFollowing(user.NumericId)); }
public static bool IsMuted(TwitterUser user) { return Setting.Instance.TimelineFilteringProperty.MuteBlockedUsers && AccountStorage.Accounts.Any(a => a.IsBlocking(user.NumericId) && !AccountStorage.Contains(user.ScreenName)); }
public bool Equals(TwitterUser user) { return user != null && user.NumericId == this.NumericId; }
public bool FilterUser(TwitterUser user) { if (_filters != null) { foreach (var f in _filters.OfType<IUserFilter>()) { // ANDのとき => FALSEに出会ったらFALSEを返す // ORのとき => TRUEに出会ったらTRUEを返す if (f.FilterUser(user) != ConcatenateAnd) return ConcatenateAnd == Negate; } } // ANDのとき => FALSEに出会っていないのでTRUEを返す // ORのとき => TRUEに出会っていないのでFALSEを返す return ConcatenateAnd == !Negate; }
public override bool FilterUser(TwitterUser user) { return user.IsVerified; }
private void ReportForSpam(AccountInfo info, TwitterUser user) { try { info.ReportSpam(user.NumericId); } catch (Exception ex) { ExceptionStorage.Register(ex, ExceptionCategory.TwitterError, "@" + user.ScreenName + " のR4Sに失敗しました。", () => ReportForSpam(info, user)); } }
public override bool FilterUser(TwitterUser user) { return AccountStorage.Accounts.Where(i => Match(i.ScreenName, needle)) .Any(i => i.IsFollowing(user.NumericId)); }
/// <summary> /// User ViewModelを生成して、キャッシュに追加します。 /// </summary> public static void Register(TwitterUser user) { Get(user); }
/// <summary> /// User ViewModelを生成して、キャッシュに追加します。 /// </summary> public static void Register(TwitterUser user) { Task.Factory.StartNew(() => Get(user)); }
private static bool IsBlacklisted(TwitterUser user) { lock (listLock) { if (eventRaiseCountDictionary.ContainsKey(user.NumericId)) eventRaiseCountDictionary[user.NumericId]++; else eventRaiseCountDictionary.Add(user.NumericId, 1); if (blacklistedUserIds.Contains(user.NumericId)) return true; if (eventRaiseCountDictionary[user.NumericId] >= BLACKLIST_THRESHOLD) { blacklistedUserIds.Add(user.NumericId); Register(new EventDescription(EventKind.Suppressed, new UserViewModel(user), null), true); return true; } else { // OK return false; } } }
public UserViewModel(TwitterUser user) { if (user == null) throw new NullReferenceException("user"); this.TwitterUser = user; }
public bool Equals(TwitterUser user) { return(user != null && user.NumericId == this.NumericId); }
public abstract bool FilterUser(TwitterUser user);