mirror of
https://github.com/opelly27/streetmerchant.git
synced 2026-05-20 06:27:38 +00:00
refactor: break out mail code (#10)
Co-authored-by: Jef LeCompte <jeffreylec@gmail.com>
This commit is contained in:
+13
-33
@@ -1,42 +1,24 @@
|
|||||||
|
const mailer = require("./mailer")
|
||||||
|
|
||||||
const puppeteer = require("puppeteer");
|
const puppeteer = require("puppeteer");
|
||||||
const opn = require("opn");
|
const opn = require("opn");
|
||||||
const nodemailer = require("nodemailer");
|
|
||||||
|
|
||||||
const timeout = 5000;
|
const timeout = 5000;
|
||||||
const waitForTimeout = 1000;
|
const waitForTimeout = 1000;
|
||||||
|
|
||||||
const cartLink =
|
|
||||||
"https://store.nvidia.com/store/nvidia/en_US/buy/productID.5438481700/clearCart.yes/nextPage.QuickBuyCartPage";
|
|
||||||
|
|
||||||
const emailUsername = process.env.EMAIL_USERNAME;
|
|
||||||
const emailPassword = process.env.EMAIL_PASSWORD;
|
|
||||||
|
|
||||||
const transporter = nodemailer.createTransport({
|
|
||||||
service: "gmail",
|
|
||||||
auth: {
|
|
||||||
user: emailUsername,
|
|
||||||
pass: emailPassword,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const mailOptions = {
|
|
||||||
from: emailUsername,
|
|
||||||
to: emailUsername,
|
|
||||||
subject: "NVIDIA - BUY NOW",
|
|
||||||
text: cartLink,
|
|
||||||
};
|
|
||||||
|
|
||||||
async function buy() {
|
async function buy() {
|
||||||
const links = [
|
const links = [
|
||||||
{
|
{
|
||||||
name: "nvidia.com",
|
name: "nvidia.com",
|
||||||
url: "https://www.nvidia.com/en-us/geforce/buy/",
|
url: "https://www.nvidia.com/en-us/geforce/buy/",
|
||||||
oosText: "out of stock"
|
oosText: ["out of stock"],
|
||||||
|
cartUrl: "https://store.nvidia.com/store/nvidia/en_US/buy/productID.5438481700/clearCart.yes/nextPage.QuickBuyCartPage"
|
||||||
}
|
}
|
||||||
,{
|
,{
|
||||||
name: "nvidia.com 2",
|
name: "nvidia.com 2",
|
||||||
url: "https://www.nvidia.com/en-us/shop/geforce/?page=1&limit=9&locale=en-us&search=3080",
|
url: "https://www.nvidia.com/en-us/shop/geforce/?page=1&limit=9&locale=en-us&search=3080",
|
||||||
oosText: ["out of stock"]
|
oosText: ["out of stock"],
|
||||||
|
cartUrl: "https://store.nvidia.com/store/nvidia/en_US/buy/productID.5438481700/clearCart.yes/nextPage.QuickBuyCartPage"
|
||||||
}
|
}
|
||||||
,{
|
,{
|
||||||
name: "bestbuy.com",
|
name: "bestbuy.com",
|
||||||
@@ -116,16 +98,14 @@ async function goto(link) {
|
|||||||
} else {
|
} else {
|
||||||
console.log("*** IN STOCK AT " + link.name.toUpperCase() + ", BUY NOW ***");
|
console.log("*** IN STOCK AT " + link.name.toUpperCase() + ", BUY NOW ***");
|
||||||
await page.screenshot({ path: `nvidia-${Date.now()}.png` });
|
await page.screenshot({ path: `nvidia-${Date.now()}.png` });
|
||||||
opn(link.url);
|
let clickUrl;
|
||||||
if (emailUsername && emailPassword) {
|
if (link.cartUrl) {
|
||||||
transporter.sendMail(mailOptions, function (error, info) {
|
clickUrl = link.cartUrl
|
||||||
if (error) {
|
} else {
|
||||||
console.log(error);
|
clickUrl = link.url
|
||||||
} else {
|
|
||||||
console.log("email sent: " + info.response);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
opn(clickUrl);
|
||||||
|
mailer.send(clickUrl)
|
||||||
}
|
}
|
||||||
|
|
||||||
await browser.close();
|
await browser.close();
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
const nodemailer = require("nodemailer");
|
||||||
|
|
||||||
|
const emailUsername = process.env.EMAIL_USERNAME;
|
||||||
|
const emailPassword = process.env.EMAIL_PASSWORD;
|
||||||
|
|
||||||
|
const transporter = nodemailer.createTransport({
|
||||||
|
service: "gmail",
|
||||||
|
auth: {
|
||||||
|
user: emailUsername,
|
||||||
|
pass: emailPassword,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
let mailOptions = {
|
||||||
|
from: emailUsername,
|
||||||
|
to: emailUsername,
|
||||||
|
subject: "NVIDIA - BUY NOW",
|
||||||
|
text: '',
|
||||||
|
};
|
||||||
|
|
||||||
|
function send(text) {
|
||||||
|
mailOptions.text = text;
|
||||||
|
if (emailUsername && emailPassword) {
|
||||||
|
transporter.sendMail(mailOptions, function (error, info) {
|
||||||
|
if (error) {
|
||||||
|
console.log(error);
|
||||||
|
} else {
|
||||||
|
console.log("email sent: " + info.response);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { send }
|
||||||
Reference in New Issue
Block a user