Attempt at Twitter stream

This commit is contained in:
Rodrigo Pedroso 2019-06-21 12:21:23 -04:00
commit d545fbe636
3 changed files with 35 additions and 22 deletions

View file

@ -1,5 +1,7 @@
{
"consumer_key": "YA81ymunCwWtR70RAbAoB0cI9",
"consumer_secret": "UHXVsekoKHfxXKF8F2XTwU1tRnBehEXdGdiagG5vmOrYwQ4XQ0",
"bearer_token": "AAAAAAAAAAAAAAAAAAAAAPGt%2FAAAAAAAjClTrCrCaoDcYm7qA8JO1nZRyVw%3DFiCU52eslsY38dl0Dsx8puUpXbtmck66niH16ewBWlUZ1hPzkL"
"bearer_token": "AAAAAAAAAAAAAAAAAAAAAPGt%2FAAAAAAAjClTrCrCaoDcYm7qA8JO1nZRyVw%3DFiCU52eslsY38dl0Dsx8puUpXbtmck66niH16ewBWlUZ1hPzkL",
"access_token_key": "3075441796-r4uYkCYTx8gyGL6OLkkMMCakibunl447QbDKu9n",
"access_token_secret": "JW8RG7yUlWbNpZuqFHQzm0v5nWkQeN8ihtf824f0cLnzV"
}

View file

@ -12,6 +12,13 @@ let client = new Twitter({
bearer_token: config.bearer_token
})
let streamClient = new Twitter({
consumer_key: config.consumer_key,
consumer_secret: config.consumer_secret,
access_token_key: config.access_token_key,
access_token_secret: config.access_token_secret
})
// MARK: Routes
// MARK: - /twitter
router.get('/twitter', (req, res) => {
@ -34,20 +41,21 @@ router.get('/twitter', (req, res) => {
// MARK: - /stream
router.get('/stream', (req, res) => {
client.stream('search/tweets', {q: req.query.hashtag, count: 5}, function(error, tweets, response) {
if (error === null) {
streamClient.stream('statuses/filter', {track: req.query.hashtag}, function(stream) {
stream.on('data', function(tweet) {
res.status(200).json({
success: true,
message: tweets
})
}
else {
})
stream.on('error', function(error) {
console.log('Error ' + JSON.stringify(error, 0, 2))
res.status(400).json({
success: false,
message: error
})
}
})
})
})

View file

@ -8,6 +8,7 @@ export default function* watcherSaga() {
])
}
// Data worker
function* worker() {
yield takeEvery("DATA_REQUESTED", workerSaga)
}
@ -21,8 +22,15 @@ function* workerSaga() {
}
}
function getData() {
return fetch("https://jsonplaceholder.typicode.com/posts").then(response =>
response.json()
)
}
// Hillary worker
function* workerHillary() {
yield takeEvery("DATA_TRUMP_REQUESTED", workerTrumpSaga)
yield takeEvery("DATA_HILLARY_REQUESTED", workerHillarySaga)
}
function* workerHillarySaga() {
@ -34,8 +42,15 @@ function* workerHillarySaga() {
}
}
function getHillaryData() {
return fetch("http://localhost:3030/api/twitter?hashtag=Hillary%20Clinton").then(response =>
response.json()
)
}
// Trump worker
function* workerTrump() {
yield takeEvery("DATA_HILLARY_REQUESTED", workerHillarySaga)
yield takeEvery("DATA_TRUMP_REQUESTED", workerTrumpSaga)
}
function* workerTrumpSaga() {
@ -47,20 +62,8 @@ function* workerTrumpSaga() {
}
}
function getData() {
return fetch("https://jsonplaceholder.typicode.com/posts").then(response =>
function getTrumpData() {
return fetch("http://localhost:3030/api/twitter?hashtag=Donald%20Trump").then(response =>
response.json()
)
}
function getHillaryData() {
return fetch("http://localhost:3030/api/twitter?hashtag=Hillary%20Clinton").then(res1 =>
res1.json()
)
}
function getTrumpData() {
return fetch("http://localhost:3030/api/twitter?hashtag=Donald%20Trump").then(res1 =>
res1.json()
)
}