Code from AWS

This commit is contained in:
Matthew Bessette 2020-09-20 19:30:48 -04:00
commit 6a891e1275
3 changed files with 140 additions and 0 deletions

58
index.js Normal file
View File

@ -0,0 +1,58 @@
const AWS = require('aws-sdk');
AWS.config.update({region: 'us-east-1'});
const knex = require('knex')({
client: 'mysql',
connection: {
host: 'nzoth-whispers.cnr1c5jzuhe8.us-east-1.rds.amazonaws.com',
user: 'lambda_user',
password: 'AppleADay',
database: 'nzoth'
}
});
const whispers = require('./whispers.json');
const snsService = new AWS.SNS({apiVersion: '2010-03-31'});
const getRandomWhisper = () => {
const randomIndex = Math.floor(Math.random() * (whispers.length - 1));
return whispers[randomIndex];
};
const sendWhisper = PhoneNumber => {
// TODO : Include opt-out logic
const Message = getRandomWhisper();
console.log(`Sending "${Message}" to "${PhoneNumber}"`);
return snsService.publish({
Message: Message,
PhoneNumber: PhoneNumber
}).promise()
.catch(err => console.error(`Error sending sms: ${err}`));
};
exports.handler = async (event) => {
const phoneNumbers = await knex
.select().from('phone_numbers').where('is_deleted', 0)
.catch(err => console.error(`Error getting phone_numbers: ${err}`));
if (!phoneNumbers) {
return;
}
const inFlightMessages = phoneNumbers
.map(r => r.phone_number)
.map( sendWhisper );
await Promise.all(inFlightMessages).catch(err => console.error(err));
console.log('Wrapping up');
return;
};

15
package.json Normal file
View File

@ -0,0 +1,15 @@
{
"name": "lambda",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"knex": "^0.21.5",
"mysql": "^2.18.1"
}
}

67
whispers.json Normal file
View File

@ -0,0 +1,67 @@
[
"N'Zoth whispers: Six seats at the high table. Six mouths that hunger. One will consume all others.",
"N'Zoth whispers: She is not the last, but the first. Drown her and you will see.",
"N'Zoth whispers: The veil wanes. His crown will open the way.",
"N'Zoth whispers: I alone can save you from what is to come.",
"N'Zoth whispers: It grows hungrier... bolder. Alas, your eyes are closed.",
"N'Zoth whispers: When the arrow finds its mark, the last fetter will fall away.",
"N'Zoth whispers: The Light has struck a bargain with the enemy of all.",
"N'Zoth whispers: The fall of night reveals her true face. She will bring only ruin.",
"N'Zoth whispers: He gave himself to the deep places. He gave himself to me.",
"N'Zoth whispers: With every choice, you become more my servant.",
"N'Zoth whispers: At last... embrace the truth of shadow.",
"N'Zoth whispers: Yes... you draw closer... ever closer.",
"N'Zoth whispers: Ahh... you think you know power.",
"N'Zoth whispers: The storm holds strength... but there is a price to be paid.",
"N'Zoth whispers: Harness your fury... make your hatred a weapon.",
"N'Zoth whispers: Children... the depths are my domain.",
"N'Zoth whispers: Let the tides draw you into my dream...",
"N'Zoth whispers: Deeper, ever deeper...",
"N'Zoth whispers: Patience... patience. They may yet prove worthy to receive my gift. I will taste their dreams... their flesh.",
"C'Thun whispers: Death is close...",
"C'Thun whispers: You are already dead.",
"C'Thun whispers: Your courage will fail.",
"C'Thun whispers: Your friends will abandon you.",
"C'Thun whispers: You will betray your friends.",
"C'Thun whispers: You will die.",
"C'Thun whispers: You are weak.",
"C'Thun whispers: Your heart will explode.",
"Yogg-Sarron whispers: They are coming for you...",
"Yogg-Sarron whispers: Give in to your fear...",
"Yogg-Sarron whispers: Kill them all... before they kill you...",
"Yogg-Sarron whispers: They have turned against you... now, take your revenge...",
"Yogg-Sarron whispers: It WAS your fault...",
"Yogg-Sarron whispers: Tell yourself again that these are not truly your friends...",
"Yogg-Sarron whispers: You are a pawn of forces unseen...",
"Yogg-Sarron whispers: There is no escape... not in this life... not in the next...",
"Yogg-Sarron whispers: Trust is your weakness...",
"Yogg-Sarron whispers: Hope is an illusion...",
"Yogg-Sarron whispers: All that you know will fade...",
"Yogg-Sarron whispers: You will be alone in the end...",
"Puzzle Box of Yogg-Saron whispers: At the bottom of the ocean even light must die.",
"Puzzle Box of Yogg-Saron whispers: Even death may die.",
"Puzzle Box of Yogg-Saron whispers: The stars sweep chill currents that make men shiver in the dark.",
"Puzzle Box of Yogg-Saron whispers: You will all be alone in the end.",
"Puzzle Box of Yogg-Saron whispers: Look around. They will all betray you. Flee screaming into the black forest.",
"Puzzle Box of Yogg-Saron whispers: In the land of Ny'alotha there is only sleep.",
"Puzzle Box of Yogg-Saron whispers: In the sleeping city of Ny'alotha walk only mad things.",
"Puzzle Box of Yogg-Saron whispers: Ny'alotha is a city of old, terrible, unnumbered crimes.",
"Puzzle Box of Yogg-Saron whispers: The drowned god's heart is black ice.",
"Puzzle Box of Yogg-Saron whispers: The fish know all the secrets. They know the cold. They know the dark.",
"Puzzle Box of Yogg-Saron whispers: You resist. You cling to your life as if it actually matters. You will learn.",
"Puzzle Box of Yogg-Saron whispers: In the sunken city, he lays dreaming.",
"Puzzle Box of Yogg-Saron whispers: The silent, sleeping, staring houses in the backwoods always dream. It would be merciful to tear them down.",
"Puzzle Box of Yogg-Saron whispers: There is no sharp distinction between the real and the unreal.",
"Puzzle Box of Yogg-Saron whispers: There is a little lamb lost in dark woods.",
"Puzzle Box of Yogg-Saron whispers: All places, all things have souls. All souls can be devoured.",
"Puzzle Box of Yogg-Saron whispers: What can change the nature of a man?",
"Puzzle Box of Yogg-Saron whispers: Do you dream while you sleep or is it an escape from the horrors of reality?",
"Puzzle Box of Yogg-Saron whispers: Y'knath k'th'rygg k'yi mrr'ungha gr'mula.",
"Puzzle Box of Yogg-Saron whispers: The void sucks at your soul. It is content to feast slowly.",
"Puzzle Box of Yogg-Saron whispers: It is standing right behind you. Do not move. Do not breathe.",
"Puzzle Box of Yogg-Saron whispers: Have you had the dream again? A black goat with seven eyes that watches from the outside.",
"Puzzle Box of Yogg-Saron whispers: Open me! Open me! Open me! Then only will you know peace.",
"Puzzle Box of Yogg-Saron whispers: The tortured spirits of your ancestors cling to you, screaming in silence. Apparently they are quite numerous.",
"Puzzle Box of Yogg-Saron whispers: The giant rook watches from the dead trees. Nothing breathes beneath his shadow.",
"Puzzle Box of Yogg-Saron whispers: Beneath the shadow of the darkened spire, there is no light, no mercy, only void, and the chaos within."
]