Skip to content

Commit abc4c84

Browse files
committed
a
1 parent 4f7ae8e commit abc4c84

File tree

9 files changed

+37
-151
lines changed

9 files changed

+37
-151
lines changed

development.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ async function run() {
2323
let config;
2424
try {
2525
config = require('./config.js');
26-
config.lib = ['@'];
2726
config.middleware = [
2827
hydro.handler.trace,
29-
'@',
28+
hydro.handler.nunjucks,
29+
hydro.handler.log,
3030
hydro.handler.base,
3131
hydro.handler.user
3232
];
@@ -40,7 +40,6 @@ async function run() {
4040
]
4141
};
4242
config.perm = require('./permission.js');
43-
config.deploy = require('./scripts/deploy.js');
4443
config.constants = {
4544
MODE_NAME: ['osu!', 'osu!taiko', 'osu!catch', 'osu!mania']
4645
};

handler/bbs/main.js

+7
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@ exports.handler = class {
2121
queue = await Promise.all(queue);
2222
for (let i in queue) comment.reply[i].author = queue;
2323
}
24+
async prepare() {
25+
let cfg = await this.lib.config.get('categories');
26+
if (!cfg) await this.lib.config.set('categories', [{ id: 'default', name: 'Default Category' }]);
27+
}
2428
async init() {
29+
await this.prepare();
2530
this.router
2631
.get('/', async ctx => {
2732
let categories = await this.lib.conf.get('categories');
@@ -161,3 +166,5 @@ exports.handler = class {
161166
return this.router;
162167
}
163168
};
169+
exports.depends = ['database', 'user'];
170+
exports.id = 'bbs.main';

handler/bbs/message.js

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
const
2+
MESSAGES_PER_PAGE = 50,
23
Router = require('koa-router'),
34
{ ObjectID } = require('bson'),
45
{ PermissionError, NotFoundError } = require('hydro-framework').errors,
@@ -18,14 +19,18 @@ exports.handler = class {
1819
this.router
1920
.get('/m', async ctx => {
2021
if (!ctx.state.user._id) throw new PermissionError('You are not logged in!');
21-
let messages = await this.db.collection('message').find({ user: ctx.state.user._id }).toArray();
22+
let page = ctx.query.page || 1;
23+
let messages = await this.lib.message.find({ uid: ctx.state.user._id })
24+
.skip((page - 1) * MESSAGES_PER_PAGE)
25+
.limit(MESSAGES_PER_PAGE)
26+
.toArray();
2227
await ctx.render('message', { messages });
2328
})
2429
.post('/m/ack/:id', async ctx => {
25-
let message = await this.db.collection('message').findOne({ _id: ctx.params.id, user: ctx.state.user._id });
26-
if (!message) throw new NotFoundError('Message not found!');
27-
await this.db.collection('message').delete({ _id: ctx.params.id, user: ctx.state.user._id });
30+
await this.lib.message.ack(ctx.params.id, ctx.state.user._id);
2831
});
2932
return this.router;
3033
}
31-
};
34+
};
35+
exports.depends = ['database', 'user'];
36+
exports.id = 'bbs.message';

handler/file/main.js

+1
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ exports.handler = class {
2424
return this.router;
2525
}
2626
};
27+
exports.depends = ['database', 'user'];

handler/main/api.js

+1
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@ exports.handler = class {
2727
return this.router;
2828
}
2929
};
30+
exports.depends = ['database', 'user'];

handler/main/main.js

+1
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,4 @@ exports.handler = class {
4646
return this.router;
4747
}
4848
};
49+
exports.depends = ['database', 'user'];

package.json

+1-4
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,9 @@
2323
"homepage": "https://github.com/sayobot-dev/bbs#readme",
2424
"dependencies": {
2525
"axios": "^0.19.0",
26-
"hydro-framework": "^0.0.3"
26+
"hydro-framework": "^0.0.4"
2727
},
2828
"devDependencies": {
2929
"eslint": "^6.5.1"
30-
},
31-
"optionalDependencies": {
32-
"bbs-ui-default": "../bbs-ui-default"
3330
}
3431
}

scripts/deploy.js

-42
This file was deleted.

yarn.lock

+14-97
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
"@types/node" "*"
3333

3434
"@types/node@*":
35-
version "12.11.7"
36-
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.11.7.tgz#57682a9771a3f7b09c2497f28129a0462966524a"
37-
integrity sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA==
35+
version "12.12.6"
36+
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.6.tgz#a47240c10d86a9a57bb0c633f0b2e0aea9ce9253"
37+
integrity sha512-FjsYUPzEJdGXjwKqSpE0/9QEh6kzhTAeObA54rn6j3rR4C/mzpI9L0KNfoeASSPMMdxIsoJuCLDWcM/rVjIsSA==
3838

3939
a-sync-waterfall@^1.0.0:
4040
version "1.0.1"
@@ -202,14 +202,6 @@ axios@^0.19.0:
202202
follow-redirects "1.5.10"
203203
is-buffer "^2.0.2"
204204

205-
babel-runtime@^6.9.2:
206-
version "6.26.0"
207-
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
208-
integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
209-
dependencies:
210-
core-js "^2.4.0"
211-
regenerator-runtime "^0.11.0"
212-
213205
214206
version "1.0.2"
215207
resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
@@ -255,11 +247,6 @@ basic-auth@~2.0.0:
255247
dependencies:
256248
safe-buffer "5.1.2"
257249

258-
bbs-ui-default@../bbs-ui-default:
259-
version "0.0.0"
260-
dependencies:
261-
fs-extra "^8.1.0"
262-
263250
better-assert@~1.0.0:
264251
version "1.0.2"
265252
resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522"
@@ -277,11 +264,6 @@ [email protected]:
277264
resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683"
278265
integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==
279266

280-
bluebird@^3.1.1:
281-
version "3.7.1"
282-
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.1.tgz#df70e302b471d7473489acf26a93d63b53f874de"
283-
integrity sha512-DdmyoGCleJnkbp3nkbxTLJ18rjDsE4yCggEwKNXkeV123sPNfOCYeDoeuOY+F2FrSjO1YXcTU+dsy96KMy+gcg==
284-
285267
brace-expansion@^1.1.7:
286268
version "1.1.11"
287269
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -539,11 +521,6 @@ copy-descriptor@^0.1.0:
539521
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
540522
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
541523

542-
core-js@^2.4.0:
543-
version "2.6.10"
544-
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f"
545-
integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==
546-
547524
core-util-is@~1.0.0:
548525
version "1.0.2"
549526
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -976,15 +953,6 @@ fresh@~0.5.2:
976953
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
977954
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
978955

979-
fs-extra@^8.1.0:
980-
version "8.1.0"
981-
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
982-
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
983-
dependencies:
984-
graceful-fs "^4.2.0"
985-
jsonfile "^4.0.0"
986-
universalify "^0.1.0"
987-
988956
fs-minipass@^1.2.5:
989957
version "1.2.7"
990958
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
@@ -1061,7 +1029,7 @@ globals@^11.7.0:
10611029
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
10621030
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
10631031

1064-
graceful-fs@^4.1.11, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
1032+
graceful-fs@^4.1.11:
10651033
version "4.2.3"
10661034
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
10671035
integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
@@ -1073,13 +1041,6 @@ gridfs-stream@^1.1.1:
10731041
dependencies:
10741042
flushwritable "^1.0.0"
10751043

1076-
gridfs@^1.0.0:
1077-
version "1.0.0"
1078-
resolved "https://registry.yarnpkg.com/gridfs/-/gridfs-1.0.0.tgz#fe75f2ce817d0078503fc60e1cbb665ac88ea477"
1079-
integrity sha1-/nXyzoF9AHhQP8YOHLtmWsiOpHc=
1080-
dependencies:
1081-
gridfs-stream "^1.1.1"
1082-
10831044
has-binary2@~1.0.2:
10841045
version "1.0.3"
10851046
resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d"
@@ -1162,24 +1123,24 @@ http-errors@~1.6.2:
11621123
setprototypeof "1.1.0"
11631124
statuses ">= 1.4.0 < 2"
11641125

1165-
hydro-framework@^0.0.3:
1166-
version "0.0.3"
1167-
resolved "https://registry.yarnpkg.com/hydro-framework/-/hydro-framework-0.0.3.tgz#c247428fe8c60490102502f21a7483227fa03b3b"
1168-
integrity sha512-b4PamhTZeb0KBBp0ZTGxkK2RlTUzxOQeXLyuc5q2AbAzXzEIBc/Dyo1A9CkZhDjZW7dgpmKEsv1qLvnUePWobw==
1126+
hydro-framework@^0.0.4:
1127+
version "0.0.4"
1128+
resolved "https://registry.yarnpkg.com/hydro-framework/-/hydro-framework-0.0.4.tgz#8b6b7a9c75cc4a27d9342449aabf1b962ca87389"
1129+
integrity sha512-yC1qFm2uvDZqm1whKkOZk9hmf72QpKZD/Zl8ufkJBrfTDvmQbgaMZHkk3489+eAVPHWsUInfPsnZuJBVzUjbLw==
11691130
dependencies:
11701131
bson "^4.0.2"
1171-
gridfs "^1.0.0"
1132+
gridfs-stream "^1.1.1"
11721133
js-yaml "^3.13.1"
11731134
koa "^2.8.2"
11741135
koa-body "^4.1.1"
11751136
koa-morgan "^1.0.1"
1176-
koa-nunjucks-2 "^3.0.2"
11771137
koa-router "^7.4.0"
11781138
koa-send "^5.0.0"
11791139
koa-static "^5.0.0"
11801140
lodash "^4.17.15"
11811141
mongodb "^3.3.2"
11821142
nodemailer "^6.3.1"
1143+
nunjucks "^3.2.0"
11831144
socket.io "^2.3.0"
11841145

11851146
[email protected], iconv-lite@^0.4.24, iconv-lite@^0.4.4:
@@ -1466,13 +1427,6 @@ json-stable-stringify-without-jsonify@^1.0.1:
14661427
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
14671428
integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
14681429

1469-
jsonfile@^4.0.0:
1470-
version "4.0.0"
1471-
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
1472-
integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
1473-
optionalDependencies:
1474-
graceful-fs "^4.1.6"
1475-
14761430
keygrip@~1.1.0:
14771431
version "1.1.0"
14781432
resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
@@ -1540,18 +1494,6 @@ koa-morgan@^1.0.1:
15401494
dependencies:
15411495
morgan "^1.6.1"
15421496

1543-
koa-nunjucks-2@^3.0.2:
1544-
version "3.0.2"
1545-
resolved "https://registry.yarnpkg.com/koa-nunjucks-2/-/koa-nunjucks-2-3.0.2.tgz#78b15a64a54d9234ae82cccf4a1bdbb966730208"
1546-
integrity sha512-KDiCRr8eWgMH1bMWb6b7cvoyWei6Kxtju7okHTK/yVmcNqNx+Kb+h+5CXXwNZhwEkb3XFgUc5nqYgSWLAPfwvA==
1547-
dependencies:
1548-
babel-runtime "^6.9.2"
1549-
bluebird "^3.1.1"
1550-
lodash.defaults "^4.0.0"
1551-
lodash.difference "^4.0.1"
1552-
lodash.merge "^4.0.1"
1553-
nunjucks "^3.0.0"
1554-
15551497
koa-router@^7.4.0:
15561498
version "7.4.0"
15571499
resolved "https://registry.yarnpkg.com/koa-router/-/koa-router-7.4.0.tgz#aee1f7adc02d5cb31d7d67465c9eacc825e8c5e0"
@@ -1627,21 +1569,6 @@ levn@^0.3.0, levn@~0.3.0:
16271569
prelude-ls "~1.1.2"
16281570
type-check "~0.3.2"
16291571

1630-
lodash.defaults@^4.0.0:
1631-
version "4.2.0"
1632-
resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
1633-
integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=
1634-
1635-
lodash.difference@^4.0.1:
1636-
version "4.5.0"
1637-
resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c"
1638-
integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=
1639-
1640-
lodash.merge@^4.0.1:
1641-
version "4.6.2"
1642-
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
1643-
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
1644-
16451572
lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15:
16461573
version "4.17.15"
16471574
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
@@ -1923,7 +1850,7 @@ number-is-nan@^1.0.0:
19231850
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
19241851
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
19251852

1926-
nunjucks@^3.0.0:
1853+
nunjucks@^3.2.0:
19271854
version "3.2.0"
19281855
resolved "https://registry.yarnpkg.com/nunjucks/-/nunjucks-3.2.0.tgz#53e95f43c9555e822e8950008a201b1002d49933"
19291856
integrity sha512-YS/qEQ6N7qCnUdm6EoYRBfJUdWNT0PpKbbRnogV2XyXbBm2STIP1O6yrdZHgwMVK7fIYUx7i8+yatEixnXSB1w==
@@ -2114,9 +2041,9 @@ punycode@^2.1.0:
21142041
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
21152042

21162043
qs@^6.4.0:
2117-
version "6.9.0"
2118-
resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.0.tgz#d1297e2a049c53119cb49cca366adbbacc80b409"
2119-
integrity sha512-27RP4UotQORTpmNQDX8BHPukOnBP3p1uUJY5UnDhaJB+rMt9iMsok724XL+UHU23bEFOHRMQ2ZhI99qOWUMGFA==
2044+
version "6.9.1"
2045+
resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz#20082c65cb78223635ab1a9eaca8875a29bf8ec9"
2046+
integrity sha512-Cxm7/SS/y/Z3MHWSxXb8lIFqgqBowP5JMlTUFyJN88y0SGQhVmZnqFK/PeuMX9LzUyWsqqhNxIyg0jlzq946yA==
21202047

21212048
raw-body@^2.2.0:
21222049
version "2.4.1"
@@ -2160,11 +2087,6 @@ readdirp@^2.2.1:
21602087
micromatch "^3.1.10"
21612088
readable-stream "^2.0.2"
21622089

2163-
regenerator-runtime@^0.11.0:
2164-
version "0.11.1"
2165-
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
2166-
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
2167-
21682090
regex-not@^1.0.0, regex-not@^1.0.2:
21692091
version "1.0.2"
21702092
resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
@@ -2693,11 +2615,6 @@ union-value@^1.0.0:
26932615
is-extendable "^0.1.1"
26942616
set-value "^2.0.1"
26952617

2696-
universalify@^0.1.0:
2697-
version "0.1.2"
2698-
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
2699-
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
2700-
27012618
27022619
version "1.0.0"
27032620
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"

0 commit comments

Comments
 (0)