async def subreddit(request: Request) -> Response: subreddit_infos = await get_subreddit_informations( request.path_params["name"]) if should_redirect_to_age_check(request, subreddit_infos.over18): return redirect_to_age_check(request) request_pagination = models.Pagination( before_post_id=request.query_params.get("before"), after_post_id=request.query_params.get("after"), ) posts, response_pagination = await get_subreddit_posts( request.path_params["name"], request_pagination, ) return templates.TemplateResponse( "posts_list.html", { "pagination": response_pagination, "posts": posts, "request": request, "settings": settings.get_settings_from_request(request), "subreddit": subreddit_infos, }, )
def test_get_settings_from_request_true() -> None: request = Request(scope={ "type": "http", "headers": {}, }) request.cookies["nsfw_popular_all"] = "1" request.cookies["nsfw_thumbnails"] = "1" res = get_settings_from_request(request) assert res.nsfw_popular_all is True assert res.nsfw_thumbnails is True
async def subreddit_post(request: Request) -> Response: subreddit = await get_subreddit_informations(request.path_params["name"]) post_id = request.path_params["post_id"] post = await get_post(request.path_params["name"], post_id) if should_redirect_to_age_check(request, post.over18): return redirect_to_age_check(request) return templates.TemplateResponse( "post.html", { "request": request, "subreddit": subreddit, "post": post, "settings": settings.get_settings_from_request(request), }, )
async def index(request: Request) -> Response: request_pagination = models.Pagination( before_post_id=request.query_params.get("before"), after_post_id=request.query_params.get("after"), ) informations = await get_frontpage_informations() posts, response_pagination = await get_frontpage_posts(request_pagination) return templates.TemplateResponse( "posts_list.html", { "pagination": response_pagination, "posts": posts, "request": request, "settings": settings.get_settings_from_request(request), "subreddit": informations, }, )