feat: include screenshot for emails + sms notifications (#144)

This commit is contained in:
Jordan Garcia
2020-09-20 20:42:20 -04:00
committed by GitHub
parent 0f6e570cc8
commit 7191e03a80
5 changed files with 27 additions and 5 deletions
+11 -1
View File
@@ -2,6 +2,7 @@ import nodemailer from 'nodemailer';
import Mail from 'nodemailer/lib/mailer';
import {Config} from '../config';
import {Logger} from '../logger';
import {Link} from '../store/model';
const email = Config.notifications.email;
const subject = 'NVIDIA - BUY NOW';
@@ -20,9 +21,18 @@ const mailOptions: Mail.Options = {
subject
};
export function sendEmail(cartUrl: string) {
export function sendEmail(cartUrl: string, link: Link) {
mailOptions.text = cartUrl;
if (link.screenshot) {
mailOptions.attachments = [
{
filename: link.screenshot,
path: `./${link.screenshot}`
}
];
}
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
Logger.error(error);
+2 -2
View File
@@ -12,7 +12,7 @@ const notifications = Config.notifications;
export function sendNotification(cartUrl: string, link: Link) {
if (notifications.email.username && notifications.email.password) {
sendEmail(cartUrl);
sendEmail(cartUrl, link);
}
if (notifications.slack.channel && notifications.slack.token) {
@@ -30,7 +30,7 @@ export function sendNotification(cartUrl: string, link: Link) {
if (notifications.phone.number) {
const carrier = notifications.phone.carrier.toLowerCase();
if (carrier && notifications.phone.availableCarriers.has(carrier)) {
sendSMS(cartUrl);
sendSMS(cartUrl, link);
}
}
+11 -1
View File
@@ -2,6 +2,7 @@ import nodemailer from 'nodemailer';
import Mail from 'nodemailer/lib/mailer';
import {Config} from '../config';
import {Logger} from '../logger';
import {Link} from '../store/model';
const subject = 'NVIDIA - BUY NOW';
const [email, phone] = [Config.notifications.email, Config.notifications.phone];
@@ -20,9 +21,18 @@ const mailOptions: Mail.Options = {
subject
};
export function sendSMS(text: string) {
export function sendSMS(text: string, link: Link) {
mailOptions.text = text;
if (link.screenshot) {
mailOptions.attachments = [
{
filename: link.screenshot,
path: `./${link.screenshot}`
}
];
}
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
Logger.error(error);
+2 -1
View File
@@ -84,7 +84,8 @@ async function lookup(browser: Browser, store: Store) {
if (Config.page.capture) {
Logger.debug(' saving screenshot');
await page.screenshot({path: `success-${Date.now()}.png`});
link.screenshot = `success-${Date.now()}.png`;
await page.screenshot({path: link.screenshot});
}
const givenUrl = link.cartUrl ? link.cartUrl : link.url;
+1
View File
@@ -4,6 +4,7 @@ export interface Link {
model: string;
series: string;
url: string;
screenshot?: string;
}
export interface Labels {