43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// @ts-check
 | 
						|
 | 
						|
const assert = require("assert").strict
 | 
						|
const fs = require("fs")
 | 
						|
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")
 | 
						|
const utils = require("../m2d/converters/utils")
 | 
						|
 | 
						|
;(async () => {
 | 
						|
	const mxid = `@${reg.sender_localpart}:${reg.ooye.server_name}`
 | 
						|
 | 
						|
	// ensure registration is correctly set...
 | 
						|
	assert(reg.sender_localpart.startsWith(reg.ooye.namespace_prefix))
 | 
						|
	assert(utils.eventSenderIsFromDiscord(mxid))
 | 
						|
 | 
						|
	// ensure homeserver well-known is valid and returns reg.ooye.server_name...
 | 
						|
 | 
						|
	// 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(mxid, "Out Of Your Element")
 | 
						|
	await api.profileSetAvatarUrl(mxid, avatarUrl)
 | 
						|
 | 
						|
	// database ddl...
 | 
						|
	db.exec(fs.readFileSync("db/ooye-schema.sql", "utf8"))
 | 
						|
 | 
						|
	// add initial rows to database, like adding the bot to sim...
 | 
						|
	db.prepare("INSERT INTO sim (discord_id, sim_name, localpart, mxid) VALUES (?, ?, ?, ?)").run("0", reg.sender_localpart.slice(reg.ooye.namespace_prefix.length), reg.sender_localpart, mxid)
 | 
						|
})()
 |