49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
|
const AWS = require('aws-sdk');
|
||
|
const fetch = require('node-fetch');
|
||
|
|
||
|
AWS.config.update({region: 'us-east-1'});
|
||
|
|
||
|
|
||
|
exports.handler = (event) => {
|
||
|
const message = JSON.parse(event.Records[0].Sns.Message);
|
||
|
//console.log(`MESSAGE: ${JSON.stringify(message)}`);
|
||
|
|
||
|
if (message.messageBody.toLowerCase().includes('wuvt')) {
|
||
|
fetch('https://www.wuvt.vt.edu/playlists/latest_track', {
|
||
|
headers: {
|
||
|
Accept: 'application/json',
|
||
|
}
|
||
|
}).then((r) => {
|
||
|
r.text().then((rt) => {
|
||
|
// Check for error
|
||
|
if (r.status !== 200) {
|
||
|
console.error(`ERROR, STATUS: ${r.status}, TEXT: ${rt}`);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
// Create smsResponse
|
||
|
const trackinfo = JSON.parse(rt);
|
||
|
let smsResponse = '';
|
||
|
if (trackinfo.listeners) {
|
||
|
smsResponse = `${trackinfo.dj} is currently playing "${trackinfo.title}" by ${trackinfo.artist} with ${trackinfo.listeners} listeners.`;
|
||
|
} else {
|
||
|
smsResponse = `${trackinfo.dj} is currently playing "${trackinfo.title}" by ${trackinfo.artist}.`;
|
||
|
}
|
||
|
|
||
|
// Send smsResponse
|
||
|
const smsParams = {
|
||
|
Message: smsResponse,
|
||
|
PhoneNumber: message.originationNumber,
|
||
|
};
|
||
|
|
||
|
const promise = new AWS.SNS({apiVersion: '2010-03-31'}).publish(smsParams).promise();
|
||
|
promise.then().catch((err) => {
|
||
|
console.error(err, err.stack);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
} else {
|
||
|
console.log(`MESSAGE: ${JSON.stringify(message)}`);
|
||
|
}
|
||
|
};
|