Files
desktop-app/node_modules/common.js
2015-01-24 14:41:24 +08:00

91 lines
2.3 KiB
JavaScript

var fs = require('fs');
var User = require('user');
var File = require('file');
var Evt = require('evt');
var ObjectId = require('objectid');
// var gui = require('nw.gui');
// console.log(gui.App);
function log(o) {console.log(o)}
// log("<>>>>>>>>>>>>>>>>>>>>");
var Common = {
objectId: function() {
return ObjectId()
},
_uuid: 1,
uuid: function() {
this._uuid++;
return ((new Date()).getTime()) + '_' + this._uuid;
},
isOk: function(ret) {
if(!ret) {
return ret;
}
if(typeof ret == 'object') {
// 数组
if('length' in ret) {
return true;
}
if('Ok' in ret && !ret.Ok) { // 指明了Ok
return false;
}
return true;
}
return false;
},
// FileReaderWeb 是 web上的FileReader, 可能与nodejs这个有冲突
pasteImage: function(event, FileReaderWeb, callback) {
var me = this;
var items = (event.clipboardData || event.originalEvent.clipboardData).items; // 可能有多个file, 找到属于图片的file
// find pasted image among pasted items
var blob;
for (var i = 0; i < items.length; i++) {
if (items[i].type.indexOf("image") === 0) {
blob = items[i].getAsFile();
}
}
// console.log("paste images");
// console.log(blob);
// load image if there is a pasted image
if (blob) {
// console.log("??");
var reader = new FileReaderWeb();
// console.log(">>")
// console.log(reader);
// console.log(">>")
reader.onloadend = function() {
console.log(reader);
// 这个事件在读取结束后,无论成功或者失败都会触发
if (reader.error) {
console.log(reader.error);
} else {
}
}
reader.onload = function(e) {
// 上传之
// log('result');
// log(reader.result);
var ret = reader.result
ret = ret.replace(/^data:image\/\w+;base64,/, "")
// log(User.getCurUserImagesPath());
var filename = me.uuid() + '.png';
fs.writeFile(User.getCurUserImagesPath() + '/' + filename, new Buffer(ret, 'base64'), function(err) {
if(err) {
log(err);
return;
}
// 保存
var relativePath = User.getCurUserImagesAppPath() + '/' + filename;
File.addImage(relativePath);
callback && callback('app://leanote/' + relativePath);
});
};
reader.readAsDataURL(blob);
}
},
};
module.exports = Common;