You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
matrix-chat/src/matrix.js

70 lines
1.8 KiB
JavaScript

import matrix from 'matrix-js-sdk';
import Vue from 'vue'
import main from '@/main.js';
const matrix_cli = matrix.createClient("https://adb.sh");
let session = {
user: "",
password: "",
access_token: "",
rooms: [],
current_room: "open chat"
};
let rooms = [];
export default {
data(){
return {
session: session,
rooms: rooms
}
},
methods: {
login(){
matrix_cli.login("m.login.password", {
user: session.user,
password: session.password,
initial_device_display_name: "matrix chat",
}).then((response) => {
console.log(`access token => ${response.access_token}`);
session = {access_token: response.access_token}
if (response.error){
main.methods.error(response.error)
console.log(`login error => ${response.error}`)
}
main.methods.router({path: "rooms/"})
matrix_cli.startClient();
matrix_cli.once('sync', function (state){
console.log(state)
})
});
/*let i=0;
let checkRooms = setInterval(()=>{
rooms = matrix_cli.getRooms()
console.log("asdasd"+rooms.length)
if (rooms.length !== 0 || i>10) clearInterval(checkRooms)
i++;
},500)*/
},
getRooms(){
rooms.push(matrix_cli.getRooms())
return rooms
}
}
}
new Vue({
el: '#roomList',
data() {
return {
rooms: [],
}
}
})
matrix_cli.on("event", function(event){
console.log(event.getType());
console.log(event);
session.rooms = matrix_cli.getRooms()
console.log(session.rooms)
})