mirror of
https://github.com/leanote/desktop-app.git
synced 2025-10-14 15:11:24 +00:00
图片同步
未解决: 从本地获取
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -17,4 +17,5 @@ app/tmp/main.go
|
|||||||
.settings
|
.settings
|
||||||
.project
|
.project
|
||||||
public/config.codekit
|
public/config.codekit
|
||||||
|
/data
|
||||||
|
|
||||||
|
35
node_modules/api.js
generated
vendored
35
node_modules/api.js
generated
vendored
@@ -11,6 +11,7 @@ function log(o) {
|
|||||||
|
|
||||||
// 远程数据服务
|
// 远程数据服务
|
||||||
var Api = {
|
var Api = {
|
||||||
|
leanoteUrl: 'http://localhost:9000',
|
||||||
baseUrl: 'http://localhost:9000/api',
|
baseUrl: 'http://localhost:9000/api',
|
||||||
getUrl: function(url, param) {
|
getUrl: function(url, param) {
|
||||||
var url = this.baseUrl + '/' + url;
|
var url = this.baseUrl + '/' + url;
|
||||||
@@ -131,7 +132,10 @@ var Api = {
|
|||||||
// 将https://leanote.com/api/resource/getImage?imageId=xx
|
// 将https://leanote.com/api/resource/getImage?imageId=xx
|
||||||
// 转成app://leanote/public/files, 内部可以是个服务器吗? 请求内部的controller
|
// 转成app://leanote/public/files, 内部可以是个服务器吗? 请求内部的controller
|
||||||
getImage: function(fileId, callback) {
|
getImage: function(fileId, callback) {
|
||||||
needle.get('http://localhost:9000/images/logo.png', function(err, resp) {
|
var me = this;
|
||||||
|
var url = me.getUrl('file/getImage', {fileId: fileId});
|
||||||
|
log(url);
|
||||||
|
needle.get(url, function(err, resp) {
|
||||||
// log(resp.body);
|
// log(resp.body);
|
||||||
/*
|
/*
|
||||||
{ 'accept-ranges': 'bytes',
|
{ 'accept-ranges': 'bytes',
|
||||||
@@ -141,7 +145,34 @@ var Api = {
|
|||||||
date: 'Mon, 19 Jan 2015 15:01:47 GMT',
|
date: 'Mon, 19 Jan 2015 15:01:47 GMT',
|
||||||
*/
|
*/
|
||||||
// log(resp.headers);
|
// log(resp.headers);
|
||||||
fs.writeFile('/Users/life/Desktop/aa.png', resp.body);
|
if(err) {
|
||||||
|
callback(false);
|
||||||
|
} else {
|
||||||
|
var typeStr = resp.headers['content-type'];
|
||||||
|
log(resp.headers);
|
||||||
|
log(typeStr);
|
||||||
|
var type = 'png';
|
||||||
|
if(typeStr) {
|
||||||
|
var typeArr = typeStr.split('/');
|
||||||
|
if(typeStr.length > 1) {
|
||||||
|
type = typeArr[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var filename = Common.uuid() + '.' + type;
|
||||||
|
var imagePath = User.getCurUserImagesPath();
|
||||||
|
var imagePathAll = imagePath + '/' + filename;
|
||||||
|
log(imagePathAll);
|
||||||
|
fs.writeFile(imagePathAll, resp.body, function(err) {
|
||||||
|
if(err) {
|
||||||
|
log(err);
|
||||||
|
log('local save image failed 本地保存失败');
|
||||||
|
callback(false);
|
||||||
|
} else {
|
||||||
|
callback(imagePathAll, filename);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
4
node_modules/common.js
generated
vendored
4
node_modules/common.js
generated
vendored
@@ -1,6 +1,6 @@
|
|||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var User = require('user');
|
var User = require('user');
|
||||||
var Image = require('image');
|
var File = require('file');
|
||||||
var Evt = require('evt');
|
var Evt = require('evt');
|
||||||
var ObjectId = require('objectid');
|
var ObjectId = require('objectid');
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@ var Common = {
|
|||||||
}
|
}
|
||||||
// 保存
|
// 保存
|
||||||
var relativePath = User.getCurUserImagesAppPath() + '/' + filename;
|
var relativePath = User.getCurUserImagesAppPath() + '/' + filename;
|
||||||
Image.addImage(relativePath);
|
File.addImage(relativePath);
|
||||||
|
|
||||||
callback && callback('app://leanote/' + relativePath);
|
callback && callback('app://leanote/' + relativePath);
|
||||||
});
|
});
|
||||||
|
4
node_modules/evt.js
generated
vendored
4
node_modules/evt.js
generated
vendored
@@ -6,6 +6,10 @@ var Evt = {
|
|||||||
// 项目绝对地址
|
// 项目绝对地址
|
||||||
getBasePath: function() {
|
getBasePath: function() {
|
||||||
return process.cwd();
|
return process.cwd();
|
||||||
|
},
|
||||||
|
getAbsolutePath: function(relative) {
|
||||||
|
var me = this;
|
||||||
|
return me.getBasePath() + '/' + relative;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
module.exports = Evt;
|
module.exports = Evt;
|
||||||
|
38
node_modules/image.js → node_modules/file.js
generated
vendored
38
node_modules/image.js → node_modules/file.js
generated
vendored
@@ -1,7 +1,9 @@
|
|||||||
var db = require('db');
|
var db = require('db');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
var path = require('path');
|
||||||
var Evt = require('evt');
|
var Evt = require('evt');
|
||||||
var User = require('user');
|
var User = require('user');
|
||||||
|
var Common = require('common');
|
||||||
var Images = db.images;
|
var Images = db.images;
|
||||||
|
|
||||||
function log(o) {
|
function log(o) {
|
||||||
@@ -25,19 +27,26 @@ type File struct {
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// 图片服务
|
// 文件服务
|
||||||
var Image = {
|
var File = {
|
||||||
// path是相对于项目路径
|
// path是相对于项目路径
|
||||||
addImage: function(path, callback) {
|
addImage: function(path, callback) {
|
||||||
|
var me = this;
|
||||||
var absolutePath = Evt.getBasePath() + '/' + path;
|
var absolutePath = Evt.getBasePath() + '/' + path;
|
||||||
|
me._addImage(Common.objectId(), absolutePath, callback);
|
||||||
|
},
|
||||||
|
|
||||||
|
_addImage: function(fileId, absolutePath, callback) {
|
||||||
|
// var absolutePath = Evt.getBasePath() + '/' + path;
|
||||||
// 得到文件大小
|
// 得到文件大小
|
||||||
var stat = fs.statSync(absolutePath);
|
var stat = fs.statSync(absolutePath);
|
||||||
var paths = path.split('/');
|
var paths = absolutePath.split('/');
|
||||||
var name = paths[paths.length-1];
|
var name = paths[paths.length-1];
|
||||||
var names = name.split('.');
|
var names = name.split('.');
|
||||||
var ext = names[names.length-1];
|
var ext = names[names.length-1];
|
||||||
var image = {
|
var image = {
|
||||||
Path: path,
|
FileId: fileId,
|
||||||
|
Path: absolutePath,
|
||||||
Name: name,
|
Name: name,
|
||||||
UserId: User.getCurActiveUserId(),
|
UserId: User.getCurActiveUserId(),
|
||||||
Title: name,
|
Title: name,
|
||||||
@@ -53,7 +62,26 @@ var Image = {
|
|||||||
callback && callback(doc);
|
callback && callback(doc);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
addImageForce: function(fileId, path, callback) {
|
||||||
|
var me = this;
|
||||||
|
// 先删除之, 可能是本地有记录, 但是文件没了
|
||||||
|
Images.remove({FileId: fileId}, function() {
|
||||||
|
me._addImage(fileId, path, callback);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 获取图片本地路径
|
||||||
|
getImageLocalPath: function(fileId, callback) {
|
||||||
|
Images.findOne({FileId: fileId}, function(err, doc) {
|
||||||
|
if(!err && doc && doc.Path) { // FileLocalPath是相对于项目的路径
|
||||||
|
callback(true, doc.Path);
|
||||||
|
} else {
|
||||||
|
callback(false, false);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = Image;
|
module.exports = File;
|
49
node_modules/mime.js
generated
vendored
49
node_modules/mime.js
generated
vendored
@@ -1,49 +0,0 @@
|
|||||||
var fs = require('fs');
|
|
||||||
var path = require('path');
|
|
||||||
var _ = require('underscore');
|
|
||||||
|
|
||||||
var map = {
|
|
||||||
'compressed': ['zip', 'rar', 'gz', '7z'],
|
|
||||||
'text': ['txt', 'md', ''],
|
|
||||||
'image': ['jpg', 'jpge', 'png', 'gif', 'bmp'],
|
|
||||||
'pdf': ['pdf'],
|
|
||||||
'css': ['css'],
|
|
||||||
'html': ['html'],
|
|
||||||
'word': ['doc', 'docx'],
|
|
||||||
'powerpoint': ['ppt', 'pptx'],
|
|
||||||
'movie': ['mkv', 'avi', 'rmvb'],
|
|
||||||
};
|
|
||||||
|
|
||||||
var cached = {};
|
|
||||||
|
|
||||||
exports.stat = function(filepath) {
|
|
||||||
var result = {
|
|
||||||
name: path.basename(filepath),
|
|
||||||
path: filepath,
|
|
||||||
};
|
|
||||||
|
|
||||||
try {
|
|
||||||
var stat = fs.statSync(filepath);
|
|
||||||
if (stat.isDirectory()) {
|
|
||||||
result.type = 'folder';
|
|
||||||
} else {
|
|
||||||
var ext = path.extname(filepath).substr(1);
|
|
||||||
result.type = cached[ext];
|
|
||||||
if (!result.type) {
|
|
||||||
for (var key in map) {
|
|
||||||
if (_.include(map[key], ext)) {
|
|
||||||
cached[ext] = result.type = key;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!result.type)
|
|
||||||
result.type = 'blank';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
window.alert(e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
41
node_modules/note.js
generated
vendored
41
node_modules/note.js
generated
vendored
@@ -3,6 +3,7 @@ var User = require('user');
|
|||||||
var Notebook = require('notebook');
|
var Notebook = require('notebook');
|
||||||
var Tag = require('tag');
|
var Tag = require('tag');
|
||||||
var Api = require('api');
|
var Api = require('api');
|
||||||
|
var Server = require('server');
|
||||||
var Common = require('common');
|
var Common = require('common');
|
||||||
var Notes = db.notes;
|
var Notes = db.notes;
|
||||||
|
|
||||||
@@ -98,17 +99,6 @@ var Note = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
// 远程修改本地内容
|
|
||||||
updateNoteContentForce: function(noteId, content) {
|
|
||||||
Notes.update({NoteId: noteId}, { $set: {Content: content, IsContentDirty: false} }, {}, function (err, numReplaced) {
|
|
||||||
if(err) {
|
|
||||||
log(err);
|
|
||||||
callback && callback(false);
|
|
||||||
} else {
|
|
||||||
callback && callback(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
// 获取笔记列表
|
// 获取笔记列表
|
||||||
getNotes: function(notebookId, callback) {
|
getNotes: function(notebookId, callback) {
|
||||||
@@ -154,8 +144,33 @@ var Note = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 远程修改本地内容
|
||||||
|
updateNoteContentForce: function(noteId, content, callback) {
|
||||||
|
// <img src="http://localhost:9000/api/file/getImage?fileId=54c2083f99c37bea5f000001">
|
||||||
|
// 改成<img src="http://localhost:3232/api/file/getImage?fileId=xxx"
|
||||||
|
|
||||||
|
var reg = new RegExp('<img *src="' + Api.leanoteUrl + '/api/file/getImage', 'g');
|
||||||
|
content = content.replace(reg, '<img src="' + Server.localUrl + '/api/file/getImage');
|
||||||
|
|
||||||
|
log("----<>");
|
||||||
|
log(content);
|
||||||
|
Notes.update({NoteId: noteId}, { $set: {Content: content, InitSync: false, IsContentDirty: false} }, {}, function (err, numReplaced) {
|
||||||
|
if(err) {
|
||||||
|
log(err);
|
||||||
|
callback && callback(false);
|
||||||
|
} else {
|
||||||
|
callback && callback(content);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
/*
|
||||||
// 同步内容
|
// 同步内容
|
||||||
updateNoteContentForce: function(noteId, content, callback) {
|
updateNoteContentForce: function(noteId, content, callback) {
|
||||||
|
// 将笔记内容中
|
||||||
|
|
||||||
Notes.update({NoteId: noteId}, { $set: {Content: content, InitSync: false} }, {}, function (err, numReplaced) {
|
Notes.update({NoteId: noteId}, { $set: {Content: content, InitSync: false} }, {}, function (err, numReplaced) {
|
||||||
if(err) {
|
if(err) {
|
||||||
log(err);
|
log(err);
|
||||||
@@ -165,6 +180,7 @@ var Note = {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
*/
|
||||||
|
|
||||||
// 得到笔记内容
|
// 得到笔记内容
|
||||||
getNoteContent: function(noteId, callback) {
|
getNoteContent: function(noteId, callback) {
|
||||||
@@ -183,7 +199,8 @@ var Note = {
|
|||||||
Api.getNoteContent(noteId, function(noteContent) {
|
Api.getNoteContent(noteId, function(noteContent) {
|
||||||
// 同步到本地
|
// 同步到本地
|
||||||
if(Common.isOk(noteContent)) {
|
if(Common.isOk(noteContent)) {
|
||||||
me.updateNoteContentForce(noteId, noteContent.Content, function(ret) {
|
me.updateNoteContentForce(noteId, noteContent.Content, function(content) {
|
||||||
|
noteContent.Content = content;
|
||||||
callback && callback(noteContent);
|
callback && callback(noteContent);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
176
node_modules/server.js
generated
vendored
Normal file
176
node_modules/server.js
generated
vendored
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
var Evt = require('evt');
|
||||||
|
var Common = require('common');
|
||||||
|
var File = require('file');
|
||||||
|
var Api = require('api');
|
||||||
|
var db = require('db');
|
||||||
|
|
||||||
|
var http = require('http');
|
||||||
|
var url = require('url');
|
||||||
|
var path = require('path');
|
||||||
|
var fs = require('fs');
|
||||||
|
|
||||||
|
function log(o) {
|
||||||
|
console.log(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
// http server, 处理笔记图片
|
||||||
|
var Server = {
|
||||||
|
port: 8008,
|
||||||
|
localUrl: 'http://127.0.0.1:8008',
|
||||||
|
_started: false,
|
||||||
|
_req: null,
|
||||||
|
mime: {
|
||||||
|
"css": "text/css",
|
||||||
|
"gif": "image/gif",
|
||||||
|
"html": "text/html",
|
||||||
|
"ico": "image/x-icon",
|
||||||
|
"jpeg": "image/jpeg",
|
||||||
|
"jpg": "image/jpeg",
|
||||||
|
"js": "text/javascript",
|
||||||
|
"json": "application/json",
|
||||||
|
"pdf": "application/pdf",
|
||||||
|
"png": "image/png",
|
||||||
|
"svg": "image/svg+xml",
|
||||||
|
"swf": "application/x-shockwave-flash",
|
||||||
|
"tiff": "image/tiff",
|
||||||
|
"txt": "text/plain",
|
||||||
|
"wav": "audio/x-wav",
|
||||||
|
"wma": "audio/x-ms-wma",
|
||||||
|
"wmv": "video/x-ms-wmv",
|
||||||
|
"xml": "text/xml"
|
||||||
|
},
|
||||||
|
start: function() {
|
||||||
|
var me = this;
|
||||||
|
if(me._started) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var basePath = process.cwd();
|
||||||
|
var server = http.createServer(function (request, response) {
|
||||||
|
var pathname = url.parse(request.url).pathname;
|
||||||
|
me._req = request;
|
||||||
|
if(!pathname) {
|
||||||
|
return me.e404(response);
|
||||||
|
}
|
||||||
|
while(pathname[0] == '/') {
|
||||||
|
pathname = pathname.substr(1);
|
||||||
|
}
|
||||||
|
if(pathname == 'api/file/getImage') {
|
||||||
|
return me.getImage(request, response);
|
||||||
|
} else {
|
||||||
|
response.end();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var realPath = basePath + pathname;
|
||||||
|
var ext = path.extname(realPath);
|
||||||
|
ext = ext ? ext.slice(1) : 'unknown';
|
||||||
|
|
||||||
|
fs.exists(realPath, function (exists) {
|
||||||
|
if (!exists) {
|
||||||
|
response.writeHead(404, {
|
||||||
|
'Content-Type': 'text/plain'
|
||||||
|
});
|
||||||
|
response.write("This request URL " + pathname + " was not found on this server.");
|
||||||
|
response.end();
|
||||||
|
} else {
|
||||||
|
fs.readFile(realPath, "binary", function (err, file) {
|
||||||
|
if (err) {
|
||||||
|
response.writeHead(500, {
|
||||||
|
'Content-Type': 'text/plain'
|
||||||
|
});
|
||||||
|
|
||||||
|
response.end(err);
|
||||||
|
} else {
|
||||||
|
var contentType = me.mime[ext] || "text/plain";
|
||||||
|
response.writeHead(200, {'Content-Type': contentType});
|
||||||
|
response.write(file, "binary");
|
||||||
|
response.end();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
server.listen(me.port);
|
||||||
|
console.log("Server runing at port: " + me.port + ".");
|
||||||
|
me.localUrl = 'http://127.0.0.1:' + me.port;
|
||||||
|
me._started = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
e404: function(res) {
|
||||||
|
var me = this;
|
||||||
|
res.writeHead(404, {
|
||||||
|
'Content-Type': 'text/plain'
|
||||||
|
});
|
||||||
|
res.write("This request URL " + me._req.url + " was not found on this server.");
|
||||||
|
res.end();
|
||||||
|
},
|
||||||
|
|
||||||
|
// 返回图片
|
||||||
|
retImage: function(filePath, res) {
|
||||||
|
var me = this;
|
||||||
|
var ext = path.extname(filePath);
|
||||||
|
ext = ext ? ext.slice(1) : 'unknown';
|
||||||
|
fs.readFile(filePath, "binary", function (err, file) {
|
||||||
|
if (err) {
|
||||||
|
res.writeHead(500, {
|
||||||
|
'Content-Type': 'text/plain'
|
||||||
|
});
|
||||||
|
res.end();
|
||||||
|
} else {
|
||||||
|
var contentType = me.mime[ext] || "text/plain";
|
||||||
|
res.writeHead(200, {'Content-Type': contentType});
|
||||||
|
res.write(file, "binary");
|
||||||
|
res.end();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 处理用户图片
|
||||||
|
getImage: function(req, res) {
|
||||||
|
var me = this;
|
||||||
|
// fileId
|
||||||
|
var fileId = url.parse(req.url, true).query['fileId'];
|
||||||
|
if(!fileId) {
|
||||||
|
return me.e404(res);
|
||||||
|
}
|
||||||
|
// 先查看本地是否有该文件
|
||||||
|
// has表示本地数据库有记录
|
||||||
|
File.getImageLocalPath(fileId, function(has, fileLocalPath) {
|
||||||
|
// 本地有
|
||||||
|
if(has && fileLocalPath && path.exists(fileLocalPath) ) {
|
||||||
|
if(fileLocalPath) {
|
||||||
|
me.retImage(fileLocalPath, res);
|
||||||
|
// 本地没有路径
|
||||||
|
} else {
|
||||||
|
// 这里不会执行, 会执行下面的, 本地没有图片, 要从远程获取
|
||||||
|
// 是否需要重新从远程获取呢?
|
||||||
|
log('本地有数据, 但是图片找不到了, 可能自己删除了图片?');
|
||||||
|
me.e404(res);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 访问api, 得到图片
|
||||||
|
Api.getImage(fileId, function(fileLocalPath, filename) {
|
||||||
|
if(fileLocalPath) {
|
||||||
|
log('图片保存到本地成功');
|
||||||
|
// 保存到本地数据库中
|
||||||
|
File.addImageForce(fileId, fileLocalPath, function(doc) {
|
||||||
|
if(doc) {
|
||||||
|
log('保存到本地数据库成功');
|
||||||
|
} else {
|
||||||
|
log('保存到数据库失败');
|
||||||
|
}
|
||||||
|
return me.retImage(fileLocalPath, res);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// 远程取不到图片, 是没有网络? 还是远程真的没有了
|
||||||
|
// TODO
|
||||||
|
log('取不远程的图片' + fileId);
|
||||||
|
return me.e404(res);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
module.exports = Server;
|
1
node_modules/user.js
generated
vendored
1
node_modules/user.js
generated
vendored
@@ -59,6 +59,7 @@ var User = {
|
|||||||
},
|
},
|
||||||
// 打开软件时, 从db中获取当前用户
|
// 打开软件时, 从db中获取当前用户
|
||||||
init: function(callback) {
|
init: function(callback) {
|
||||||
|
console.log("......user init.......")
|
||||||
var me = this;
|
var me = this;
|
||||||
db.users.findOne({IsActive: true}, function(err, doc) {
|
db.users.findOne({IsActive: true}, function(err, doc) {
|
||||||
if(err || !doc) {
|
if(err || !doc) {
|
||||||
|
17
public/js/app/launch.js
Normal file
17
public/js/app/launch.js
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* 入口, 转发
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 服务器开启
|
||||||
|
ServerService.start();
|
||||||
|
|
||||||
|
// 判断是否登录
|
||||||
|
UserService.init(function(userInfo) {
|
||||||
|
if(userInfo) {
|
||||||
|
UserInfo = userInfo;
|
||||||
|
location.href = 'note.html';
|
||||||
|
} else {
|
||||||
|
alert(2);
|
||||||
|
location.href = 'login.html';
|
||||||
|
}
|
||||||
|
});
|
@@ -15,10 +15,13 @@ var Service = {
|
|||||||
var ApiService = Service.apiService;
|
var ApiService = Service.apiService;
|
||||||
var UserService = Service.userService;
|
var UserService = Service.userService;
|
||||||
var SyncService = Service.syncServie;
|
var SyncService = Service.syncServie;
|
||||||
|
var ServerService = require('server');
|
||||||
|
|
||||||
// 分发服务
|
// 分发服务
|
||||||
// route = /note/notebook
|
// route = /note/notebook
|
||||||
// 过时
|
// 过时
|
||||||
|
Service.dispatch = function() {};
|
||||||
|
/*
|
||||||
Service.dispatch = function(router, param, callback) {
|
Service.dispatch = function(router, param, callback) {
|
||||||
var me = this;
|
var me = this;
|
||||||
router = $.trim(router);
|
router = $.trim(router);
|
||||||
@@ -35,6 +38,7 @@ Service.dispatch = function(router, param, callback) {
|
|||||||
callback && callback(false);
|
callback && callback(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
// 右键菜单
|
// 右键菜单
|
||||||
$(document).on('contextmenu', function (e) {
|
$(document).on('contextmenu', function (e) {
|
||||||
|
7
test.js
7
test.js
@@ -3,6 +3,7 @@
|
|||||||
var Notebook = require('notebook');
|
var Notebook = require('notebook');
|
||||||
var Note = require('note');
|
var Note = require('note');
|
||||||
var Api = require('api');
|
var Api = require('api');
|
||||||
|
var Server = require('server');
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Notebook.addNotebook("1", "life");
|
Notebook.addNotebook("1", "life");
|
||||||
@@ -14,4 +15,8 @@ Notebook.addNotebook("4", "life2", "1");
|
|||||||
// Notebook.reCountNotebookNumberNotes('54bb2e89c596f2239a000000');
|
// Notebook.reCountNotebookNumberNotes('54bb2e89c596f2239a000000');
|
||||||
|
|
||||||
|
|
||||||
Api.auth('c@a.com', 'abc123');
|
// Api.auth('c@a.com', 'abc123');
|
||||||
|
var content = '<img src="http://localhost:9000/api/file/getImage?fileId=54c2083f99c37bea5f000001"> <img src="http://localhost:9000/api/file/getImage?fileId=54c2083f99c37bea5f000001">' + "\n" + '<img src="http://localhost:9000/api/file/getImage?fileId=54c2083f99c37bea5f000001">';
|
||||||
|
var reg = new RegExp('<img *src="' + Api.leanoteUrl + '/api/file/getImage', 'g');
|
||||||
|
content = content.replace(reg, '<img src="' + Server.localUrl + '/api/file/getImage');
|
||||||
|
console.log(content);
|
||||||
|
Reference in New Issue
Block a user