GetMentionsAndRepliesToScreenNames
(
Dictionary<String, TwitterUser> userIDDictionary
)
{
Debug.Assert(userIDDictionary != null);
HashSet<String> uniqueScreenNamesWhoTweetedSearchTerm =
TwitterGraphMLUtil.TwitterUsersToUniqueScreenNames(
userIDDictionary.Values);
HashSet<String> uniqueMentionsAndRepliesToScreenNames =
new HashSet<String>();
TwitterStatusTextParser twitterStatusTextParser =
new TwitterStatusTextParser();
foreach (TwitterUser twitterUser in userIDDictionary.Values)
{
foreach (TwitterStatus twitterStatus in twitterUser.Statuses)
{
String repliesToScreenName;
String [] uniqueMentionsScreenNames;
twitterStatusTextParser.GetScreenNames(twitterStatus.Text,
out repliesToScreenName,
out uniqueMentionsScreenNames);
if (
repliesToScreenName != null
&&
!uniqueScreenNamesWhoTweetedSearchTerm.Contains(
repliesToScreenName) )
{
uniqueMentionsAndRepliesToScreenNames.Add(
repliesToScreenName);
}
foreach (String uniqueMentionsScreenName in
uniqueMentionsScreenNames)
{
if ( !uniqueScreenNamesWhoTweetedSearchTerm.Contains(
uniqueMentionsScreenName) )
{
uniqueMentionsAndRepliesToScreenNames.Add(
uniqueMentionsScreenName);
}
}
}
}
return ( uniqueMentionsAndRepliesToScreenNames.ToArray() );
}