pinafore/bin/mastodon-data.js

334 lines
5.9 KiB
JavaScript
Raw Normal View History

import times from 'lodash-es/times'
2018-03-09 03:09:35 +01:00
function unrollThread (user, prefix, privacy, thread) {
2018-03-09 03:08:14 +01:00
let res = []
2018-03-09 03:09:35 +01:00
function unroll (node, parentKey) {
2018-03-09 03:08:14 +01:00
if (!node) {
return
}
for (let key of Object.keys(node)) {
res.push({
user: user,
post: {
internalId: prefix + key,
text: key,
2018-03-09 03:37:32 +01:00
privacy: privacy,
2018-03-09 03:08:14 +01:00
inReplyTo: parentKey && (prefix + parentKey)
}
})
unroll(node[key], key)
}
}
unroll(thread)
return res
}
export const actions = times(30, i => ({
post: {
2018-03-06 05:51:42 +01:00
text: '' + (i + 1)
},
user: 'admin'
})).concat([
{
user: 'foobar',
post: {
text: 'hello world'
}
},
2018-03-06 07:36:54 +01:00
{
user: 'admin',
follow: 'foobar'
},
2018-03-06 06:58:29 +01:00
{
user: 'admin',
post: {
text: '@foobar hello foobar',
privacy: 'unlisted'
}
},
2018-03-06 07:36:54 +01:00
{
user: 'quux',
follow: 'foobar'
},
2018-03-06 06:58:29 +01:00
{
user: 'foobar',
post: {
text: '@admin hello admin',
privacy: 'unlisted'
}
},
{
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: {
2018-03-06 08:56:48 +01:00
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",
2018-03-06 18:03:59 +01:00
media: ['kitten2.mp4'],
sensitive: true
}
},
{
user: 'foobar',
post: {
text: "here's a kitten with a CW",
media: ['kitten5.jpg'],
sensitive: true,
spoiler: 'kitten CW'
}
},
{
2018-03-06 07:36:54 +01:00
user: 'foobar',
post: {
2018-03-06 18:03:59 +01:00
internalId: 'foobar-direct',
2018-03-06 07:36:54 +01:00
text: 'direct',
2018-03-06 06:58:29 +01:00
privacy: 'direct'
}
},
2018-03-06 05:51:42 +01:00
{
user: 'foobar',
2018-03-06 06:21:28 +01:00
post: {
2018-03-06 18:03:59 +01:00
internalId: 'foobar-this-is-followers-only',
2018-03-06 06:21:28 +01:00
text: 'this is followers-only',
privacy: 'private'
}
},
{
user: 'foobar',
post: {
2018-03-06 18:03:59 +01:00
internalId: 'foobar-this-is-unlisted',
2018-03-06 06:21:28 +01:00
text: 'this is unlisted',
privacy: 'unlisted'
}
2018-03-06 05:51:42 +01:00
},
2018-03-06 07:36:54 +01:00
{
user: 'admin',
follow: 'quux'
},
{
user: 'admin',
post: {
2018-03-06 18:03:59 +01:00
internalId: 'notification-of-direct-message',
text: '@foobar notification of direct message',
privacy: 'direct'
}
},
{
user: 'admin',
2018-03-06 18:03:59 +01:00
favorite: 'notification-of-direct-message'
},
{
user: 'admin',
post: {
2018-03-06 18:03:59 +01:00
internalId: 'notification-of-followers-only',
text: '@foobar notification of followers-only message',
privacy: 'private'
}
},
{
user: 'admin',
2018-03-06 18:03:59 +01:00
favorite: 'notification-of-followers-only'
},
{
user: 'admin',
post: {
2018-03-06 18:03:59 +01:00
internalId: 'notification-of-unlisted-message',
text: '@foobar notification of unlisted message',
privacy: 'unlisted'
}
},
2018-03-06 06:58:29 +01:00
{
user: 'admin',
2018-03-06 18:03:59 +01:00
boost: 'foobar-this-is-unlisted'
2018-03-06 06:58:29 +01:00
},
{
user: 'admin',
2018-03-06 18:03:59 +01:00
favorite: 'foobar-this-is-unlisted'
2018-03-06 07:36:54 +01:00
}
]).concat(times(25, i => ({
user: 'quux',
post: {
2018-03-06 18:03:59 +01:00
internalId: `quux-thread-${i}`,
2018-03-06 07:36:54 +01:00
text: 'unlisted thread ' + (i + 1),
privacy: 'unlisted',
2018-03-06 18:03:59 +01:00
inReplyTo: i > 0 && `quux-thread-${i - 1}`
2018-03-06 07:36:54 +01:00
}
}))).concat([
{
user: 'quux',
post: {
2018-03-06 18:03:59 +01:00
internalId: 'pinned-toot-1',
text: 'pinned toot 1',
2018-03-06 06:58:29 +01:00
privacy: 'unlisted'
}
},
{
user: 'quux',
post: {
2018-03-06 18:03:59 +01:00
internalId: 'pinned-toot-2',
text: 'pinned toot 2',
2018-03-06 06:58:29 +01:00
privacy: 'unlisted'
}
2018-03-06 07:36:54 +01:00
},
{
user: 'quux',
2018-03-06 18:03:59 +01:00
pin: 'pinned-toot-2'
},
{
user: 'quux',
2018-03-06 18:03:59 +01:00
pin: 'pinned-toot-1'
},
2018-03-06 06:58:29 +01:00
{
user: 'admin',
2018-03-06 18:03:59 +01:00
boost: 'pinned-toot-1'
2018-03-06 06:58:29 +01:00
},
{
user: 'admin',
2018-03-06 18:03:59 +01:00
favorite: 'pinned-toot-1'
},
2018-03-06 07:36:54 +01:00
{
user: 'admin',
2018-03-06 18:03:59 +01:00
favorite: 'pinned-toot-2'
2018-03-06 07:36:54 +01:00
},
{
user: 'foobar',
2018-03-06 18:03:59 +01:00
favorite: 'pinned-toot-1'
},
{
2018-03-06 07:36:54 +01:00
user: 'foobar',
2018-03-06 18:03:59 +01:00
favorite: 'notification-of-unlisted-message'
2018-03-06 07:36:54 +01:00
},
{
user: 'foobar',
2018-03-06 18:03:59 +01:00
favorite: 'notification-of-followers-only'
2018-03-06 07:36:54 +01:00
},
{
user: 'foobar',
2018-03-06 18:03:59 +01:00
favorite: 'notification-of-direct-message'
2018-03-06 07:36:54 +01:00
},
{
user: 'foobar',
2018-03-06 18:03:59 +01:00
pin: 'foobar-this-is-unlisted'
},
{
user: 'ExternalLinks',
post: {
text: 'here are some hashtags: #kitten #kitties',
2018-03-06 06:58:29 +01:00
privacy: 'unlisted'
}
},
{
user: 'ExternalLinks',
post: {
text: 'here are some external links: https://joinmastodon.org https://github.com/tootsuite/mastodon',
2018-03-06 06:58:29 +01:00
privacy: 'unlisted'
}
},
{
user: 'ExternalLinks',
post: {
text: 'here are some users: @admin @quux',
2018-03-06 06:58:29 +01:00
privacy: 'unlisted'
}
}
2018-03-09 03:08:14 +01:00
].concat(unrollThread('baz', 'bazthread-', 'unlisted', {
2018-03-09 03:09:35 +01:00
'thread 1': {
2018-03-09 03:08:14 +01:00
'thread 2': {
'thread 2a': null,
'thread 2b': {
'thread 2b1': null
},
'thread 2c': null
},
'thread 3': {
'thread 3a': null,
'thread 3b': null,
'thread 3c': null
}
}
})).concat([
{
user: 'baz',
post: {
internalId: 'bazthread-thread 2b2',
text: 'thread 2b2',
2018-03-09 07:18:40 +01:00
inReplyTo: 'bazthread-thread 2b',
privacy: 'unlisted'
2018-03-09 03:08:14 +01:00
}
},
{
user: 'baz',
post: {
internalId: 'bazthread-thread 2d',
text: 'thread 2d',
2018-03-09 07:18:40 +01:00
inReplyTo: 'bazthread-thread 2',
privacy: 'unlisted'
2018-03-09 03:08:14 +01:00
}
},
{
user: 'baz',
post: {
internalId: 'bazthread-thread 2b2a',
text: 'thread 2b2a',
2018-03-09 07:18:40 +01:00
inReplyTo: 'bazthread-thread 2b2',
privacy: 'unlisted'
2018-03-09 03:08:14 +01:00
}
2018-03-15 06:14:06 +01:00
},
{
user: 'LockedAccount',
post: {
text: 'This account is locked',
privacy: 'private'
}
2018-03-09 03:09:35 +01:00
}
2018-03-09 03:08:14 +01:00
]))