test('can post a message', t=> { t.plan(1) let token = process.env.SLACK_BOT_TOKEN let slack = new Slack({token, useElectronNet:electron.remote.net}) let text = 'test message' // list channels slack.channels.list({}, (err, json)=> { // look for a channel called 'test' let channel = json.channels.filter(c=> c.name === 'test')[0].id let params = {text, channel} // post a message there slack.chat.postMessage(params, (err, data)=> { if (err) { t.fail(err, 'chat.postMessage fails') console.error(err) } else { t.ok(data, 'posted a message') console.log(data) } }) }) })
function generateAppMenuShortcut() { electron.remote.globalShortcut.unregisterAll(); /*electron.remote.globalShortcut.register('CmdOrCtrl+O', function(){openComicDialog()}); electron.remote.globalShortcut.register('CmdOrCtrl+Q', function(){electron.remote.app.quit()}); electron.remote.globalShortcut.register('CmdOrCtrl+0', function(){resetZoom(); generateAppMenu();}); electron.remote.globalShortcut.register('CmdOrCtrl+Shift+0', function(){resetZoom(); generateAppMenu();}); electron.remote.globalShortcut.register('CmdOrCtrl+Plus', function(){zoomIn(); generateAppMenu();}); electron.remote.globalShortcut.register('CmdOrCtrl+=', function(){zoomIn(); generateAppMenu();}); electron.remote.globalShortcut.register('CmdOrCtrl+-', function(){zoomOut(); generateAppMenu();}); electron.remote.globalShortcut.register('CmdOrCtrl+Shift+-', function(){zoomOut(); generateAppMenu();});*/ }
function openComicDialog(folders = false) { if(folders) var properties = ['openDirectory']; else var properties = ['openFile']; var dialog = electron.remote.dialog; dialog.showOpenDialog({properties: properties, filters: [{name: language.global.comics, extensions: (folders) ? ['*'] : compatibleExtensions}]}).then(function (files) { if(files.filePaths && files.filePaths[0]) openComic(files.filePaths[0]); }); }
function onContextMenu(e) { if (menu === null) { menu = inpectElementMenu({x: e.x, y: e.y}, ifInspectable(e.target)); } e.preventDefault(); menu.popup(electron.remote.getCurrentWindow()); }
createDB(path.join(require('electron').remote.app.getPath('userData'), 'dbStream.db').toString()) .then(dbCreated => { db = dbCreated; });
constructor(opts) { // Renderer process has to get `app` module via `remote`, whereas the main process can get it directly // app.getPath('userData') will return a string of the user's app data directory path. const userDataPath = (electron.app || electron.remote.app).getPath('userData'); // We'll use the `configName` property to set the file name and path.join to bring it all together as a string this.path = path.join(userDataPath, opts.configName + '.json'); this.data = parseDataFile(this.path, opts.defaults); }
connect() { const self = this; const options = self.windowOptions; options.x = Math.round(window.screenX + window.innerWidth / 2 - options.width / 2); options.y = Math.round(window.screenY + window.innerHeight / 2 - options.height / 2); const win = self.joinWindow = new (require("electron").remote.BrowserWindow)(options); const url = "https://auth.discordservers.com/connect?scopes=guilds.join&previousUrl=https://auth.discordservers.com/info"; win.webContents.on("did-navigate", (event, url) => { if (url != "https://auth.discordservers.com/info") return; win.close(); self.checkConnection(); }); win.loadURL(url); win.setMenuBarVisibility(false) }
function inpectMenuTemplate(pos, elm) { return { label: 'Inspect element', click: () => (elm || electron.remote.getCurrentWindow()).inspectElement(pos.x, pos.y) }; }
load () { let landingPageUrl = `file://${require('electron').remote.app.getAppPath()}/app/views/changelog.html`.replace(/\\/g,"/") this.show(0, landingPageUrl) }
function inpectElementMenu(pos, elm) { const Menu = process.type === 'renderer' ? electron.remote.Menu : electron.Menu; const MenuItem = process.type === 'renderer' ? electron.remote.MenuItem : electron.MenuItem; const mnu = new Menu(); mnu.append(new MenuItem( inpectMenuTemplate(pos, elm) )); return mnu; }
//console.time('Starting time'); //console.time('Require time 1'); /* window.onerror = function(msg, url, linenumber) { alert('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber); return true; }*/ document.addEventListener("keydown", event => { if(event.key == 'Escape') { if(electron.remote.getCurrentWindow().isFullScreen()) { reading.hideContent(false); electron.remote.getCurrentWindow().setFullScreen(false); electron.remote.getCurrentWindow().setMenuBarVisibility(true) } } });
render(){ if(!formComponents)formComponents = ModuleLoader.get(e => e.FormSection)[0] if(!margins)margins = ModuleLoader.get(e => e.marginTop60)[0] let button = require("./Button").default return React.createElement("div", {}, [ React.createElement(formComponents.FormSection, { className: "", tag: "h2", title: "Lightcord's Settings" }, React.createElement(button, { color: "yellow", look: "ghost", size: "medium", hoverColor: "red", onClick: () => { console.log("Should relaunch") ipcRenderer.sendSync("LIGHTCORD_RELAUNCH_APP", { args: electron.remote.process.argv.slice(1).filter(e => e !== "--disable-betterdiscord") }) }, wrapper: true }, "Relaunch with BetterDiscord")) ]) }
function startApp() { template.loadContentRight('index.content.right.module.html', false); template.loadHeader('index.header.html', false); template.loadContentLeft('index.content.left.html', false); template.loadGlobalElement('index.elements.menus.html', 'menus'); if(electron.remote.process.argv && electron.remote.process.argv[1] && !inArray(electron.remote.process.argv[1], ['--no-sandbox', 'scripts/main.js', '.']) && fs.existsSync(electron.remote.process.argv[1])) openComic(electron.remote.process.argv[1], false); else dom.loadIndexPage(false); document.fonts.onloadingdone = function (fontFaceSetEvent) { $('body .app').css('display', 'block'); $('body .preload').css('display', 'none'); dom.justifyViewModule(); if(onReading) { reading.disposeImages(); reading.calculateView(); reading.stayInLine(); } }; }
getDefaults() { const defaults = is.main ? global[defaultsNameSpace] : electron.remote.getGlobal(defaultsNameSpace); return Object.assign({}, defaults); }
render(){ if(!formComponents)formComponents = ModuleLoader.get(e => e.FormSection)[0] if(!margins)margins = ModuleLoader.get(e => e.marginTop60)[0] let button = require("./Button").default return React.createElement("div", {}, [ React.createElement(formComponents.FormSection, { className: "", tag: "h2", title: "Lightcord's Settings" }, React.createElement(button, { color: "yellow", look: "ghost", size: "medium", hoverColor: "red", onClick: () => { console.log("Should relaunch") ipcRenderer.sendSync("LIGHTCORD_RELAUNCH_APP", { args: electron.remote.process.argv.slice(1).filter(e => e !== "--disable-betterdiscord") }) }, wrapper: true }, "Relaunch with BetterDiscord")) ]) }