diff --git a/.gitignore b/.gitignore index e80c902..aff088c 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,8 @@ coverage .env docker-compose.override.yml +/temp + /cypress/videos/ /cypress/screenshots/ diff --git a/app/index.mjs b/app/index.mjs index 2d49fde..65f5ca0 100644 --- a/app/index.mjs +++ b/app/index.mjs @@ -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, } diff --git a/app/twitter/TwitterManager.mjs b/app/twitter/TwitterManager.mjs index e84bbf4..ba0e1bf 100644 --- a/app/twitter/TwitterManager.mjs +++ b/app/twitter/TwitterManager.mjs @@ -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(); + } } diff --git a/app/twitter/generators/TweetGenerator.mjs b/app/twitter/generators/TweetGenerator.mjs index 4c72c1c..cee512f 100644 --- a/app/twitter/generators/TweetGenerator.mjs +++ b/app/twitter/generators/TweetGenerator.mjs @@ -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) { // diff --git a/app/twitter/index.mjs b/app/twitter/index.mjs index 1029a06..b18bc2f 100644 --- a/app/twitter/index.mjs +++ b/app/twitter/index.mjs @@ -10,3 +10,7 @@ export function defaultTwitterManager() { export function sendTweets() { return defaultTwitterManager().sendTweets(); } + +export function testTweets() { + return defaultTwitterManager().testTweets(); +} diff --git a/package.json b/package.json index 264bf20..2955b74 100644 --- a/package.json +++ b/package.json @@ -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" },