diff --git a/.gitignore b/.gitignore index 70854a8..2e709be 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ data/** data/ package-lock.json devdb.sqlite3 +db.sqlite3 build/** app/** settings.json diff --git a/package.json b/package.json index b9577f0..ac50348 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,11 @@ "scripts": { "compile": "tsc", "compile:watch": "tsc -w", - "build":"cd src/client && npm run build:prod", - "build:watch":"cd src/client && npm run build:watch", + "build": "cd src/client && npm run build:prod", + "build:watch": "cd src/client && npm run build:watch", "app": "electron build/app.js", - "app:build":"electron-builder", - "app:pack":"electron-builder --dir", + "app:build": "electron-builder", + "app:pack": "electron-builder --dir", "app:build:win64": "electron-builder --win --x64", "app:pack:win64": "electron-builder --win --x64 --dir" }, @@ -21,11 +21,14 @@ "node_modules/**/*", "package.json" ], - "extraFiles":[ + "extraFiles": [ { - "from":"dist/", - "to":"dist/", - "filter":["**/*","!**/*.map"] + "from": "dist/", + "to": "dist/", + "filter": [ + "**/*", + "!**/*.map" + ] }, "index.html" ], @@ -62,7 +65,6 @@ }, "devDependencies": { "@types/jsonwebtoken": "^8.5.0", - "@types/knex": "^0.16.1", "@types/koa": "^2.11.6", "@types/koa-bodyparser": "^4.3.0", "@types/koa-router": "^7.4.1", diff --git a/src/route/contents.ts b/src/route/contents.ts index c8c0b3b..b5a6efb 100644 --- a/src/route/contents.ts +++ b/src/route/contents.ts @@ -29,16 +29,31 @@ const ContentTagIDHandler = (controller: DocumentAccessor) => async (ctx: Contex ctx.type = 'json'; }; const ContentQueryHandler = (controller : DocumentAccessor) => async (ctx: Context,next: Next)=>{ - const limit = ParseQueryNumber(ctx.query['limit']); - const cursor = ParseQueryNumber(ctx.query['cursor']); - const word = ParseQueryArgString(ctx.query['word']); - const content_type = ParseQueryArgString(ctx.query['content_type']); - const offset = ParseQueryNumber(ctx.query['offset']); + + let query_limit = (ctx.query['limit']); + let query_cursor = (ctx.query['cursor']); + let query_word = (ctx.query['word']); + let query_content_type = (ctx.query['content_type']); + let query_offset = (ctx.query['offset']); + let query_use_offset = ctx.query['use_offset']; + if(query_limit instanceof Array + || query_cursor instanceof Array + || query_word instanceof Array + || query_content_type instanceof Array + || query_offset instanceof Array + || query_use_offset instanceof Array){ + return sendError(400,"paramter can not be array"); + } + const limit = ParseQueryNumber(query_limit); + const cursor = ParseQueryNumber(query_cursor); + const word = ParseQueryArgString(query_word); + const content_type = ParseQueryArgString(query_content_type); + const offset = ParseQueryNumber(query_offset); if(limit === NaN || cursor === NaN || offset === NaN){ return sendError(400,"parameter limit, cursor or offset is not a number"); } const allow_tag = ParseQueryArray(ctx.query['allow_tag']); - const [ok,use_offset] = ParseQueryBoolean(ctx.query['use_offset']); + const [ok,use_offset] = ParseQueryBoolean(query_use_offset); if(!ok){ return sendError(400,"use_offset must be true or false."); }