From 253e14dc9ce0e2094f0376b006447edb1a76cc69 Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Mon, 5 Mar 2018 10:10:50 -0800 Subject: [PATCH] start on building test db from scratch --- bin/restore-mastodon-data.js | 226 +++++++++++++++++++++++++++++++++++ bin/run-mastodon.js | 8 +- 2 files changed, 231 insertions(+), 3 deletions(-) create mode 100644 bin/restore-mastodon-data.js diff --git a/bin/restore-mastodon-data.js b/bin/restore-mastodon-data.js new file mode 100644 index 0000000..0412a5c --- /dev/null +++ b/bin/restore-mastodon-data.js @@ -0,0 +1,226 @@ +const times = require('lodash/times') + +const actions = times(30, i => ({ + post: { + text: (i + 1) + }, + user: 'admin' +})).concat([ + { + user: 'foobar', + post: { + text: 'hello world' + } + }, + { + user: 'foobar', + post: { + text: "here's a kitten", + media: ['kitten1.jpg'] + } + }, + { + user: 'foobar', + post: { + text: "here's a secret kitten", + media: ['kitten2.jpg'], + sensitive: true + } + }, + { + user: 'foobar', + post: { + text: "here's 2 kitten photos", + media: ['kitten3.jpg', 'kitten4.jpg'] + } + }, + { + user: 'foobar', + post: { + text: "here's an animated kitten gif", + media: ['kitten1.gif'] + } + }, + { + user: 'foobar', + post: { + text: "here's a secret animated kitten gif", + media: ['kitten2.gif'], + sensitive: true + } + }, + { + user: 'foobar', + post: { + text: "content warning", + spoiler: 'CW' + } + }, + { + user: 'foobar', + post: { + text: "here's a video", + media: ['kitten1.mp4'] + } + }, + { + user: 'foobar', + post: { + text: "here's a secret video", + media: ['kitten2.mp4'] + } + }, + { + user: 'foobar', + post: { + text: "here's a kitten with a CW", + media: ['kitten5.jpg'], + sensitive: true, + spoiler: 'kitten CW' + } + }, + // notifications for foobar + { + user: 'admin', + follow: 'foobar' + }, + { + user: 'admin', + post: { + text: '@foobar hello foobar', + privacy: 'unlisted' + } + }, + { + user: 'quux', + follow: 'foobar' + }, + { + user: 'admin', + post: { + internalId: 3, + text: '@foobar notification of direct message', + privacy: 'direct' + } + }, + { + user: 'admin', + favorite: 3 + }, + { + user: 'admin', + post: { + internalId: 4, + text: '@foobar notification of followers-only message', + privacy: 'private' + } + }, + { + user: 'admin', + favorite: 4 + }, + { + user: 'admin', + post: { + internalId: 1, + text: '@foobar notification of unlisted message', + privacy: 'unlisted' + } + }, + { + user: 'admin', + boost: 1 + }, + { + user: 'foobar', + post: { + internalId: 2, + text: 'this is unlisted', + privacy: 'private' + } + }, + { + user: 'admin', + boost: 2 + }, + { + user: 'admin', + favorite: 2 + }, + { + user: 'quux', + post: { + internalId: 5, + text: 'pinned toot 1', + privacy: 'private' + } + }, + { + user: 'quux', + post: { + internalId: 6, + text: 'pinned toot 2', + privacy: 'private' + } + } +]).concat(times(25, i => ({ + user: 'quux', + post: { + internalId: 100 + i, + text: 'unlisted thread ' + (i + 1), + privacy: 'private', + inReplyTo: i > 0 && (100 + i) + } +}))).concat([ + { + user: 'quux', + pin: 5 + }, + { + user: 'quux', + pin: 6 + }, + { + user: 'admin', + boost: 5 + }, + { + user: 'admin', + favorite: 5 + }, + { + user: 'foobar', + favorite: 5 + }, + { + user: 'admin', + favorite: 6 + }, + { + user: 'ExternalLinks', + post: { + text: 'here are some hashtags: #kitten #kitties', + privacy: 'private' + } + }, + { + user: 'ExternalLinks', + post: { + text: 'here are some external links: https://joinmastodon.org https://github.com/tootsuite/mastodon', + privacy: 'private' + } + }, + { + user: 'ExternalLinks', + post: { + text: 'here are some users: @admin @quux', + privacy: 'private' + } + } +]) + +async function restoreMastodonData () { + console.log('Restoring mastodon data...') +} + +module.exports = restoreMastodonData \ No newline at end of file diff --git a/bin/run-mastodon.js b/bin/run-mastodon.js index 450b3bf..66f6b56 100644 --- a/bin/run-mastodon.js +++ b/bin/run-mastodon.js @@ -1,3 +1,4 @@ +const restoreMastodonData = require ('./restore-mastodon-data') const pify = require('pify') const exec = require('child-process-promise').exec const spawn = require('child-process-promise').spawn @@ -30,8 +31,8 @@ async function cloneMastodon () { } } -async function restoreMastodonData () { - console.log('Restoring mastodon data...') +async function setupMastodonDatabase() { + console.log('Setting up mastodon database...') try { await exec('dropdb mastodon_development', {cwd: mastodonDir}) } catch (e) { /* ignore */ } @@ -70,8 +71,9 @@ async function runMastodon () { async function main () { await cloneMastodon() - await restoreMastodonData() + await setupMastodonDatabase() await runMastodon() + //await restoreMastodonData() } process.on('SIGINT', function () {