From bf52f67c8552f6ea7740e973d34c54ae4840a0d1 Mon Sep 17 00:00:00 2001 From: pg Date: Fri, 22 Jan 2016 00:00:27 +0100 Subject: [PATCH] Init commit --- .gitignore | 2 + README.md | 0 assets/.clientApp.js.swp | Bin 0 -> 12288 bytes assets/clientApp.js | 32 ++++++++++ back.png | Bin 0 -> 40240 bytes main.js | 132 +++++++++++++++++++++++++++++++++++++++ package.json | 17 +++++ views/.index.jade.swp | Bin 0 -> 12288 bytes views/index.jade | 21 +++++++ 9 files changed, 204 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 assets/.clientApp.js.swp create mode 100644 assets/clientApp.js create mode 100644 back.png create mode 100644 main.js create mode 100644 package.json create mode 100644 views/.index.jade.swp create mode 100644 views/index.jade diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a6ec74b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +*.swp diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/assets/.clientApp.js.swp b/assets/.clientApp.js.swp new file mode 100644 index 0000000000000000000000000000000000000000..7f870ecb2a56227831d7ca0da5b1ce50fdbf5e7a GIT binary patch literal 12288 zcmeI2&ui2`6vt-;Pqr$0E{xNK&9XJqT0xNA1uvqYH(L)LB%4gzv}qDDleMMW`bX4@ z7k_}@!9(fIKSI0-{tbE-uYM<+-KJGr>8X)$X7&(vdb5l7AM#u7JVUw6 z*yfYBi+XCm_V_$w>9QR>xg>hyWFuJYq|4Gz0wvQ-=~XQ~t(DQzk3tojJ89~!>VNV> zMnr%JoQA+8o4+wPYiCZ2Yy9e!h0{2pIYfX65CI}U1c(3;AOb{y2%J#@CatmOi2Ym{ zKQG(bk+$qoLj;Hb5g-CYfCvx)B0vO)01+SpM1TmKK>}XD*v|`$?M@(g{Qu9(9KK&- z>>Kn6+K2X_0W<}DzR1{J=q5A|Nyvq+Lle-CNyffFAD~@m2bzOw&{wSU5!!>^LvNth z&@1RA^a8T6yo0C^0U|&IhyW2F0z`la5CJ0azY*AO;;VzBE-L#0Qt9Ej>=h41w=%%F zpTs(elp7_>j#&w{+xMbeS!csicZ6%N8$Sr+HPLi&*Vtckmh#v)VG=vdt*YTP>~xZ6 zzS2*lP#f5LX{zGD$&zPI;2E!Z;8;qy{`(Bk4#Iwyx6`g@*_o~hO{92Bv}M|DOZ!rc zoP|rg@b2bWG>)j6Sh2K?wC<*fHja>DhHt_8Hncs%$N3b7!<_nF#__geqeS~iZP;=I>7X6V`u{E~hnKF46^A)omCB0RQNLdaI6ECu_W^NN760!Aw zixw}iAhed?C6E>u?Otw75_3Po?eI=xymyUaUptLntJ2qOoNhL$xLEy!)sGJv|8B|H(*MS@| jj`IlnquXA0g2d0)ahbm9X37gT4;^$SrJV|Zm8t9(xFR<$ literal 0 HcmV?d00001 diff --git a/assets/clientApp.js b/assets/clientApp.js new file mode 100644 index 0000000..c83bad3 --- /dev/null +++ b/assets/clientApp.js @@ -0,0 +1,32 @@ +//var bla = function + +$(document).ready(function(){ + var row = function(data){ + + var htmlobj = "
"+data.title+" |"+ data.url+ + //"
"+ "" + "" + //return "
"+data.title+"
| "+ data.url+"
"+ "
" + return htmlobj + + } + + + $("#addUrl").click(function(){ + console.log("Hey") + var url=$("#urlText").val() + $.post("/", {url:url}, function(data){ + console.log(data) + if (data.url){ + //$("#ressources_list").append("

"+data.title +"

") + $("#ressources_list").append(row(data)) + $(".presLink").click(function(){ + console.log(this.value) + }) + } + }) + + + }) + }) + diff --git a/back.png b/back.png new file mode 100644 index 0000000000000000000000000000000000000000..a0ad9bcfb2a69570c8b2997e382802022c7fbef8 GIT binary patch literal 40240 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%0D_P@Ws?$3N`>h$3k7WeZTD_0U^KJ@k; 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 literal 0 HcmV?d00001 diff --git a/main.js b/main.js new file mode 100644 index 0000000..1f11f0e --- /dev/null +++ b/main.js @@ -0,0 +1,132 @@ +'use strict'; + +const util = require('util'); +const EventEmitter = require('events'); +const electron = require('electron'); +const app = electron.app; // Module to control application life. +const BrowserWindow = electron.BrowserWindow; // Module to create native browser window. +var fs = require("fs"); +var Notify = require('fs.notify'); +var validUrl = require('valid-url'); +var express = require('express'); +var webapp = express(); +var MetaInspector = require('node-metainspector'); + + +var bodyParser = require('body-parser') +require('crash-reporter').start(); + + +const refresh = new Refresh(); + +function Refresh() { + EventEmitter.call(this); +} +util.inherits(Refresh, EventEmitter); + +var default_url="file://" + process.cwd() + "/back.png" + +var url_file = process.cwd() + "/url.txt" +var files = [ url_file ] + +// Keep a global reference of the window object, if you don't, the window will +// be closed automatically when the JavaScript object is garbage collected. +var mainWindow = null; +var notifications = new Notify(files); + +webapp.set('view engine', 'jade'); +webapp.use(express.static('assets')); +webapp.use( bodyParser.json() ); // to support JSON-encoded bodies +webapp.use(bodyParser.urlencoded({ // to support URL-encoded bodies + extended: true +})); + +//webapp.use(express.json()); // to support JSON-encoded bodies +//webapp.use(express.urlencoded()); + +webapp.get('/', function (req, res) { + res.render('index', {ressources:[]}); +}); +webapp.post("/", function(req,res){ + + console.log("/new") + var resp = res + var candidate = req.body.url + console.log(candidate) + if( validUrl.isUri(candidate) ){ + var client = new MetaInspector(candidate, { timeout: 5000 }); + client.on("fetch", function(){ + console.log("Description: " + client.description); + //imainWindow.loadURL(candidate); + refresh.emit('event',candidate) + resp.send({title:client.title, url:candidate, description: client.description}) + + }); + + client.on("error", function(err){ + resp.send("ERR"); + console.log(error); + }); + + client.fetch(); + + } + else { + console.log("Invalid URL: " + candidate) + resp.send("ERR"); + } + + +}) + + + +webapp.listen(3000, function () { + console.log('Example app listening on port 3000!'); +}); + +// Quit when all windows are closed. +app.on('window-all-closed', function() { + // On OS X it is common for applications and their menu bar + // to stay active until the user quits explicitly with Cmd + Q + if (process.platform != 'darwin') { + app.quit(); + } +}); + +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +app.on('ready', function() { + // Create the browser window. + mainWindow = new BrowserWindow({width: 800, height: 600}); + + // and load the index.html of the app. + mainWindow.loadURL(default_url); + // Open the DevTools. + //mainWindow.webContents.openDevTools(); + refresh.on('event', function(url) { + console.log("got data", url) + //console.log(mainWindow) + const options = {"extraHeaders" : "pragma: no-cache\n"} + mainWindow.loadURL(url, options); + }); + // Emitted when the window is closed. + mainWindow.on('closed', function() { + // Dereference the window object, usually you would store windows + // in an array if your app supports multi windows, this is the time + // when you should delete the corresponding element. + mainWindow = null; + }); +}); + +app.on('uncaughtException', function (error) { + console.log(error) // Handle the error +}) + + +app.on('certificate-error', function(event, webContents, url, error, certificate, callback) { + console.log(error, certificate) + event.preventDefault(); + callback(true); + +}) diff --git a/package.json b/package.json new file mode 100644 index 0000000..2eafb4d --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "your-app", + "version": "0.1.0", + "main": "main.js", + "dependencies": { + "body-parser": "^1.14.2", + "express": "^4.13.3", + "fs.notify": "0.0.4", + "jade": "^1.11.0", + "node-metainspector": "gabceb/node-metainspector", + "request": "^2.67.0", + "valid-url": "^1.0.9" + }, + "devDependencies": { + "electron-rebuild": "^1.1.1" + } +} diff --git a/views/.index.jade.swp b/views/.index.jade.swp new file mode 100644 index 0000000000000000000000000000000000000000..a94f7faa4d4cb703e199dc725ffcf0475f240959 GIT binary patch literal 12288 zcmeI2&ui2`6vwB6g5WO{4<3Y=f~?d{_J_5rP+_%OQCzLI-Kv)|o6IJYolK^g$^JU% zzu?K62mb<5@Zw+O(O)OM_>!(#MN|qN#5eHGym|B9o0(6-LfCXGooj7t!Ko8yM+kX! z=V@pEiRUvLdkIlN?)-gA^yv3N5b;0-u9x`CRVmYvb_bjdwacZ?MovV1_D4l92nis8 zT@pA*>a}VmPoA|;S;vm9@3Ic2Aps4`F`oxvLjp(u z2_OL^fCP{L5&D#J zXRQGh8H}m#!+`sRwVn$53@LJ^mz}AGjq*fEW5~-O^lY96##%n{eV$fSI)ZkYupr=T zNuLj#qGaKjEzC_S{Y@{CCQZclssv`ci9ara3^#&V%T#(}tFQ~N_EN4)NvGbT?Fr7L zX)5JJdb*9B({AxWwG(Y+EFC*u61&@Gx$0DFPQ{72{CQ$%jJgQf=~$Vh9BC&=l0dNh z^X#IG9!S^FK)ZFP>eSqB#)a>~Aw;IM8~gL$stPXqrTk*0Ou#)bW5IODn6a%eWxYi^ zUrNJTF&%lnbh=4mv`MMT2l{n;1ZZ+by>$jS#qefJ1W^;6YW2qxo zcun+|d&6O?NgLtPk{{g{>IMr&Vbp22s=XlESh*VaCwk!*XM&#>%L*C1_lG7H