2018-01-31 04:56:04 +00:00
|
|
|
import { json, toBase10, toBase36, chunk, flatten } from 'utils'
|
2018-01-14 13:41:00 +00:00
|
|
|
|
2018-01-13 17:20:08 +00:00
|
|
|
const baseURL = 'https://elastic.pushshift.io'
|
2018-02-03 17:19:19 +00:00
|
|
|
const postURL = `${baseURL}/rs/submissions/_search?source=`
|
2018-01-14 13:41:00 +00:00
|
|
|
const commentURL = `${baseURL}/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: {
|
|
|
|
|
id: toBase10(threadID),
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
2018-02-03 17:19:19 +00:00
|
|
|
fetch(postURL + JSON.stringify(elasticQuery))
|
2018-01-14 19:21:53 +00:00
|
|
|
.then(json)
|
|
|
|
|
.then(jsonData => jsonData.hits.hits[0]._source)
|
2018-02-03 17:19:19 +00:00
|
|
|
.then(post => {
|
|
|
|
|
post.id = toBase36(post.id)
|
|
|
|
|
return post
|
2018-01-14 21:25:54 +00:00
|
|
|
})
|
2018-01-14 19:21:53 +00:00
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
2018-02-06 03:07:30 +00:00
|
|
|
export const getComments = threadID => (
|
|
|
|
|
fetch(`https://api.pushshift.io/reddit/comment/search?link_id=${threadID}&limit=10000`)
|
|
|
|
|
.then(json)
|
|
|
|
|
.then(data => data.data)
|
|
|
|
|
.then(comments => {
|
|
|
|
|
comments.forEach(comment => {
|
|
|
|
|
comment.link_id = comment.link_id.split('_')[1]
|
|
|
|
|
comment.parent_id = comment.parent_id.split('_')[1]
|
|
|
|
|
})
|
|
|
|
|
return comments
|
|
|
|
|
})
|
|
|
|
|
)
|
2018-01-13 17:20:08 +00:00
|
|
|
|
2018-02-06 03:07:30 +00:00
|
|
|
// export const getComments = threadID => {
|
|
|
|
|
// const elasticQuery = {
|
|
|
|
|
// query: {
|
|
|
|
|
// match: {
|
|
|
|
|
// link_id: toBase10(threadID),
|
|
|
|
|
// },
|
|
|
|
|
// },
|
|
|
|
|
// size: 10000,
|
|
|
|
|
// // _source: [
|
|
|
|
|
// // 'author', 'body', 'created_utc', 'parent_id', 'score', 'subreddit', 'link_id',
|
|
|
|
|
// // ],
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// return (
|
|
|
|
|
// fetch(commentURL + JSON.stringify(elasticQuery))
|
|
|
|
|
// .then(json)
|
|
|
|
|
// .then(jsonData => jsonData.hits.hits)
|
|
|
|
|
// .then(comments => comments.map(comment => {
|
|
|
|
|
// comment._source.id = toBase36(comment._id)
|
|
|
|
|
// comment._source.link_id = toBase36(comment._source.link_id)
|
|
|
|
|
|
|
|
|
|
// // 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)
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// if (comment._source.id === 'dmrxgic') {
|
|
|
|
|
// console.log(JSON.stringify(comment._source))
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// return comment._source
|
|
|
|
|
// }))
|
|
|
|
|
// )
|
|
|
|
|
// }
|