Skip to content

Instantly share code, notes, and snippets.

View hawkeye64's full-sized avatar

Jeff Galbraith hawkeye64

View GitHub Profile
@hawkeye64
hawkeye64 / gist:a947006a45717db110ebeae9daeb9b5a
Created November 24, 2018 19:52
requestFullscreen && cancelFullscreen
requestFullscreen: function (el) {
if (el) {
if (el.requestFullscreen) {
el.requestFullscreen()
return true
} else if (el.mozRequestFullScreen) { /* Firefox */
el.mozRequestFullScreen()
return true
} else if (el.webkitRequestFullscreen) { /* Chrome, Safari and Opera */
el.webkitRequestFullscreen()
@hawkeye64
hawkeye64 / gist:b4a2e621fb82c352452bdde29106bf2e
Created November 18, 2018 19:45
rescanCurrentFolder function
rescanCurrentFolder: function () {
this.clearAllContentItems()
this.contents.push(...this.getFolderContents(this.selectedFolder))
},
@hawkeye64
hawkeye64 / gist:6d6283607d8c4c74230eefeed99a6104
Created November 18, 2018 19:44
folderWatcherHandler function
folderWatcherHandler: function (newFolder, oldFolder) {
if (oldFolder && this.watcher) {
this.watcher.close()
}
if (newFolder) {
// let backend know to statically serve files from this folder
ipcRenderer.send('folder', newFolder)
this.watcher = chokidar.watch(newFolder, {
depth: 0,
createNode: function (fileInfo) {
let nodeKey = fileInfo.rootDir
if (nodeKey.charAt(nodeKey.length - 1) !== path.sep) {
nodeKey += path.sep
}
if (fileInfo.fileName === path.sep) {
fileInfo.fileName = nodeKey
}
else {
nodeKey += fileInfo.fileName
@hawkeye64
hawkeye64 / gist:f29d008f22ceae0733dcb4fdb1af5baa
Created November 18, 2018 19:20
getFolders and getFolderContents
getFolders: function (absolutePath) {
let folders = []
// check incoming arg
if (!absolutePath || typeof absolutePath !== 'string') {
return folders
}
for (const fileInfo of walkFolders(absolutePath, false)) {
// all files and folders
@hawkeye64
hawkeye64 / gist:e0dfcc1aeb253ce0c1f918fe9e229874
Created November 18, 2018 19:18
Electron - get image from main process
else if (type === 'image') {
return 'http://localhost:8000/file/' + this.node.label
}
@hawkeye64
hawkeye64 / gist:a141341b6ba422ec0b8d09b881c922e6
Created November 18, 2018 19:17
electron-main end snippet
ipcMain.on('folder', (event, folder) => {
fileFolder = folder
})
expressApp.use(cors())
router.get('/file/:name', function (req, res) {
let filename = fileFolder + path.sep + req.params.name
console.log('Serving file:', filename)
res.sendFile(filename)
import { app, BrowserWindow, ipcMain } from 'electron'
const nativeImage = require('electron').nativeImage
const path = require('path')
const http = require('http')
const express = require('express')
const expressApp = express()
const cors = require('cors')
const router = express.Router()
let fileFolder
webPreferences: {
webSecurity: true
}
@hawkeye64
hawkeye64 / gist:841f35b8f1b9de7d81dd0815bf986e56
Created November 18, 2018 19:12
calling getWindowsDrives
if (process.platform === 'win32') {
getWindowsDrives((error, drives) => {
if (!error) {
this.drives = drives
// work through the drives backwards
for (let index = this.drives.length - 1; index >= 0; --index) {
try {
const stat = fs.statSync(this.drives[index] + path.sep)
let fileInfo = {}
fileInfo.rootDir = this.drives[index]