Don't fetch removed link-posts from Pushshift

Removed/deleted self-posts are still fetched from Pushshift to get
the selftext, however there's no value in fetching link-posts.

Also:

 * Don't display '[deleted]' if no selftext was deleted.
 * Add key attributes to the post <div> so that React recreates
   it instead of mutating it after the Post loads. This prevents
   transitioning the background color (from the dark/light mode css).
This commit is contained in:
Christopher Gurnee 2022-04-14 22:25:17 +00:00
parent 37e0a152e1
commit df0c86aac0
3 changed files with 7 additions and 7 deletions

View file

@ -7,7 +7,7 @@ export default (props) => {
if (props.removed) {
const permalink = `/r/${props.subreddit}/comments/${props.id}/`
return (
<div className="thread removed">
<div className="thread removed" key="post-removed">
<div className="thread-score-box">
<div className="vote upvote" />
<div className="thread-score">?</div>
@ -24,7 +24,7 @@ export default (props) => {
</div>
)
} else
return <div />
return <div key="post-empty" />
}
let url = new URL(props.url, 'https://www.reddit.com')
@ -58,14 +58,14 @@ export default (props) => {
}
let innerHTML, editedInnerHTML;
if (isRemoved(props.selftext) && props.removed) {
if (props.removed && isRemoved(props.selftext)) {
if (!props.hasOwnProperty('retrieved_utc') && !props.hasOwnProperty('retrieved_on') || !props.hasOwnProperty('created_utc')) {
innerHTML = '<p>[removed too quickly to be archived]</p>'
} else {
const retrieved = props.hasOwnProperty('retrieved_utc') ? props.retrieved_utc : props.retrieved_on;
innerHTML = `<p>[removed within ${prettyTimeDiff(retrieved - props.created_utc)}]</p>`
}
} else if (props.selftext) {
} else if (props.selftext && (props.is_self || !isDeleted(props.selftext))) {
innerHTML = parse(props.selftext)
if (props.hasOwnProperty('edited_selftext'))
editedInnerHTML = parse(props.edited_selftext)
@ -87,7 +87,7 @@ export default (props) => {
>*edited</a>}
</div>
return <div className={props.removed ? 'removed' : props.deleted ? 'deleted' : undefined}>
return <div className={props.removed ? 'removed' : props.deleted ? 'deleted' : undefined} key="post-found">
<div className='thread'>
{props.position &&
<span className='post-rank'>{props.position}</span>}

View file

@ -14,7 +14,7 @@ const Comment = (props) => {
}
let innerHTML, editedInnerHTML;
if (isRemoved(props.body) && props.removed) {
if (props.removed && isRemoved(props.body)) {
if (!props.hasOwnProperty('retrieved_utc') && !props.hasOwnProperty('retrieved_on') || !props.hasOwnProperty('created_utc')) {
innerHTML = '<p>[removed too quickly to be archived]</p>'
} else if (props.created_utc < 1627776000) { // Aug 1 2021

View file

@ -105,7 +105,7 @@ class Thread extends React.Component {
else if (isRemoved(post.selftext) || post.removed_by_category)
post.removed = true
if (!post.deleted && !post.removed && !post.edited) {
if (post.is_self === false || !post.deleted && !post.removed && !post.edited) {
this.setState({ post })
if (this.state.loadingComments)
this.props.global.setLoading('Loading comments...')