Class: Post
models.Post
Table of contents
Accessors
- approved
- approvedAtUtc
- archived
- authorId
- authorName
- bannedAtUtc
- body
- bodyHtml
- comments
- createdAt
- distinguishedBy
- edited
- flair
- hidden
- id
- ignoringReports
- locked
- modReportReasons
- nsfw
- numberOfComments
- numberOfReports
- permalink
- quarantined
- removed
- removedBy
- removedByCategory
- score
- secureMedia
- spam
- spoiler
- stickied
- subredditId
- subredditName
- thumbnail
- title
- url
- userReportReasons
Methods
- addComment
- addRemovalNote
- approve
- crosspost
- delete
- distinguish
- distinguishAsAdmin
- edit
- getAuthor
- getEnrichedThumbnail
- hide
- ignoreReports
- isApproved
- isArchived
- isDistinguishedBy
- isEdited
- isHidden
- isIgnoringReports
- isLocked
- isNsfw
- isQuarantined
- isRemoved
- isSpam
- isSpoiler
- isStickied
- lock
- markAsNsfw
- markAsSpoiler
- remove
- setCustomPostPreview
- setSuggestedCommentSort
- setTextFallback
- sticky
- toJSON
- undistinguish
- unhide
- unignoreReports
- unlock
- unmarkAsNsfw
- unmarkAsSpoiler
- unsticky
Accessors
approved
• get approved(): boolean
Returns
boolean
approvedAtUtc
• get approvedAtUtc(): number
Returns
number
archived
• get archived(): boolean
Returns
boolean
authorId
• get authorId(): undefined | `t2_${string}`
Returns
undefined | `t2_${string}`
authorName
• get authorName(): string
Returns
string
bannedAtUtc
• get bannedAtUtc(): number
Returns
number
body
• get body(): undefined | string
Returns
undefined | string
bodyHtml
• get bodyHtml(): undefined | string
Returns
undefined | string
comments
• get comments(): Listing<Comment>
Returns
createdAt
• get createdAt(): Date
Returns
Date
distinguishedBy
• get distinguishedBy(): undefined | string
Returns
undefined | string
edited
• get edited(): boolean
Returns
boolean
flair
• get flair(): undefined | LinkFlair
Returns
undefined | LinkFlair
hidden
• get hidden(): boolean
Returns
boolean
id
• get id(): `t3_${string}`
Returns
`t3_${string}`
ignoringReports
• get ignoringReports(): boolean
Returns
boolean
locked
• get locked(): boolean
Returns
boolean
modReportReasons
• get modReportReasons(): string[]
Returns
string[]
nsfw
• get nsfw(): boolean
Returns
boolean
numberOfComments
• get numberOfComments(): number
Returns
number
numberOfReports
• get numberOfReports(): number
Returns
number
permalink
• get permalink(): string
Returns
string
quarantined
• get quarantined(): boolean
Returns
boolean
removed
• get removed(): boolean
Returns
boolean
removedBy
• get removedBy(): undefined | string
Who removed this object (username)
Returns
undefined | string
removedByCategory
• get removedByCategory(): undefined | string
who/what removed this object. It will return one of the following:
- "anti_evil_ops": object is removed by a aeops member
- "author": object is removed by author of the post
- "automod_filtered": object is filtered by automod
- "community_ops": object is removed by a community team member
- "content_takedown": object is removed due to content violation
- "copyright_takedown": object is removed due to copyright violation
- "deleted": object is deleted
- "moderator": object is removed by a mod of the sub
- "reddit": object is removed by anyone else
- undefined: object is not removed
Returns
undefined | string
score
• get score(): number
Returns
number
secureMedia
• get secureMedia(): undefined | SecureMedia
Returns
undefined | SecureMedia
spam
• get spam(): boolean
Returns
boolean
spoiler
• get spoiler(): boolean
Returns
boolean
stickied
• get stickied(): boolean
Returns
boolean
subredditId
• get subredditId(): `t5_${string}`
Returns
`t5_${string}`
subredditName
• get subredditName(): string
Returns
string
thumbnail
• get thumbnail(): undefined | { height: number ; url: string ; width: number }
Returns
undefined | { height: number ; url: string ; width: number }
title
• get title(): string
Returns
string
url
• get url(): string
Returns
string
userReportReasons
• get userReportReasons(): string[]
Returns
string[]
Methods
addComment
▸ addComment(options): Promise<Comment>
Parameters
| Name | Type |
|---|---|
options | CommentSubmissionOptions |
Returns
Promise<Comment>
addRemovalNote
▸ addRemovalNote(options): Promise<void>
Add a mod note for why the post was removed
Parameters
| Name | Type | Description |
|---|---|---|
options | Object | - |
options.modNote? | string | the reason for removal (maximum 100 characters) (optional) |
options.reasonId | string | id of a Removal Reason - you can leave this as an empty string if you don't have one |
Returns
Promise<void>
approve
▸ approve(): Promise<void>
Returns
Promise<void>
crosspost
▸ crosspost(options): Promise<Post>
Parameters
| Name | Type |
|---|---|
options | Omit<CrosspostOptions, "postId"> |
Returns
Promise<Post>
delete
▸ delete(): Promise<void>
Returns
Promise<void>
distinguish
▸ distinguish(): Promise<void>
Returns
Promise<void>
distinguishAsAdmin
▸ distinguishAsAdmin(): Promise<void>
Returns
Promise<void>
edit
▸ edit(options): Promise<void>
Parameters
| Name | Type |
|---|---|
options | PostTextOptions |
Returns
Promise<void>
getAuthor
▸ getAuthor(): Promise<undefined | User>
Returns
Promise<undefined | User>
getEnrichedThumbnail
▸ getEnrichedThumbnail(): Promise<undefined | EnrichedThumbnail>
Get a thumbnail that contains a preview image and also contains a blurred preview for NSFW images. The thumbnail returned has higher resolution than Post.thumbnail. Returns undefined if the post doesn't have a thumbnail
Returns
Promise<undefined | EnrichedThumbnail>
Throws
Throws an error if the thumbnail could not be fetched
Example
// from a menu action, form, scheduler, trigger, custom post click event, etc
const post = await context.reddit.getPostById(context.postId);
const enrichedThumbnail = await post.getEnrichedThumbnail();
hide
▸ hide(): Promise<void>
Returns
Promise<void>
ignoreReports
▸ ignoreReports(): Promise<void>
Returns
Promise<void>
isApproved
▸ isApproved(): boolean
Returns
boolean
isArchived
▸ isArchived(): boolean
Returns
boolean
isDistinguishedBy
▸ isDistinguishedBy(): undefined | string
Returns
undefined | string
isEdited
▸ isEdited(): boolean
Returns
boolean
isHidden
▸ isHidden(): boolean
Returns
boolean
isIgnoringReports
▸ isIgnoringReports(): boolean
Returns
boolean
isLocked
▸ isLocked(): boolean
Returns
boolean
isNsfw
▸ isNsfw(): boolean
Returns
boolean
isQuarantined
▸ isQuarantined(): boolean
Returns
boolean
isRemoved
▸ isRemoved(): boolean
Returns
boolean
isSpam
▸ isSpam(): boolean
Returns
boolean
isSpoiler
▸ isSpoiler(): boolean
Returns
boolean
isStickied
▸ isStickied(): boolean
Returns
boolean
lock
▸ lock(): Promise<void>
Returns
Promise<void>
markAsNsfw
▸ markAsNsfw(): Promise<void>
Returns
Promise<void>
markAsSpoiler
▸ markAsSpoiler(): Promise<void>
Returns
Promise<void>
remove
▸ remove(isSpam?): Promise<void>
Parameters
| Name | Type | Default value |
|---|---|---|
isSpam | boolean | false |
Returns
Promise<void>
setCustomPostPreview
▸ setCustomPostPreview(ui): Promise<void>
Set a lightweight UI that shows while the custom post renders
Parameters
| Name | Type | Description |
|---|---|---|
ui | ComponentFunction | A JSX component function that returns a simple ui to be rendered. |
Returns
Promise<void>
Throws
Throws an error if the preview could not be set.
Example
const preview = (
<vstack height="100%" width="100%" alignment="middle center">
<text size="large">An updated preview!</text>
</vstack>
);
const post = await reddit.getPostById(context.postId);
await post.setCustomPostPreview(() => preview);
setSuggestedCommentSort
▸ setSuggestedCommentSort(suggestedSort): Promise<void>
Set the suggested sort for comments on a Post.
Parameters
| Name | Type |
|---|---|
suggestedSort | PostSuggestedCommentSort |
Returns
Promise<void>
Throws
Throws an error if the suggested sort could not be set.
Example
const post = await reddit.getPostById(context.postId);
await post.setSuggestedCommentSort('NEW');
setTextFallback
▸ setTextFallback(options): Promise<void>
Set a text fallback for the custom post
Parameters
| Name | Type | Description |
|---|---|---|
options | CustomPostTextFallbackOptions | A text or a richtext to render in a fallback |
Returns
Promise<void>
Throws
Throws an error if the fallback could not be set.
Example
// from a menu action, form, scheduler, trigger, custom post click event, etc
const newTextFallback = { text: 'This is an updated text fallback' };
const post = await context.reddit.getPostById(context.postId);
await post.setTextFallback(newTextFallback);
sticky
▸ sticky(position?): Promise<void>
Parameters
| Name | Type |
|---|---|
position? | 1 | 2 | 3 | 4 |
Returns
Promise<void>
toJSON
▸ toJSON(): Pick<Post, "spoiler" | "subredditName" | "flair" | "id" | "score" | "title" | "subredditId" | "url" | "body" | "archived" | "nsfw" | "quarantined" | "spam" | "permalink" | "authorId" | "authorName" | "bodyHtml" | "thumbnail" | "numberOfComments" | "numberOfReports" | "createdAt" | "approved" | "stickied" | "removed" | "removedBy" | "removedByCategory" | "edited" | "locked" | "hidden" | "ignoringReports" | "distinguishedBy" | "secureMedia" | "userReportReasons" | "modReportReasons">
Returns
Pick<Post, "spoiler" | "subredditName" | "flair" | "id" | "score" | "title" | "subredditId" | "url" | "body" | "archived" | "nsfw" | "quarantined" | "spam" | "permalink" | "authorId" | "authorName" | "bodyHtml" | "thumbnail" | "numberOfComments" | "numberOfReports" | "createdAt" | "approved" | "stickied" | "removed" | "removedBy" | "removedByCategory" | "edited" | "locked" | "hidden" | "ignoringReports" | "distinguishedBy" | "secureMedia" | "userReportReasons" | "modReportReasons">
undistinguish
▸ undistinguish(): Promise<void>
Returns
Promise<void>
unhide
▸ unhide(): Promise<void>
Returns
Promise<void>
unignoreReports
▸ unignoreReports(): Promise<void>
Returns
Promise<void>
unlock
▸ unlock(): Promise<void>
Returns
Promise<void>
unmarkAsNsfw
▸ unmarkAsNsfw(): Promise<void>
Returns
Promise<void>
unmarkAsSpoiler
▸ unmarkAsSpoiler(): Promise<void>
Returns
Promise<void>
unsticky
▸ unsticky(): Promise<void>
Returns
Promise<void>