2018-07-28 14:58:45 +00:00
|
|
|
import { toBase10, toBase36 } from '../../utils'
|
2018-01-14 13:41:00 +00:00
|
|
|
|
2018-07-28 19:14:13 +00:00
|
|
|
const postURL = 'https://elastic.pushshift.io/rs/submissions/_search?source='
|
|
|
|
|
const commentURL = 'https://elastic.pushshift.io/rc/comments/_search?source='
|
2018-01-13 17:20:08 +00:00
|
|
|
|
2018-02-03 17:19:19 +00:00
|
|
|
export const getPost = threadID => {
|
2018-01-14 19:21:53 +00:00
|
|
|
const elasticQuery = {
|
|
|
|
|
query: {
|
|
|
|
|
term: {
|
2018-07-14 21:24:23 +00:00
|
|
|
id: toBase10(threadID)
|
|
|
|
|
}
|
|
|
|
|
}
|
2018-01-14 19:21:53 +00:00
|
|
|
}
|
|
|
|
|
|
2018-07-28 18:56:05 +00:00
|
|
|
return window.fetch(postURL + JSON.stringify(elasticQuery))
|
|
|
|
|
.then(response => response.json())
|
|
|
|
|
.then(response => {
|
|
|
|
|
const post = response.hits.hits[0]._source
|
|
|
|
|
post.id = toBase36(post.id)
|
|
|
|
|
return post
|
|
|
|
|
})
|
|
|
|
|
.catch(() => { throw new Error('Could not get removed post') })
|
2018-01-14 19:21:53 +00:00
|
|
|
}
|
|
|
|
|
|
2018-02-17 21:51:38 +00:00
|
|
|
export const getComments = threadID => {
|
|
|
|
|
const elasticQuery = {
|
|
|
|
|
query: {
|
|
|
|
|
match: {
|
2018-07-14 21:24:23 +00:00
|
|
|
link_id: toBase10(threadID)
|
|
|
|
|
}
|
2018-02-17 21:51:38 +00:00
|
|
|
},
|
2018-08-25 22:44:58 +00:00
|
|
|
size: 20000,
|
2018-02-17 21:51:38 +00:00
|
|
|
_source: [
|
2018-07-14 21:24:23 +00:00
|
|
|
'author', 'body', 'created_utc', 'parent_id', 'score', 'subreddit', 'link_id'
|
|
|
|
|
]
|
2018-02-17 21:51:38 +00:00
|
|
|
}
|
2018-02-06 03:07:30 +00:00
|
|
|
|
2018-07-28 18:56:05 +00:00
|
|
|
return window.fetch(commentURL + JSON.stringify(elasticQuery))
|
|
|
|
|
.then(response => response.json())
|
|
|
|
|
.then(response => {
|
|
|
|
|
const comments = response.hits.hits
|
|
|
|
|
return comments.map(comment => {
|
|
|
|
|
comment._source.id = toBase36(comment._id)
|
|
|
|
|
comment._source.link_id = toBase36(comment._source.link_id)
|
2018-02-06 03:07:30 +00:00
|
|
|
|
2018-07-28 18:56:05 +00:00
|
|
|
// Missing parent id === direct reply to thread
|
|
|
|
|
if (!comment._source.parent_id) {
|
|
|
|
|
comment._source.parent_id = threadID
|
|
|
|
|
} else {
|
|
|
|
|
comment._source.parent_id = toBase36(comment._source.parent_id)
|
|
|
|
|
}
|
2018-02-06 03:07:30 +00:00
|
|
|
|
2018-07-28 18:56:05 +00:00
|
|
|
return comment._source
|
2018-07-14 23:13:31 +00:00
|
|
|
})
|
2018-07-28 18:56:05 +00:00
|
|
|
})
|
|
|
|
|
.catch(() => { throw new Error('Could not get removed comments') })
|
2018-02-17 21:51:38 +00:00
|
|
|
}
|