Exemple #1
0
        private async Task <List <Post> > FetchNewPosts(FanBentoDatabase database)
        {
            var posts       = new List <Post>();
            var hasNextPage = false;
            var idList      = database.Post.Select(t => t.Id).ToHashSet();

            do
            {
                List <Post> list;
                (list, hasNextPage) = await FanboxApi.GetPostsList(hasNextPage);

                var newPostsList = list.AsParallel().Where(t => !idList.Contains(t.Id)).ToList();
                if (newPostsList.Count != list.Count && Configuration.Config["Fanbox:FetchToEnd"] != "true")
                {
                    // some posts already exists, next page should all be old posts
                    hasNextPage = false;
                }

                await DownloadPostsImages(newPostsList);
                await DownloadPostsFiles(newPostsList);

                posts.AddRange(newPostsList);
            } while (hasNextPage);

            return(posts);
        }
Exemple #2
0
 public PostsController(FanBentoDatabase context, IWebHostEnvironment environment)
 {
     _context     = context;
     _environment = environment;
 }
Exemple #3
0
 private async Task InitDatabase()
 {
     Database = new FanBentoDatabase(Configuration.Config["Database:ConnectionString"]);
     await Database.Database.EnsureCreatedAsync();
 }