mirror of https://github.com/zulip/zulip.git
tools: Pass image path as an argument to the screenshot tool.
Instead of figuring out the image path from the integration name in the puppeteer script, we do it in the `generate-integration-docs-screenshot` script and pass it as an argument to `message-screenshot.js`.
This commit is contained in:
parent
39bea656f7
commit
4e5c30e7fd
|
@ -131,15 +131,14 @@ def send_bot_payload_message(bot: UserProfile, integration: WebhookIntegration,
|
||||||
print('Triggered {} webhook'.format(integration.name))
|
print('Triggered {} webhook'.format(integration.name))
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def capture_last_message_screenshot(bot: UserProfile, integration: WebhookIntegration,
|
def capture_last_message_screenshot(bot: UserProfile, image_path: str) -> None:
|
||||||
fixture_name: str) -> None:
|
|
||||||
message = Message.objects.filter(sender=bot).last()
|
message = Message.objects.filter(sender=bot).last()
|
||||||
if message is None:
|
if message is None:
|
||||||
print('No message found for {} integration for {}'.format(integration.name, fixture_name))
|
print('No message found for {}'.format(bot.full_name))
|
||||||
return
|
return
|
||||||
message_id = str(message.id)
|
message_id = str(message.id)
|
||||||
screenshot_script = os.path.join(TOOLS_DIR, 'message-screenshot.js')
|
screenshot_script = os.path.join(TOOLS_DIR, 'message-screenshot.js')
|
||||||
subprocess.check_call(['node', screenshot_script, integration.name, message_id])
|
subprocess.check_call(['node', screenshot_script, message_id, image_path])
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('fixture', type=webhook_json_fixture, help='Path to the fixture to use')
|
parser.add_argument('fixture', type=webhook_json_fixture, help='Path to the fixture to use')
|
||||||
|
@ -155,4 +154,5 @@ bot = create_integration_bot(integration)
|
||||||
create_integration_stream(integration, bot)
|
create_integration_stream(integration, bot)
|
||||||
message_sent = send_bot_payload_message(bot, integration, options.fixture, options.custom_headers)
|
message_sent = send_bot_payload_message(bot, integration, options.fixture, options.custom_headers)
|
||||||
if message_sent:
|
if message_sent:
|
||||||
capture_last_message_screenshot(bot, integration, fixture_name)
|
image_path = static_path('images/integrations/{name}/001.png'.format(name=integration.name))
|
||||||
|
capture_last_message_screenshot(bot, image_path)
|
||||||
|
|
|
@ -6,16 +6,16 @@ const host = "localhost:9991";
|
||||||
const options = {};
|
const options = {};
|
||||||
|
|
||||||
commander
|
commander
|
||||||
.arguments('<integration> <message_id>')
|
.arguments('<message_id> <image_path>')
|
||||||
.action((integration, messageId) => {
|
.action((messageId, imagePath) => {
|
||||||
options.integration = integration;
|
|
||||||
options.messageId = messageId;
|
options.messageId = messageId;
|
||||||
console.log(`Capturing screenshot for ${integration} using message ${messageId}`);
|
options.imagePath = imagePath;
|
||||||
|
console.log(`Capturing screenshot for message ${messageId} to ${imagePath}`);
|
||||||
})
|
})
|
||||||
.parse(process.argv);
|
.parse(process.argv);
|
||||||
|
|
||||||
if (options.integration === undefined) {
|
if (options.messageId === undefined) {
|
||||||
console.error('no integration specified!');
|
console.error('no messageId specified!');
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,9 +56,9 @@ async function run() {
|
||||||
clip.x -= 5;
|
clip.x -= 5;
|
||||||
clip.width += 10;
|
clip.width += 10;
|
||||||
clip.height += 10;
|
clip.height += 10;
|
||||||
const imageDir = path.join(__dirname, '..', 'static', 'images', 'integrations', options.integration);
|
const imagePath = options.imagePath;
|
||||||
|
const imageDir = path.dirname(imagePath);
|
||||||
mkdirp.sync(imageDir);
|
mkdirp.sync(imageDir);
|
||||||
const imagePath = path.join(imageDir, '001.png');
|
|
||||||
await page.screenshot({ path: imagePath, clip: clip });
|
await page.screenshot({ path: imagePath, clip: clip });
|
||||||
console.log(`Screenshot captured to: \x1B[1;31m${imagePath}\n`);
|
console.log(`Screenshot captured to: \x1B[1;31m${imagePath}\n`);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
Loading…
Reference in New Issue