Upload files to "/"
This commit is contained in:
parent
ef09edb0cf
commit
cee70c15bc
19
Makefile
Normal file
19
Makefile
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
BIN ?= ./node_modules/.bin/
|
||||||
|
ESLINT ?= ./node_modules/.bin/eslint
|
||||||
|
|
||||||
|
clean:
|
||||||
|
npm run clean
|
||||||
|
|
||||||
|
node_modules: package.json package-lock.json
|
||||||
|
npm i
|
||||||
|
|
||||||
|
serve: node_modules
|
||||||
|
npm start
|
||||||
|
|
||||||
|
dist: node_modules
|
||||||
|
npm dist
|
||||||
|
|
||||||
|
.PHONY: eslint
|
||||||
|
eslint: node_modules
|
||||||
|
$(ESLINT) *.js
|
||||||
|
$(ESLINT) app/**/*.js
|
75
package.json
Normal file
75
package.json
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
{
|
||||||
|
"name": "@rs/desktop",
|
||||||
|
"productName": "RS Desktop",
|
||||||
|
"version": "10.1.5",
|
||||||
|
"description": "RS Desktop is a Jabber/XMPP client based on Converse-desktop",
|
||||||
|
"main": "main.js",
|
||||||
|
"scripts": {
|
||||||
|
"clean": "rm -rf node_modules",
|
||||||
|
"postinstall": "electron-builder install-app-deps",
|
||||||
|
"start": "electron ./main.js",
|
||||||
|
"pack": "electron-builder --dir",
|
||||||
|
"dist": "electron-builder --mac --universal",
|
||||||
|
"dist:win64": "electron-builder --win --x64",
|
||||||
|
"dist:linux64": "electron-builder --linux --x64"
|
||||||
|
},
|
||||||
|
"author": "RandomServer Community",
|
||||||
|
"repository": "https://git.randomserver.top/legacytard-association/converse.rs",
|
||||||
|
"keywords": [
|
||||||
|
"RS",
|
||||||
|
"RandomServer",
|
||||||
|
"RS Desktop",
|
||||||
|
"Jabber",
|
||||||
|
"XMPP",
|
||||||
|
"Client",
|
||||||
|
"converse.js",
|
||||||
|
"Electron",
|
||||||
|
"OMEMO"
|
||||||
|
],
|
||||||
|
"license": "MPL-2.0",
|
||||||
|
"type": "module",
|
||||||
|
"devDependencies": {
|
||||||
|
"electron": "^28.0.0",
|
||||||
|
"electron-builder": "^23.0.0",
|
||||||
|
"electron-packager": "^17.0.0",
|
||||||
|
"electron-rebuild": "^3.2.9",
|
||||||
|
"eslint": "^8.12.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"converse.js": "^10.1.8",
|
||||||
|
"electron-settings": "^4.0.2",
|
||||||
|
"keytar": "^7.9.0",
|
||||||
|
"node-abi": "^4.8.0",
|
||||||
|
"find-bar": "^0.1.3"
|
||||||
|
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"appId": "com.rscommunity.rs-desktop",
|
||||||
|
"productName": "RS Desktop",
|
||||||
|
"extraFiles": [
|
||||||
|
{
|
||||||
|
"from": "resources/images/logo.svg",
|
||||||
|
"to": "converse-desktop.svg"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mac": {
|
||||||
|
"category": "public.app-category.social-networking",
|
||||||
|
"icon": "resources/images/logo.icns",
|
||||||
|
"target": "dmg"
|
||||||
|
},
|
||||||
|
"linux": {
|
||||||
|
"maintainer": "RS Community <xaxaxa@randomserver.top>",
|
||||||
|
"artifactName": "converse_desktop-${version}_${arch}.${ext}",
|
||||||
|
"icon": "resources/images",
|
||||||
|
"target": [
|
||||||
|
"deb",
|
||||||
|
"tar.gz",
|
||||||
|
"appImage"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"win": {
|
||||||
|
"target": "nsis",
|
||||||
|
"icon": "resources/images/logo.ico"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
79
preload.cjs
Normal file
79
preload.cjs
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
const { contextBridge, ipcRenderer } = require('electron');
|
||||||
|
|
||||||
|
const changedHandlers = [];
|
||||||
|
|
||||||
|
ipcRenderer.on('settings', (e, method, setting, newValue) => {
|
||||||
|
if (method === 'changed') {
|
||||||
|
for (const handler of changedHandlers) {
|
||||||
|
try {
|
||||||
|
handler(setting, newValue);
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Error in settings changed handler:', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
contextBridge.exposeInMainWorld('api', {
|
||||||
|
settings: {
|
||||||
|
has(setting) {
|
||||||
|
return ipcRenderer.invoke('settings', 'has', setting);
|
||||||
|
},
|
||||||
|
set(setting, value) {
|
||||||
|
return ipcRenderer.invoke('settings', 'set', setting, value);
|
||||||
|
},
|
||||||
|
unset(setting) {
|
||||||
|
return ipcRenderer.invoke('settings', 'unset', setting);
|
||||||
|
},
|
||||||
|
get(setting) {
|
||||||
|
return ipcRenderer.invoke('settings', 'get', setting);
|
||||||
|
},
|
||||||
|
changed(callback) {
|
||||||
|
if (typeof callback === 'function') {
|
||||||
|
changedHandlers.push(callback);
|
||||||
|
} else {
|
||||||
|
console.warn('api.settings.changed: callback is not a function');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
trayService: {
|
||||||
|
showEnvelope() {
|
||||||
|
return ipcRenderer.invoke('trayService', 'showEnvelope');
|
||||||
|
},
|
||||||
|
hideEnvelope() {
|
||||||
|
return ipcRenderer.invoke('trayService', 'hideEnvelope');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
keytar: {
|
||||||
|
getPassword(service, login) {
|
||||||
|
return ipcRenderer.invoke('keytar', 'getPassword', service, login);
|
||||||
|
},
|
||||||
|
setPassword(service, login, password) {
|
||||||
|
return ipcRenderer.invoke('keytar', 'setPassword', service, login, password);
|
||||||
|
},
|
||||||
|
deletePassword(service, login) {
|
||||||
|
return ipcRenderer.invoke('keytar', 'deletePassword', service, login);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
app: {
|
||||||
|
quit() {
|
||||||
|
ipcRenderer.send('app-quit');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener('wheel', (event) => {
|
||||||
|
if (event.ctrlKey) {
|
||||||
|
ipcRenderer.send(event.deltaY > 0 ? 'increaseZoom' : 'decreaseZoom');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener('keydown', (event) => {
|
||||||
|
if (event.ctrlKey) {
|
||||||
|
if (event.key === '+' || event.key === '=') {
|
||||||
|
ipcRenderer.send('increaseZoom');
|
||||||
|
} else if (event.key === '-') {
|
||||||
|
ipcRenderer.send('decreaseZoom');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
55
setup.js
Normal file
55
setup.js
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
(async () => {
|
||||||
|
await import('./app/converse-plugins/desktop-credentials.js');
|
||||||
|
await import('./app/converse-plugins/desktop-trayicon.js');
|
||||||
|
await import('./app/converse-plugins/desktop-settings.js');
|
||||||
|
|
||||||
|
const { getCredentials } = await import('./app/credentials.js');
|
||||||
|
|
||||||
|
let websocket_url;
|
||||||
|
let bosh_service_url;
|
||||||
|
|
||||||
|
const { connectionManager, login, password } = await getCredentials();
|
||||||
|
const priority = (await api.settings.get('priority')) || 0;
|
||||||
|
const omemo_default = (await api.settings.get('omemo_default')) || false;
|
||||||
|
|
||||||
|
if (connectionManager?.startsWith('ws')) {
|
||||||
|
websocket_url = connectionManager;
|
||||||
|
} else if (connectionManager?.startsWith('http')) {
|
||||||
|
bosh_service_url = connectionManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
converse.plugins.add('converse-debug', {
|
||||||
|
initialize() {
|
||||||
|
const { _converse } = this;
|
||||||
|
window._converse = _converse;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
converse.initialize({
|
||||||
|
assets_path: './node_modules/converse.js/dist/',
|
||||||
|
auto_login: login && password,
|
||||||
|
bosh_service_url,
|
||||||
|
i18n: navigator.language,
|
||||||
|
jid: login,
|
||||||
|
loglevel: 'debug',
|
||||||
|
muc_respect_autojoin: true,
|
||||||
|
muc_show_logs_before_join: true,
|
||||||
|
password,
|
||||||
|
play_sounds: false,
|
||||||
|
priority,
|
||||||
|
prune_messages_above: 250,
|
||||||
|
// theme: 'classic', // there is no need for themes when using RS css.
|
||||||
|
view_mode: 'fullscreen',
|
||||||
|
websocket_url,
|
||||||
|
whitelisted_plugins: [
|
||||||
|
'converse-debug',
|
||||||
|
'converse-desktop-credentials',
|
||||||
|
'converse-desktop-trayicon',
|
||||||
|
'converse-desktop-settings'
|
||||||
|
],
|
||||||
|
omemo_default
|
||||||
|
}).catch(reason => {
|
||||||
|
console.error(reason);
|
||||||
|
api.app.quit();
|
||||||
|
});
|
||||||
|
})();
|
Loading…
x
Reference in New Issue
Block a user