Add a command for testing tweets

This commit is contained in:
Matt Isenhower 2022-09-20 20:53:21 -07:00
parent a5399c89ca
commit a26fdae3f9
6 changed files with 44 additions and 3 deletions

2
.gitignore vendored
View File

@ -17,6 +17,8 @@ coverage
.env
docker-compose.override.yml
/temp
/cypress/videos/
/cypress/screenshots/

View File

@ -1,7 +1,7 @@
import dotenv from 'dotenv';
import consoleStamp from 'console-stamp';
import cron from './cron.mjs';
import { sendTweets } from './twitter/index.mjs';
import { sendTweets, testTweets } from './twitter/index.mjs';
import { updateAll } from './data/index.mjs';
import { warmCaches } from "./splatnet/index.mjs";
@ -11,6 +11,7 @@ dotenv.config();
const actions = {
cron,
twitter: sendTweets,
twitterTest: testTweets,
splatnet: updateAll,
warmCaches,
}

View File

@ -1,3 +1,5 @@
import fs from 'fs/promises';
import mkdirp from 'mkdirp';
import ScreenshotHelper from "../screenshots/ScreenshotHelper.mjs";
import TweetGenerator from "./generators/TweetGenerator.mjs";
import TwitterClient from "./TwitterClient.mjs";
@ -30,4 +32,29 @@ export default class TwitterManager
await this.screenshotHelper.close();
}
async testTweets() {
for (let generator of this.generators) {
let dir = 'temp';
await mkdirp(dir);
let tweet = await generator.getTweet(this.screenshotHelper);
let imgFilename = `temp/${generator.key}.png`;
await fs.writeFile(imgFilename, tweet.media[0].file);
let text = [
'Status:',
tweet.status,
'',
'Alt text:',
tweet.media[0].altText,
].join('\n');
let textFilename = `temp/${generator.key}.txt`;
await fs.writeFile(textFilename, text);
}
await this.screenshotHelper.close();
}
}

View File

@ -78,8 +78,7 @@ export default class TweetGenerator
const tweet = new Tweet;
tweet.status = await this._getStatus();
await this._prepareScreenshotHelper(screenshotHelper);
let media = await this._getMedia(screenshotHelper);
let media = await this.getMedia(screenshotHelper);
if (media && !Array.isArray(media)) {
media = [media];
}
@ -98,6 +97,13 @@ export default class TweetGenerator
//
}
/** @param {ScreenshotHelper} screenshotHelper */
async getMedia(screenshotHelper) {
await this._prepareScreenshotHelper(screenshotHelper);
return await this._getMedia(screenshotHelper);
}
/** @param {ScreenshotHelper} screenshotHelper */
async _getMedia(screenshotHelper) {
//

View File

@ -10,3 +10,7 @@ export function defaultTwitterManager() {
export function sendTweets() {
return defaultTwitterManager().sendTweets();
}
export function testTweets() {
return defaultTwitterManager().testTweets();
}

View File

@ -8,6 +8,7 @@
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
"cron": "node app/index.mjs cron",
"twitter": "node app/index.mjs twitter",
"twitter:test": "node app/index.mjs twitterTest",
"splatnet": "node app/index.mjs splatnet",
"warmCaches": "node app/index.mjs warmCaches"
},