|
|
|
|
@ -3,6 +3,9 @@ const app = express();
|
|
|
|
|
const axios = require('axios');
|
|
|
|
|
const querystring = require('querystring');
|
|
|
|
|
|
|
|
|
|
let tokenExpirationDate = false;
|
|
|
|
|
let bearerToken;
|
|
|
|
|
|
|
|
|
|
const data = {
|
|
|
|
|
grant_type:'password',
|
|
|
|
|
username:process.env.REDDITUSR,
|
|
|
|
|
@ -14,16 +17,20 @@ const auth = {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const getToken = async ()=>{
|
|
|
|
|
if(tokenExpirationDate === false || Date.now() > tokenExpirationDate){
|
|
|
|
|
const response = await axios({
|
|
|
|
|
url:'https://www.reddit.com/api/v1/access_token',
|
|
|
|
|
method:'post',
|
|
|
|
|
auth:auth,
|
|
|
|
|
data:querystring.stringify(data)
|
|
|
|
|
})
|
|
|
|
|
bearerToken = response.data.access_token
|
|
|
|
|
tokenExpirationDate = Date.now()+(response.data.expires_in*1000)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const config = {
|
|
|
|
|
headers:{
|
|
|
|
|
Authorization: 'bearer '+response.data.access_token
|
|
|
|
|
Authorization: 'bearer '+ bearerToken
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return config
|
|
|
|
|
@ -48,6 +55,8 @@ const generate = async (req, res)=>{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getToken();
|
|
|
|
|
|
|
|
|
|
app.get('/', generate)
|
|
|
|
|
|
|
|
|
|
app.get('/:direction/:page', generate)
|
|
|
|
|
|