2022-04-28 08:18:50 -07:00
|
|
|
import { favoriteStatus } from '../src/routes/_api/favorite.js'
|
2018-02-24 21:27:32 -08:00
|
|
|
import fetch from 'node-fetch'
|
2018-03-10 10:54:16 -08:00
|
|
|
import FileApi from 'file-api'
|
2022-04-28 08:18:50 -07:00
|
|
|
import { users } from './users.js'
|
2022-12-18 11:20:17 -08:00
|
|
|
import { postStatus, putStatus } from '../src/routes/_api/statuses.js'
|
2022-04-28 08:18:50 -07:00
|
|
|
import { deleteStatus } from '../src/routes/_api/delete.js'
|
|
|
|
import { authorizeFollowRequest, getFollowRequests } from '../src/routes/_api/followRequests.js'
|
|
|
|
import { followAccount, unfollowAccount } from '../src/routes/_api/follow.js'
|
|
|
|
import { updateCredentials } from '../src/routes/_api/updateCredentials.js'
|
|
|
|
import { reblogStatus } from '../src/routes/_api/reblog.js'
|
2021-07-04 20:19:04 -07:00
|
|
|
import { submitMedia } from './submitMedia.js'
|
2022-04-28 08:18:50 -07:00
|
|
|
import { voteOnPoll } from '../src/routes/_api/polls.js'
|
|
|
|
import { POLL_EXPIRY_DEFAULT } from '../src/routes/_static/polls.js'
|
|
|
|
import { createList, getLists } from '../src/routes/_api/lists.js'
|
|
|
|
import { createFilter, deleteFilter, getFilters } from '../src/routes/_api/filters.js'
|
2018-03-10 10:54:16 -08:00
|
|
|
|
2018-03-05 23:56:48 -08:00
|
|
|
global.fetch = fetch
|
2018-03-10 10:54:16 -08:00
|
|
|
global.File = FileApi.File
|
|
|
|
global.FormData = FileApi.FormData
|
2018-02-24 21:27:32 -08:00
|
|
|
|
2018-03-10 16:21:10 -08:00
|
|
|
const instanceName = 'localhost:3000'
|
|
|
|
|
2018-03-16 10:06:02 -07:00
|
|
|
export async function favoriteStatusAs (username, statusId) {
|
|
|
|
return favoriteStatus(instanceName, users[username].accessToken, statusId)
|
2018-02-24 21:27:32 -08:00
|
|
|
}
|
2018-03-10 10:54:16 -08:00
|
|
|
|
2018-08-28 06:45:15 -07:00
|
|
|
export async function reblogStatusAs (username, statusId) {
|
|
|
|
return reblogStatus(instanceName, users[username].accessToken, statusId)
|
|
|
|
}
|
|
|
|
|
2018-03-16 10:06:02 -07:00
|
|
|
export async function postAs (username, text) {
|
|
|
|
return postStatus(instanceName, users[username].accessToken, text,
|
2018-03-10 10:54:16 -08:00
|
|
|
null, null, false, null, 'public')
|
|
|
|
}
|
2018-03-10 16:21:10 -08:00
|
|
|
|
2022-12-18 11:20:17 -08:00
|
|
|
export async function putAs (username, text, statusId) {
|
|
|
|
return putStatus(instanceName, users[username].accessToken, statusId, text,
|
|
|
|
null, null, false, null, 'public')
|
|
|
|
}
|
|
|
|
|
2018-12-03 23:23:29 -08:00
|
|
|
export async function postWithSpoilerAndPrivacyAs (username, text, spoiler, privacy) {
|
|
|
|
return postStatus(instanceName, users[username].accessToken, text,
|
|
|
|
null, null, true, spoiler, privacy)
|
|
|
|
}
|
|
|
|
|
2020-08-30 18:08:55 -07:00
|
|
|
export async function postStatusWithMediaAs (username, status, filename, alt, sensitive) {
|
|
|
|
const mediaResponse = await submitMedia(users[username].accessToken, filename, alt)
|
|
|
|
return postStatus(instanceName, users[username].accessToken, status,
|
|
|
|
null, [mediaResponse.id], !!sensitive, null, 'public')
|
|
|
|
}
|
|
|
|
|
2019-09-17 00:19:53 -07:00
|
|
|
export async function postEmptyStatusWithMediaAs (username, filename, alt, sensitive) {
|
2019-08-03 13:49:37 -07:00
|
|
|
const mediaResponse = await submitMedia(users[username].accessToken, filename, alt)
|
2018-12-01 00:10:30 -08:00
|
|
|
return postStatus(instanceName, users[username].accessToken, '',
|
2019-09-17 00:19:53 -07:00
|
|
|
null, [mediaResponse.id], !!sensitive, null, 'public')
|
2018-12-01 00:10:30 -08:00
|
|
|
}
|
|
|
|
|
2018-03-16 10:06:02 -07:00
|
|
|
export async function postReplyAs (username, text, inReplyTo) {
|
|
|
|
return postStatus(instanceName, users[username].accessToken, text,
|
2018-03-10 20:24:07 -08:00
|
|
|
inReplyTo, null, false, null, 'public')
|
|
|
|
}
|
|
|
|
|
2021-02-27 18:31:53 -08:00
|
|
|
export async function postReplyWithSpoilerAs (username, text, inReplyTo, spoilerText) {
|
|
|
|
return postStatus(instanceName, users[username].accessToken, text,
|
|
|
|
inReplyTo, null, false, spoilerText, 'public')
|
|
|
|
}
|
|
|
|
|
2018-03-16 10:06:02 -07:00
|
|
|
export async function deleteAs (username, statusId) {
|
|
|
|
return deleteStatus(instanceName, users[username].accessToken, statusId)
|
2018-03-10 16:21:10 -08:00
|
|
|
}
|
2018-03-14 22:14:06 -07:00
|
|
|
|
2018-03-16 10:06:02 -07:00
|
|
|
export async function getFollowRequestsAs (username) {
|
|
|
|
return getFollowRequests(instanceName, users[username].accessToken)
|
2018-03-14 22:14:06 -07:00
|
|
|
}
|
|
|
|
|
2018-03-16 10:06:02 -07:00
|
|
|
export async function authorizeFollowRequestAs (username, id) {
|
|
|
|
return authorizeFollowRequest(instanceName, users[username].accessToken, id)
|
2018-03-14 22:14:06 -07:00
|
|
|
}
|
2018-04-28 14:19:39 -07:00
|
|
|
|
|
|
|
export async function followAs (username, userToFollow) {
|
|
|
|
return followAccount(instanceName, users[username].accessToken, users[userToFollow].id)
|
|
|
|
}
|
|
|
|
|
|
|
|
export async function unfollowAs (username, userToFollow) {
|
|
|
|
return unfollowAccount(instanceName, users[username].accessToken, users[userToFollow].id)
|
|
|
|
}
|
2018-08-19 15:23:40 -07:00
|
|
|
|
|
|
|
export async function updateUserDisplayNameAs (username, displayName) {
|
2018-08-29 21:42:57 -07:00
|
|
|
return updateCredentials(instanceName, users[username].accessToken, { display_name: displayName })
|
2018-08-19 15:23:40 -07:00
|
|
|
}
|
2019-05-27 12:31:35 -07:00
|
|
|
|
2020-05-10 19:41:55 -07:00
|
|
|
export async function createPollAs (username, content, options, multiple, spoilerText) {
|
|
|
|
return postStatus(instanceName, users[username].accessToken, content, null, null, false, spoilerText, 'public', {
|
2019-05-27 12:31:35 -07:00
|
|
|
options,
|
|
|
|
multiple,
|
|
|
|
expires_in: POLL_EXPIRY_DEFAULT
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
export async function voteOnPollAs (username, pollId, choices) {
|
|
|
|
return voteOnPoll(instanceName, users[username].accessToken, pollId, choices.map(_ => _.toString()))
|
|
|
|
}
|
2020-08-25 22:16:14 -07:00
|
|
|
|
|
|
|
export async function createListAs (username, title) {
|
|
|
|
return createList(instanceName, users[username].accessToken, title)
|
|
|
|
}
|
|
|
|
|
|
|
|
export async function getListsAs (username) {
|
|
|
|
return getLists(instanceName, users[username].accessToken)
|
|
|
|
}
|
2021-03-13 17:31:17 -08:00
|
|
|
|
|
|
|
export async function deleteAllWordFiltersAs (username) {
|
|
|
|
const accessToken = users[username].accessToken
|
|
|
|
const filters = await getFilters(instanceName, accessToken)
|
|
|
|
await Promise.all(filters.map(({ id }) => deleteFilter(instanceName, accessToken, id)))
|
|
|
|
}
|
|
|
|
|
|
|
|
export async function createWordFilterAs (username, filter) {
|
|
|
|
const accessToken = users[username].accessToken
|
|
|
|
await createFilter(instanceName, accessToken, filter)
|
|
|
|
}
|