From 34f2d56ba7b8be0c1fa36e2c232145def825d407 Mon Sep 17 00:00:00 2001 From: Ana Alexandru-Gabriel Date: Fri, 3 Apr 2026 15:56:17 +0300 Subject: [PATCH 1/2] (copilot) revamped app.js It revamped the whole fetch except bullshit and it works as it did before (on my machine). I mean that's kinda cool. --- src/app.js | 757 +++++++++++++++++++++++++---------------------------- 1 file changed, 361 insertions(+), 396 deletions(-) diff --git a/src/app.js b/src/app.js index b4df580..68415ca 100644 --- a/src/app.js +++ b/src/app.js @@ -1,78 +1,10 @@ import { invoke } from '@tauri-apps/api/core'; import { wsConnection } from './websocket.js'; -import { reloadApp } from './AppWrapper.vue' +import { reloadApp } from './AppWrapper.vue'; export default { name: "App", data() { - let token = null; - - invoke('get_local_token') - .then((res) => { - token = JSON.parse(res)['token']; - this.username = JSON.parse(res)['username']; - invoke('getservers', { token: token, username: this.username }) - .then((res) => { - let servers = JSON.parse(res); - this.token = servers.token; - token = servers.token; - this.initWebsocket(token); - - invoke('write_credentials', { creds: JSON.stringify({ 'username': this.username, 'token': this.token }) }); - - for (let i = 0; i < servers['s_list'].length; i++) { - invoke('get_server_info', { server_id: servers['s_list'][i] }) - .then((si) => { - let serverInfo = JSON.parse(si); - this.userServers.push({ 'serverID': servers['s_list'][i], 'name': serverInfo['name'], 'desc': serverInfo['desc'], 'img_url': serverInfo['img_url'] }); - }) - .catch((err) => { - console.log(err); - }) - this.appState.push({ 'serverID': servers['s_list'][i], 'storedChannels': [], 'serverUsers': [] }); - invoke('getchannels', { host_url: 'https://api.onlinedi.vision/servers', token: token, server: servers['s_list'][i], username: this.username }) - .then((res) => { - let channels = JSON.parse(res)['c_list']; - for (let j = 0; j < channels.length; j++) { - invoke('getmessages', { host_url: 'https://api.onlinedi.vision/servers', token: token, server: servers['s_list'][i], channel: channels[j]['channel_name'], username: this.username }) - .then((res) => { - this.appState[this.appState.findIndex(obj => obj.serverID == servers['s_list'][i])].storedChannels.push({ 'channelTag': channels[j]['channel_name'], 'messages': JSON.parse(res)['m_list'] }); - this.storedChannels.push({ 'serverID': servers['s_list'][i], 'channelTag': channels[j]['channel_name'], 'messages': JSON.parse(res)['m_list'] }) - }) - .catch(() => { - this.appState[this.appState.findIndex(obj => obj.serverID == servers['s_list'][i])].storedChannels.push({ 'channelTag': channels[j]['channel_name'], 'messages': [] }); - this.storedChannels.push({ 'serverID': servers['s_list'][i], 'channelTag': channels[j]['channel_name'], 'messages': [] }) - }); - - } - invoke('get_server_users', { host_url: 'https://api.onlinedi.vision/servers', token: token, server: servers['s_list'][i], username: this.username }) - .then((res) => { - let users = JSON.parse(res)['u_list']; - for (let user_iter = 0; user_iter < users.length; user_iter++) { - this.appState[this.appState.findIndex(obj => obj.serverID == servers['s_list'][i])].serverUsers.push(users[user_iter]); - } - this.done = true; - }).catch((err) => { - console.log(err); - }); - }) - .catch((err) => { - console.log(err); - }); - } - this.getOwnPfp(); - }) - .catch((err) => { - console.log(err); - this.loggedin = false; - }); - this.done = true; - }) - .catch((err) => { - console.log(err) - this.loggedin = false; - }); - return { ws: null, logInSelected: true, @@ -81,43 +13,35 @@ export default { password: "", lemail: "", done: false, - token: token, + token: null, serverID: "1", server: true, lError: false, lErrorText: "", createChannelPopUp: false, userServers: [{ - 'serverID': '1', - 'name': 'Welcome', - 'img_url': '', - 'desc': 'Welcome!' + serverID: '1', + name: 'Welcome', + img_url: '', + desc: 'Welcome!' }], appState: [{ - 'serverID': '1', - 'storedChannels': [{ - 'channelTag': 'welcome', - 'messages': [{ - 'username': 'System', - 'm_content': 'Welcome to Division Online! Please feel at home! <3' - }, - { - 'username': 'System', - 'm_content': 'https://www.w3schools.com/html/mov_bbb.mp4' - } + serverID: '1', + storedChannels: [{ + channelTag: 'welcome', + messages: [ + { username: 'System', m_content: 'Welcome to Division Online! Please feel at home! <3' }, + { username: 'System', m_content: 'https://www.w3schools.com/html/mov_bbb.mp4' } ] - } - ] + }] }], username: 'noone', storedChannels: [{ - 'serverID': '1313', - 'channelTag': 'info', - } - ], - + serverID: '1313', + channelTag: 'info', + }], svusers: [ - { 'img': 'https://media1.tenor.com/m/viIU4ICp1N8AAAAd/dance.gif', 'username': 'ana' } + { img: 'https://media1.tenor.com/m/viIU4ICp1N8AAAAd/dance.gif', username: 'ana' } ], message: '', textChannel: 'welcome', @@ -131,198 +55,248 @@ export default { showSIDvar: false, selectedFile: null, selectedFileUrl: '', - settingsOpen: false, - myPfp: 'https://media1.tenor.com/m/viIU4ICp1N8AAAAd/dance.gif' + settingsOpen: false, + myPfp: 'https://media1.tenor.com/m/viIU4ICp1N8AAAAd/dance.gif' }; }, + async created() { + await this.initializeApp(); + }, methods: { - send_message(message) { - if(message.length > 1200)return; - - const fileData = new FormData(); + async initializeApp() { + try { + const res = await invoke('get_local_token'); + const { token, username } = JSON.parse(res); + this.username = username; + await this.fetchServers(token, username); + this.getOwnPfp(); + this.done = true; + } catch (err) { + console.log(err); + this.loggedin = false; + } + }, + async fetchServers(token, username) { + try { + const res = await invoke('getservers', { token, username }); + const servers = JSON.parse(res); + this.token = servers.token; + await invoke('write_credentials', { creds: JSON.stringify({ username: this.username, token: this.token }) }); + this.initWebsocket(this.token); + + for (const serverID of servers.s_list) { + await this.addServerInfo(serverID); + await this.fetchChannelsAndUsers(serverID, token, username); + } + } catch (err) { + console.log(err); + this.loggedin = false; + } + }, + async addServerInfo(serverID) { + try { + const si = await invoke('get_server_info', { server_id: serverID }); + const serverInfo = JSON.parse(si); + this.userServers.push({ + serverID, + name: serverInfo.name, + desc: serverInfo.desc, + img_url: serverInfo.img_url + }); + this.appState.push({ serverID, storedChannels: [], serverUsers: [] }); + } catch (err) { + console.log(err); + } + }, + async fetchChannelsAndUsers(serverID, token, username) { + try { + const res = await invoke('getchannels', { + host_url: 'https://api.onlinedi.vision/servers', + token, + server: serverID, + username + }); + const channels = JSON.parse(res).c_list; + for (const channel of channels) { + await this.fetchMessages(serverID, channel.channel_name, token, username); + } + await this.fetchServerUsers(serverID, token, username); + } catch (err) { + console.log(err); + } + }, + async fetchMessages(serverID, channelName, token, username) { + try { + const res = await invoke('getmessages', { + host_url: 'https://api.onlinedi.vision/servers', + token, + server: serverID, + channel: channelName, + username + }); + const messages = JSON.parse(res).m_list; + this.addChannelMessages(serverID, channelName, messages); + } catch { + this.addChannelMessages(serverID, channelName, []); + } + }, + addChannelMessages(serverID, channelName, messages) { + const stateIdx = this.appState.findIndex(obj => obj.serverID == serverID); + if (stateIdx !== -1) { + this.appState[stateIdx].storedChannels.push({ channelTag: channelName, messages }); + } + this.storedChannels.push({ serverID, channelTag: channelName, messages }); + }, + async fetchServerUsers(serverID, token, username) { + try { + const res = await invoke('get_server_users', { + host_url: 'https://api.onlinedi.vision/servers', + token, + server: serverID, + username + }); + const users = JSON.parse(res).u_list; + const stateIdx = this.appState.findIndex(obj => obj.serverID == serverID); + if (stateIdx !== -1) { + this.appState[stateIdx].serverUsers = users; + } + } catch (err) { + console.log(err); + } + }, + async send_message(message) { + if (message.length > 1200) return; const fileInput = document.getElementById("file-upload"); const file = this.selectedFile || (fileInput?.files?.[0] ?? null); if (file) { - - fileData.append("file", file); - - fetch("https://onlinedi.vision/ash/upload", { + await this.uploadFileAndSendMessage(file, message); + return; + } + await this.sendTextMessage(message); + }, + async uploadFileAndSendMessage(file, message) { + const fileData = new FormData(); + fileData.append("file", file); + try { + const response = await fetch("https://onlinedi.vision/ash/upload", { method: 'POST', body: fileData - }).then(response => { - response.text().then(mess => { - const to_append = "https://onlinedi.vision" + mess.split(/\r?\n/).pop(); - message += to_append; - - if (this.serverID === '1') { message = ''; this.message; } - if (message === '') return; - this.message = ''; - - if(this.ws !== null ) { - this.ws.send(this.serverID + ':' + this.textChannel + ':' + this.username +':' + message); - } - invoke('sendmessage', { host_url: 'https://api.onlinedi.vision/servers', token: this.token, channel: this.textChannel, server: this.serverID, m_content: message, username: this.username }) - .then(() => { - this.message = ''; - this.clearSelectedFile(); - }).catch((err) => { - this.storedChannels[this.storedChannels.findIndex(obj => obj.channelTag === this.textChannel)]['messages'].unshift({ "username": this.username, "m_content": err }); - }); - this.message = this.clearSelectedFile(); - - }); - }) - .catch(error => { - console.error(error); - }); - return; + }); + const mess = await response.text(); + const to_append = "https://onlinedi.vision" + mess.split(/\r?\n/).pop(); + message += to_append; + await this.sendTextMessage(message); + this.clearSelectedFile(); + } catch (error) { + console.error(error); } - - if (this.serverID === '1') { message = ''; this.message; } + }, + async sendTextMessage(message) { + if (this.serverID === '1') message = ''; if (message === '') return; this.message = ''; - - if(this.ws !== null ) { - this.ws.send(this.serverID + ':' + this.textChannel + ':' + this.username +':' + message); + if (this.ws !== null) { + this.ws.send(`${this.serverID}:${this.textChannel}:${this.username}:${message}`); } - invoke('sendmessage', { host_url: 'https://api.onlinedi.vision/servers', token: this.token, channel: this.textChannel, server: this.serverID, m_content: message, username: this.username }) - .then(() => { + try { + await invoke('sendmessage', { + host_url: 'https://api.onlinedi.vision/servers', + token: this.token, + channel: this.textChannel, + server: this.serverID, + m_content: message, + username: this.username + }); this.message = ''; - }).catch((err) => { - this.storedChannels[this.storedChannels.findIndex(obj => obj.channelTag === this.textChannel)]['messages'].unshift({ "username": this.username, "m_content": err }); - }); - this.message = ''; + } catch (err) { + const idx = this.storedChannels.findIndex(obj => obj.channelTag === this.textChannel); + if (idx !== -1) { + this.storedChannels[idx].messages.unshift({ username: this.username, m_content: err }); + } + } }, - getUserServers() { - invoke('getservers', { token: this.token, username: this.username }) - .then((res) => { - let servers = JSON.parse(res); - this.token = servers['token']; - - - invoke('write_credentials', { creds: JSON.stringify({ 'username': this.username, 'token': this.token }) }) - .then((res) => console.log(res)) - .catch((err) => console.log(err)); - - for (let i = 0; i < servers['s_list'].length; i++) { - invoke('get_server_info', { server_id: servers['s_list'][i] }) - .then((si) => { - let sinfo = JSON.parse(si); - this.userServers.push({ 'serverID': servers['s_list'][i], 'name': sinfo['name'], 'desc': sinfo['desc'], 'img_url': sinfo['img_url'] }); - }) - .catch((err) => { - console.log(err); - }) - this.appState.push({ 'serverID': servers['s_list'][i], 'storedChannels': [] }); - invoke('getchannels', { host_url: 'https://api.onlinedi.vision/servers', token: this.token, server: servers['s_list'][i], username: this.username }) - .then((res) => { - let channels = JSON.parse(res)['c_list']; - for (let j = 0; j < channels.length; j++) { - invoke('getmessages', { host_url: 'https://api.onlinedi.vision/servers', token: this.token, server: servers['s_list'][i], channel: channels[j]['channel_name'], username: this.username }) - .then((res) => { - - this.appState[this.appState.findIndex(obj => obj.serverID == servers['s_list'][i])].storedChannels.push({ 'channelTag': channels[j]['channel_name'], 'messages': JSON.parse(res)['m_list'] }); - this.storedChannels.push({ 'serverID': servers['s_list'][i], 'channelTag': channels[j]['channel_name'], 'messages': JSON.parse(res)['m_list'] }) - }) - .catch((err) => { - console.log(err); - }); - - } - this.done = true; - }) - .catch((err) => { - console.log(err); - }); - } - }) - .catch((err) => { - console.log(err); - }); + async getUserServers() { + await this.fetchServers(this.token, this.username); this.done = true; - - } - , - logIn(user, password) { + }, + async logIn(user, password) { this.lusername = user; this.password = password; - invoke('login', { username: this.lusername, password: this.password }) - .then((res) => { - - let tokenJS = JSON.parse(res); - this.token = tokenJS['token']; - - if (this.token === "") { - this.lError = true; - this.lErrorText = "Authentification Failed"; - return; - } - - this.username = this.lusername; - this.password = ""; - this.loggedin = true; - - invoke('write_credentials', { creds: JSON.stringify({ 'username': this.username, 'token': this.token }) }); - setTimeout(reloadApp, 500); - }) - .catch((err) => console.log(err)); + try { + const res = await invoke('login', { username: this.lusername, password: this.password }); + const tokenJS = JSON.parse(res); + this.token = tokenJS.token; + if (!this.token) { + this.lError = true; + this.lErrorText = "Authentification Failed"; + return; + } + this.username = this.lusername; + this.password = ""; + this.loggedin = true; + await invoke('write_credentials', { creds: JSON.stringify({ username: this.username, token: this.token }) }); + setTimeout(reloadApp, 500); + } catch (err) { + console.log(err); + } }, - signUp(user, password, email) { + async signUp(user, password, email) { this.lusername = user; this.password = password; this.lemail = email; if (this.password.length < 8) { this.lError = true; this.lErrorText = "Password is too short"; - return + return; + } + try { + const res = await invoke('signup', { username: this.lusername, password: this.password, email: this.lemail }); + const tokenJS = JSON.parse(res); + this.token = tokenJS.token; + if (!this.token) { + this.lError = true; + this.lErrorText = `User @${this.lusername} exists.`; + return; + } + this.username = this.lusername; + this.password = ""; + this.loggedin = true; + await invoke('write_credentials', { creds: JSON.stringify({ username: this.username, token: this.token }) }); + await this.getUserServers(); + } catch (err) { + console.log(err); } - invoke('signup', { username: this.lusername, password: this.password, email: this.lemail }) - .then((res) => { - let tokenJS = JSON.parse(res); - this.token = tokenJS['token']; - - if (this.token === "") { - this.lError = true; - this.lErrorText = "User @" + this.lusername + " exists."; - return; - } - - this.username = this.lusername; - this.password = ""; - this.loggedin = true; - - invoke('write_credentials', { creds: JSON.stringify({ 'username': this.username, 'token': this.token }) }); - this.getUserServers(); - }) - .catch((err) => console.log(err)); }, changeLogIn() { this.logInSelected = !this.logInSelected; }, - openSettings() { - this.settingsOpen = true; - }, - closeSettings() { - this.settingsOpen = false; - }, - get_messages(channel, server, token) { - invoke('getmessages', { host_url: 'https://api.onlinedi.vision/servers', token: token, server: server, channel: channel }) - .then((res) => { - console.log(res); - }) - .catch((err) => { - console.log(err); + openSettings() { + this.settingsOpen = true; + }, + closeSettings() { + this.settingsOpen = false; + }, + async get_messages(channel, server, token) { + try { + const res = await invoke('getmessages', { + host_url: 'https://api.onlinedi.vision/servers', + token, + server, + channel }); + console.log(res); + } catch (err) { + console.log(err); + } }, change_channel(newChan) { this.textChannel = newChan; }, get_date(timestamp) { - let date = new Date(Number(timestamp)); - let month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - - return month[Number(date.getMonth())] + ' ' + date.getDate() + ' ' + date.getFullYear() + ' ' + date.getHours() + ':' + date.getMinutes().toString().padStart(2, '0'); + const date = new Date(Number(timestamp)); + const month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; + return `${month[date.getMonth()]} ${date.getDate()} ${date.getFullYear()} ${date.getHours()}:${date.getMinutes().toString().padStart(2, '0')}`; }, create_channel() { this.createChannelPopUp = !this.createChannelPopUp; @@ -345,110 +319,98 @@ export default { }, change_server(sv) { this.serverID = sv; - this.textChannel = this.appState[this.appState.findIndex(obj => obj.serverID == this.serverID)].storedChannels[0].channelTag; - }, - createChannel() { - if(this.nchn.length > 15) return; - invoke('create_channel', { host_url: 'https://api.onlinedi.vision/servers', "username": this.username, "server_id": this.serverID, "token": this.token, "channel_name": this.nchn }) - .then((res) => { - this.token = JSON.parse(res)['token']; - this.appState[this.appState.findIndex(obj => obj.serverID === this.serverID)].storedChannels.push({ 'channelTag': this.nchn, 'messages': [] }); - - invoke('write_credentials', { creds: JSON.stringify({ 'username': this.username, 'token': this.token }) }) - .then((res) => console.log(res)) - .catch((err) => console.log(err)); - this.createChannelPopUp = !this.createChannelPopUp; - }) - .catch((err) => { - console.log(err); + const state = this.appState.find(obj => obj.serverID == this.serverID); + if (state && state.storedChannels.length > 0) { + this.textChannel = state.storedChannels[0].channelTag; + } + }, + async createChannel() { + if (this.nchn.length > 15) return; + try { + const res = await invoke('create_channel', { + host_url: 'https://api.onlinedi.vision/servers', + username: this.username, + server_id: this.serverID, + token: this.token, + channel_name: this.nchn }); + this.token = JSON.parse(res).token; + const stateIdx = this.appState.findIndex(obj => obj.serverID === this.serverID); + if (stateIdx !== -1) { + this.appState[stateIdx].storedChannels.push({ channelTag: this.nchn, messages: [] }); + } + await invoke('write_credentials', { creds: JSON.stringify({ username: this.username, token: this.token }) }); + this.createChannelPopUp = !this.createChannelPopUp; + } catch (err) { + console.log(err); + } }, - deleteChannel(sid, channelName) { - invoke("delete_channel", { host_url: 'https://api.onlinedi.vision/servers', "username": this.username, "server_id": sid, "token": this.token, "channel_name": channelName }) - .then((res) => { - if(res == "Channel deleted successfully") { - this.appState[this.appState.findIndex(obj => obj.serverID === sid)].storedChannels = - this.appState[this.appState.findIndex(obj => obj.serverID === sid)].storedChannels.filter(function(ch) {return ch.channelTag !== channelName;}); - } - }) - .catch((err) => { - console.log(err); + async deleteChannel(sid, channelName) { + try { + const res = await invoke("delete_channel", { + host_url: 'https://api.onlinedi.vision/servers', + username: this.username, + server_id: sid, + token: this.token, + channel_name: channelName }); - }, - createSeverForReal() { - invoke("create_server", { "img_url": this.newImgUrl, "desc": this.newShDesc, "name": this.newSvName, "username": this.username, "token": this.token }) - .then((res) => { - this.token = JSON.parse(res)['token']; - let new_sid = JSON.parse(res)['sid']; - - if(this.ws !== null ) { - this.ws.send("UPDATE:"+this.token+":"+new_sid); + if (res == "Channel deleted successfully") { + const stateIdx = this.appState.findIndex(obj => obj.serverID === sid); + if (stateIdx !== -1) { + this.appState[stateIdx].storedChannels = this.appState[stateIdx].storedChannels.filter(ch => ch.channelTag !== channelName); } - invoke('get_server_info', { server_id: new_sid }) - .then((si) => { - let sinfo = JSON.parse(si); - this.userServers.push({ 'serverID': new_sid, 'name': sinfo['name'], 'desc': sinfo['desc'], 'img_url': sinfo['img_url'] }); - }) - .catch((err) => { - console.log(err); - }) - - this.appState.push({ 'serverID': new_sid, 'storedChannels': [], 'serverUsers': [] }); - invoke('getchannels', { host_url: 'https://api.onlinedi.vision/servers', token: this.token, server: new_sid, username: this.username }) - .then((res) => { - let channels = JSON.parse(res)['c_list']; - for (let j = 0; j < channels.length; j++) { - this.appState[this.appState.findIndex(obj => obj.serverID == new_sid)].storedChannels.push({ 'channelTag': channels[j]['channel_name'], 'messages': []}); - this.storedChannels.push({ 'serverID': new_sid, 'channelTag': channels[j]['channel_name'], 'messages': []}) - } - - invoke('get_server_users', { host_url: 'https://api.onlinedi.vision/servers', token: this.token, server: new_sid, username: this.username }) - .then((res) => { - let users = JSON.parse(res)['u_list']; - for (let user_iter = 0; user_iter < users.length; user_iter++) { - this.appState[this.appState.findIndex(obj => obj.serverID == new_sid)].serverUsers.push(users[user_iter]); - } - }).catch((err) => { - console.log(err); - }); - }) - .catch((err) => console.log(err)); - - invoke('write_credentials', { creds: JSON.stringify({ 'username': this.username, 'token': this.token }) }) - .then((res) => console.log(res)) - .catch((err) => console.log(err)); - this.createServerPopUp = !this.createServerPopUp; - }) - .catch((err) => { - console.log(err); + } + } catch (err) { + console.log(err); + } + }, + async createSeverForReal() { + try { + const res = await invoke("create_server", { + img_url: this.newImgUrl, + desc: this.newShDesc, + name: this.newSvName, + username: this.username, + token: this.token }); + const { token, sid } = JSON.parse(res); + this.token = token; + if (this.ws !== null) { + this.ws.send(`UPDATE:${this.token}:${sid}`); + } + await this.addServerInfo(sid); + await this.fetchChannelsAndUsers(sid, this.token, this.username); + await invoke('write_credentials', { creds: JSON.stringify({ username: this.username, token: this.token }) }); + this.createServerPopUp = !this.createServerPopUp; + } catch (err) { + console.log(err); + } }, showSID() { this.showSIDvar = !this.showSIDvar; }, - joinServer() { - invoke('join_server', { host_url: 'https://api.onlinedi.vision/servers', "username": this.username, "token": this.token, "server_id": this.joinserverID }) - .then((res) => { - this.token = JSON.parse(res)['token']; - invoke('write_credentials', { creds: JSON.stringify({ 'username': this.username, 'token': this.token }) }) - .then((res) => console.log(res)) - .catch((err) => console.log(err)); - this.createServerPopUp = !this.createServerPopUp; - - }) - .catch((err) => { - console.log(err); - }) - }, - logOut() { - this.loggedin=false; - this.token=''; - this.username=''; - invoke('write_credentials', {creds: ''}).catch((err) => { - console.log(err); - }); - this.closeSettings(); - }, + async joinServer() { + try { + const res = await invoke('join_server', { + host_url: 'https://api.onlinedi.vision/servers', + username: this.username, + token: this.token, + server_id: this.joinserverID + }); + this.token = JSON.parse(res).token; + await invoke('write_credentials', { creds: JSON.stringify({ username: this.username, token: this.token }) }); + this.createServerPopUp = !this.createServerPopUp; + } catch (err) { + console.log(err); + } + }, + logOut() { + this.loggedin = false; + this.token = ''; + this.username = ''; + invoke('write_credentials', { creds: '' }).catch(err => console.log(err)); + this.closeSettings(); + }, onFileChange(e) { const files = e?.target?.files || []; if (this.selectedFileUrl) { @@ -472,58 +434,61 @@ export default { const input = document.getElementById('file-upload'); if (input) input.value = ''; }, - refreshToken(token) { - this.token = token; - invoke('write_credentials', { creds: JSON.stringify({ 'username': this.username, 'token': this.token }) }) - .then((res) => console.log(res)) - .catch((err) => console.log(err)); - }, - getOwnPfp() { - invoke('get_profile_pic', { 'username': this.username, 'token': this.token}) - .then((res) => { - this.refreshToken(JSON.parse(res)['token']); - let url = JSON.parse(res)['img_url']; - this.myPfp = url ? url : this.myPfp; - }).catch((err) => { - console.log(err); - }) - }, - setOwnPfp(url) { - invoke('set_profile_pic', { 'username': this.username, 'token': this.token, 'img_url': url}) - .then((res) => { - this.refreshToken(JSON.parse(res)['token']); - let url = JSON.parse(res)['img_url']; - if(!url) console.log("WARN: problem encountered while setting pfp"); - this.myPfp = url ? url : this.myPfp; - }).catch((err) => { - console.log(err); - }) - }, - initWebsocket(){ - this.ws = new wsConnection(this.username); - this.ws.addEventListener("reqHandshake", () => { - this.ws.handshake(this.token).then( (res) => { this.token = res; this.ws.startReceive(); } ); - }); - this.ws.connectWebsocket(); - this.ws.addEventListener("message", this.receiveMessage); - - }, - receiveMessage(event){ - let splitm = event.detail.split(':'); - let [sid, channel, username, ...message] = splitm; - message = message.join(':'); - - this.appState[ - this.appState.findIndex(obj => obj.serverID == sid) - ]['storedChannels'][ - this.appState[ - this.appState.findIndex(obj => obj.serverID == sid) - ]['storedChannels'].findIndex(obj => obj.channelTag === channel) - ]['messages'].unshift({ - 'username': username, - 'm_content': message, - 'datetime': Date.now() + async refreshToken(token) { + this.token = token; + try { + await invoke('write_credentials', { creds: JSON.stringify({ username: this.username, token: this.token }) }); + } catch (err) { + console.log(err); + } + }, + async getOwnPfp() { + try { + const res = await invoke('get_profile_pic', { username: this.username, token: this.token }); + await this.refreshToken(JSON.parse(res).token); + const url = JSON.parse(res).img_url; + this.myPfp = url ? url : this.myPfp; + } catch (err) { + console.log(err); + } + }, + async setOwnPfp(url) { + try { + const res = await invoke('set_profile_pic', { username: this.username, token: this.token, img_url: url }); + await this.refreshToken(JSON.parse(res).token); + const newUrl = JSON.parse(res).img_url; + if (!newUrl) console.log("WARN: problem encountered while setting pfp"); + this.myPfp = newUrl ? newUrl : this.myPfp; + } catch (err) { + console.log(err); + } + }, + initWebsocket() { + this.ws = new wsConnection(this.username); + this.ws.addEventListener("reqHandshake", () => { + this.ws.handshake(this.token).then(res => { + this.token = res; + this.ws.startReceive(); + }); }); + this.ws.connectWebsocket(); + this.ws.addEventListener("message", this.receiveMessage); + }, + receiveMessage(event) { + const splitm = event.detail.split(':'); + const [sid, channel, username, ...messageArr] = splitm; + const message = messageArr.join(':'); + const stateIdx = this.appState.findIndex(obj => obj.serverID == sid); + if (stateIdx !== -1) { + const channelIdx = this.appState[stateIdx].storedChannels.findIndex(obj => obj.channelTag === channel); + if (channelIdx !== -1) { + this.appState[stateIdx].storedChannels[channelIdx].messages.unshift({ + username, + m_content: message, + datetime: Date.now() + }); + } + } + } } - }, }; From 5f2cde7d04ad6f161fd9a97d28d58dc1110c38b5 Mon Sep 17 00:00:00 2001 From: Ana Alexandru-Gabriel Date: Wed, 24 Jun 2026 16:05:46 +0300 Subject: [PATCH 2/2] fix naming of "createServerForReal" function --- src/App.vue | 2 +- src/app.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/App.vue b/src/App.vue index 8c7ec08..b8d0efc 100644 --- a/src/App.vue +++ b/src/App.vue @@ -71,7 +71,7 @@ - +

Join Server

diff --git a/src/app.js b/src/app.js index 68415ca..071cf2c 100644 --- a/src/app.js +++ b/src/app.js @@ -364,7 +364,7 @@ export default { console.log(err); } }, - async createSeverForReal() { + async createSever() { try { const res = await invoke("create_server", { img_url: this.newImgUrl,