WIP: feature: threads'n'forums #74

Draft
Guzio wants to merge 109 commits from Guzio/out-of-your-element:mergable-fr-fr into main
Showing only changes of commit 88b25e0482 - Show all commits

View file

@ -4,37 +4,14 @@
* Misc. utils for transforming various Matrix events (eg. those sent in Forum-bridged channels; those sent) so that they're usable as threads, and for creating said threads. * Misc. utils for transforming various Matrix events (eg. those sent in Forum-bridged channels; those sent) so that they're usable as threads, and for creating said threads.
*/ */
const util = require("util")
const Ty = require("../../types") const Ty = require("../../types")
const {discord, db, sync, as, select, from} = require("../../passthrough") const {discord, sync, select, from} = require("../../passthrough")
const {tag} = require("@cloudrac3r/html-template-tag")
const {Semaphore} = require("@chriscdn/promise-semaphore")
const assert = require("assert").strict
const DiscordTypes = require("discord-api-types/v10") const DiscordTypes = require("discord-api-types/v10")
/** @type {import("../actions/send-event")} */
const sendEvent = sync.require("../actions/send-event")
/** @type {import("../actions/add-reaction")} */
const addReaction = sync.require("../actions/add-reaction")
/** @type {import("../actions/redact")} */
const redact = sync.require("../actions/redact")
/** @type {import("../actions/update-pins")}) */
const updatePins = sync.require("../actions/update-pins")
/** @type {import("../actions/vote")}) */
const vote = sync.require("../actions/vote")
/** @type {import("../../matrix/matrix-command-handler")} */
const matrixCommandHandler = sync.require("../../matrix/matrix-command-handler")
/** @type {import("../../matrix/utils")} */
const utils = sync.require("../../matrix/utils")
/** @type {import("../../matrix/api")}) */ /** @type {import("../../matrix/api")}) */
const api = sync.require("../../matrix/api") const api = sync.require("../../matrix/api")
/** @type {import("../../d2m/actions/create-room")} */ /** @type {import("../../d2m/actions/create-room")} */
const createRoom = sync.require("../../d2m/actions/create-room") const createRoom = sync.require("../../d2m/actions/create-room")
/** @type {import("../../matrix/room-upgrade")} */
const roomUpgrade = require("../../matrix/room-upgrade")
/** @type {import("../../d2m/actions/retrigger")} */
const retrigger = sync.require("../../d2m/actions/retrigger")
const {reg} = require("../../matrix/read-registration")
/** /**
* @param {Ty.Event.Outer_M_Room_Message | Ty.Event.Outer_M_Room_Message_File} event Used for determining the branching-point and the title; any relation data will be stripped and its room_id will mutate to the target thread-room, if one gets created. * @param {Ty.Event.Outer_M_Room_Message | Ty.Event.Outer_M_Room_Message_File} event Used for determining the branching-point and the title; any relation data will be stripped and its room_id will mutate to the target thread-room, if one gets created.