Edits history of script submission #22464 for ' Set room topic (matrix)'

  • bunnative
    One script reply has been approved by the moderators
    Ap­pro­ved
    //native
    
    /**
     * Set the topic of a Matrix room. A topic is a short message detailing what is currently being discussed in the room.
     *
     * HTTP endpoint: https://spec.matrix.org/v1.5/client-server-api/#put_matrixclientv3roomsroomidstateeventtypestatekey
     *
     * State event description: https://spec.matrix.org/v1.5/client-server-api/#mroomtopic
     */
    type Matrix = {
      baseUrl: string;
      token: string;
    };
    export async function main(
      matrix_res: Matrix,
      room_id: string,
      topic: string = "",
    ) {
      const url = `${
        matrix_res.baseUrl
      }/_matrix/client/v3/rooms/${encodeURIComponent(room_id)}/state/m.room.topic/`;
      const resp = await fetch(url, {
        method: "PUT",
        headers: {
          Authorization: `Bearer ${matrix_res.token}`,
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          topic,
        }),
      });
      if (!resp.ok) {
        throw Error(`Failed to set room topic: Error HTTP${resp.status}`);
      }
      return await resp.json();
    }
    

    Submitted by hugo989 6 days ago