示例#1
0
        public MostHashtaggedModule(IRepository <string, IEnumerable <Hashtag> > hashtags, IIgnoredHashtagsService ignoredHashtagsService)
        {
            this.Get["/most-hashtagged/{track}", true] = async(parameters, __) =>
            {
                // see https://github.com/NancyFx/Nancy/issues/1154
                var track         = ((string)parameters.track).Replace("해시", "#");
                var trackHashtags = (await hashtags.GetAsync(track)).ToList();
                var entries       = trackHashtags
                                    .Where(item => !ignoredHashtagsService.Get().Contains(item.Text, StringComparer.OrdinalIgnoreCase))
                                    .GroupBy(tweet => tweet.Text, StringComparer.InvariantCultureIgnoreCase)
                                    .Select(g => new HashtagEntry
                {
                    Text  = g.Key,
                    Count = g.Count(),
                })
                                    .OrderByDescending(entry => entry.Count)
                                    .Select((entry, index) =>
                {
                    entry.Position = index + 1;
                    return(entry);
                })
                                    .Take(10)
                                    .ToList();

                return(new Leaderboard <HashtagEntry>
                {
                    Entries = entries,
                    Count = trackHashtags.Count,
                    Since = trackHashtags.Any() ? trackHashtags.Min(hashtag => hashtag.HashtaggedAt) : (DateTime?)null,
                    LastActivityDateTime = trackHashtags.Any() ? trackHashtags.Max(hashtag => hashtag.HashtaggedAt) : (DateTime?)null,
                });
            };
        }
示例#2
0
 public Bootstrapper(IMongoDatabase mongoDatabase, IIgnoredUserNamesService ignoredUserNamesService, IIgnoredHashtagsService ignoredHashtagsService)
 {
     this.mongoDatabase           = mongoDatabase;
     this.ignoredUserNamesService = ignoredUserNamesService;
     this.ignoredHashtagsService  = ignoredHashtagsService;
 }