seed initial setup

This commit is contained in:
Cadence Ember 2023-05-10 23:17:37 +12:00
parent 22dde9faf7
commit 38d7db5071
4 changed files with 57 additions and 2 deletions

View file

@ -91,6 +91,18 @@ async function sendEvent(roomID, type, content, mxid) {
return root.event_id
}
async function profileSetDisplayname(mxid, displayname) {
await mreq.mreq("PUT", path(`/client/v3/profile/${mxid}/displayname`, mxid), {
displayname
})
}
async function profileSetAvatarUrl(mxid, avatar_url) {
await mreq.mreq("PUT", path(`/client/v3/profile/${mxid}/avatar_url`, mxid), {
avatar_url
})
}
module.exports.path = path
module.exports.register = register
module.exports.createRoom = createRoom
@ -99,3 +111,5 @@ module.exports.inviteToRoom = inviteToRoom
module.exports.getAllState = getAllState
module.exports.sendState = sendState
module.exports.sendEvent = sendEvent
module.exports.profileSetDisplayname = profileSetDisplayname
module.exports.profileSetAvatarUrl = profileSetAvatarUrl

View file

@ -17,7 +17,14 @@ const inflight = new Map()
* @param {string} path
*/
async function uploadDiscordFileToMxc(path) {
const url = DISCORD_IMAGES_BASE + path
let url
if (path.startsWith("http")) {
// TODO: this is cheating to make seed.js easier. due a refactor or a name change since it's not soley for discord?
// possibly could be good to save non-discord external URLs under a user-specified key rather than simply using the url?
url = path
} else {
url = DISCORD_IMAGES_BASE + path
}
// Are we uploading this file RIGHT NOW? Return the same inflight promise with the same resolution
let existing = inflight.get(url)

35
seed.js Normal file
View file

@ -0,0 +1,35 @@
// @ts-check
const assert = require("assert")
const sqlite = require("better-sqlite3")
const HeatSync = require("heatsync")
const config = require("./config")
const passthrough = require("./passthrough")
const db = new sqlite("db/ooye.db")
const sync = new HeatSync({watchFS: false})
Object.assign(passthrough, { config, sync, db })
const api = require("./matrix/api")
const file = require("./matrix/file")
const reg = require("./matrix/read-registration")
;(async () => {
// ensure registration is correctly set...
// test connection to homeserver...
// upload initial images...
const avatarUrl = await file.uploadDiscordFileToMxc("https://cadence.moe/friends/out_of_your_element_rev_2.jpg")
// set profile data on homeserver...
await api.profileSetDisplayname(`@${reg.sender_localpart}:cadence.moe`, "Out Of Your Element")
await api.profileSetAvatarUrl(`@${reg.sender_localpart}:cadence.moe`, avatarUrl)
// database ddl...
// add initial rows to database, like adding the bot to sim...
})()

View file

@ -7,7 +7,6 @@ const config = require("../config")
const passthrough = require("../passthrough")
const db = new sqlite("db/ooye.db")
// @ts-ignore
const sync = new HeatSync({watchFS: false})
Object.assign(passthrough, { config, sync, db })