justreddit
Version:
A simple package for getting random posts, random images, random SubReddits, and SubReddit info.
55 lines (54 loc) • 2.33 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.subreddit = subreddit;
exports.randomSubreddit = randomSubreddit;
const fetch_1 = __importDefault(require("./utils/fetch"));
function parseSubreddit({ id, url, display_name, description, over18, lang, active_user_count, allow_images, allow_videos, allow_polls, allow_videogifs, allow_discovery, allow_galleries, should_show_media_in_comments_setting, allow_predictions, allow_talks, accept_followers, subscribers, community_reviewed, emojis_enabled, restrict_posting, all_original_content, created, banner_background_image, mobile_banner_image, primary_color, key_color }) {
return {
id,
url: `https://www.reddit.com/${url}`,
language: lang,
name: display_name,
description,
nsfw: over18,
subscribers,
created: new Date(created * 1000),
usersOnline: active_user_count,
communityReviewed: community_reviewed,
allOriginalContent: all_original_content,
colors: {
primary: primary_color,
key: key_color,
},
banners: {
desktop: banner_background_image,
mobile: mobile_banner_image,
},
allows: {
posting: !restrict_posting,
emojis: emojis_enabled,
images: allow_images,
videos: allow_videos,
polls: allow_polls,
videogifs: allow_videogifs,
discovery: allow_discovery,
galleries: allow_galleries,
mediaInComments: should_show_media_in_comments_setting,
predictions: allow_predictions,
talks: allow_talks,
followers: accept_followers,
},
};
}
async function subreddit(subreddit) {
const response = await (0, fetch_1.default)(subreddit);
return parseSubreddit(response.data);
}
async function randomSubreddit() {
const response = await (0, fetch_1.default)("subreddits/popular");
const subreddits = response.data.children.filter((subreddit) => subreddit.kind === "t5");
return parseSubreddit(subreddits[Math.floor(Math.random() * subreddits.length)].data);
}