Compare commits
145 Commits
Author | SHA1 | Date |
---|---|---|
|
c0a714d2b0 | |
|
91d5095890 | |
|
7851e64fd5 | |
|
12ca58d43e | |
|
845593b2ec | |
|
35e8b14a34 | |
|
df6abd39aa | |
|
3d2223f063 | |
|
b6deb56fc0 | |
|
ec2beb56a0 | |
|
0ee2806cca | |
|
9467fc5699 | |
|
334a92a242 | |
|
4a96b99619 | |
|
4843da3c26 | |
|
939613d55c | |
|
22340d32e8 | |
|
2c99565b13 | |
|
75a20e54cb | |
|
e2764c938d | |
|
294f1db552 | |
|
3234c45047 | |
|
25abfdf66b | |
|
cf8f04c01a | |
|
1003154311 | |
|
b136278031 | |
|
1d91f8efba | |
|
b3c68f72ba | |
|
836da0c6d4 | |
|
b351301bea | |
|
9532cfeda8 | |
|
24fcb05f70 | |
|
1f176e0256 | |
|
9de759805a | |
|
2fffad3c60 | |
|
79aec147e3 | |
|
9c6f74c14f | |
|
03073f5436 | |
|
7c23c302c6 | |
|
de05260298 | |
|
3c02c353e7 | |
|
9e6c52648b | |
|
82f3dc923f | |
|
a3665b5476 | |
|
f34a748d7f | |
|
2538f1838a | |
|
712071865f | |
|
2d64c32598 | |
|
b99825b01a | |
|
818e99e973 | |
|
eea8eb2104 | |
|
e6ca8f10fc | |
|
34c2f4326f | |
|
4f6a4b3efa | |
|
96ea3ca182 | |
|
1e7d5cc122 | |
|
6e0ca3131e | |
|
c61e290844 | |
|
e4f637093c | |
|
ab3a9e5d7c | |
|
141a340aad | |
|
68ad467e4d | |
|
557d0de60a | |
|
8eb7d150ab | |
|
fea52653f1 | |
|
98cfc802b6 | |
|
f0108d52f4 | |
|
b216c89fe7 | |
|
4fb2326ef6 | |
|
694edc7afe | |
|
1f308ec3a5 | |
|
f33c1e556a | |
|
118214a906 | |
|
72d3cac89f | |
|
1a9122cf52 | |
|
d056363ebe | |
|
40ac545d5a | |
|
2c996a14e2 | |
|
ac83629824 | |
|
859df0359d | |
|
67aaf50f26 | |
|
c0b3e27d18 | |
|
d3b5571022 | |
|
631eaff9f7 | |
|
ce1004a94f | |
|
ee1bdba661 | |
|
9dafb33896 | |
|
a5dc9179d6 | |
|
6146534990 | |
|
0c04cd7f8f | |
|
229b133777 | |
|
9fb39b0af2 | |
|
14c4cf68ff | |
|
21e2d81b06 | |
|
f6317d7fbc | |
|
2291ec20bf | |
|
e099ff572f | |
|
4a7b1d60d5 | |
|
16fa17a2d4 | |
|
66022e4141 | |
|
b425617a7d | |
|
bb69907447 | |
|
c9fce51ef6 | |
|
1be757bbc1 | |
|
8e46b6c6f1 | |
|
421d15d19a | |
|
18118d021e | |
|
a24c8d3ac3 | |
|
bf4b219234 | |
|
f9c9e20339 | |
|
8ea5e188a0 | |
|
1d46b301f5 | |
|
35a6cdd806 | |
|
36e213bbbf | |
|
b2fa02d4eb | |
|
78abec80fd | |
|
ac604f4e08 | |
|
e902ed5ec4 | |
|
4eef29bd05 | |
|
0adb9b7cf9 | |
|
ccbcece0ab | |
|
8ad9000766 | |
|
37eab6f33d | |
|
55fd5a0dcb | |
|
7a7a2f6ceb | |
|
6259fdd766 | |
|
6b43057328 | |
|
0f37c06fc6 | |
|
4c781dd101 | |
|
f4f43dc227 | |
|
93856f07db | |
|
d2aa29253e | |
|
6ab20db473 | |
|
d4667a0736 | |
|
c2822893ca | |
|
e1804a9918 | |
|
22cf01727b | |
|
8b0e2d91d3 | |
|
d279556457 | |
|
3be0c2d1ca | |
|
a997b3ba21 | |
|
06123a2301 | |
|
e23ed09b25 | |
|
ee5dcd7fa8 | |
|
854a9720f5 |
|
@ -4,7 +4,7 @@
|
|||
dist/
|
||||
tmp/
|
||||
etc/
|
||||
api/apib/documentation.apib
|
||||
server/apib/documentation.apib
|
||||
|
||||
# dependencies
|
||||
node_modules
|
||||
|
@ -45,11 +45,11 @@ Thumbs.db
|
|||
.directory
|
||||
|
||||
# Internal Data
|
||||
public/
|
||||
mongodb-data/
|
||||
api/resource/
|
||||
api/apib/dredd/data/tmp-resource
|
||||
/public/
|
||||
server/resource/
|
||||
server/apib/dredd/data/tmp-resource
|
||||
backup/
|
||||
!backup.sh
|
||||
|
||||
# System
|
||||
.npm/
|
||||
|
@ -59,4 +59,3 @@ backup/
|
|||
.cache/motd.legal-displayed
|
||||
.profile
|
||||
.ssh/
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
# Operation Pandora Trigger Commandcenter
|
||||
|
||||
A [MEAN Application](http://mean.io/) created for [operation-pandora.com](https://www.operation-pandora.com) Arma3 Community
|
||||
A [MEAN Stack](http://mean.io/) application created for [https://www.opt4.net](https://www.opt4.net) Arma3 Community
|
||||
|
||||
|
||||
## Installation
|
||||
|
@ -53,7 +53,7 @@ To compile the Angular code and afterwards start the Express server with `nodemo
|
|||
npm run dev
|
||||
```
|
||||
|
||||
Any changes on `api` code will trigger an automatic restart of the Express server.
|
||||
Any changes on `server` code will trigger an automatic restart of the Express server.
|
||||
|
||||
Changes on `static` code can be submitted with
|
||||
|
||||
|
@ -69,10 +69,10 @@ _TODO_
|
|||
## License Information
|
||||
|
||||
|
||||
### Express API (`/api`)
|
||||
### NodeJS Express Server (`/server`)
|
||||
published under [CC BY-SA 4.0 License](https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt) \
|
||||
Main concept for API Server, pagination and MongoDB usage by [Prof. Dr.-Ing. Johannes Konert](https://prof.beuth-hochschule.de/konert/) \
|
||||
All endpoints, signature image builder and Arma3 RPT-Log parsing by [Florian Hartwich](https://de.linkedin.com/in/florian-hartwich-b67b02125)
|
||||
|
||||
### Angular 5 Frontend (`/static`)
|
||||
### Angular 6 Frontend (`/static`)
|
||||
published under [MIT License](https://opensource.org/licenses/MIT)
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca4"},"name":"Pumarang","fraction":"BLUFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.656119805032149e+16,"respawn":1,"kill":0,"vehicle":0,"friendlyFire":0,"death":1,"revive":0,"flagTouch":0,"sort":-2,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca5"},"name":"Mercurat","fraction":"BLUFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.65611982788425e+16,"respawn":0,"kill":0,"vehicle":0,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca6"},"name":"KalleK","fraction":"OPFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.656119797767603e+16,"respawn":0,"kill":0,"vehicle":0,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca7"},"name":"MAPster","fraction":"OPFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.656119800988213e+16,"respawn":0,"kill":0,"vehicle":0,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca8"},"name":"LyrikEmu","fraction":"BLUFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.65611982189104e+16,"respawn":0,"kill":0,"vehicle":0,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca9"},"name":"Philipp","fraction":"OPFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.656119804179206e+16,"respawn":0,"kill":0,"vehicle":0,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5caa"},"name":"Wiesl","fraction":"BLUFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.65611980596481e+16,"respawn":0,"kill":1,"vehicle":0,"friendlyFire":1,"death":0,"revive":1,"flagTouch":1,"sort":2,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5cab"},"name":"Murda]X[","fraction":"OPFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.656119797112163e+16,"respawn":0,"kill":0,"vehicle":1,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cbc"},"name":"Pumarang","fraction":"BLUFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.656119805032149e+16,"respawn":1,"kill":0,"vehicle":0,"friendlyFire":0,"death":1,"revive":0,"flagTouch":0,"sort":-2,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cbd"},"name":"Mercurat","fraction":"BLUFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.65611982788425e+16,"respawn":0,"kill":0,"vehicle":0,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cbe"},"name":"KalleK","fraction":"OPFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.656119797767603e+16,"respawn":0,"kill":0,"vehicle":0,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cc1"},"name":"Philipp","fraction":"OPFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.656119804179206e+16,"respawn":0,"kill":0,"vehicle":0,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cc0"},"name":"LyrikEmu","fraction":"BLUFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.65611982189104e+16,"respawn":0,"kill":0,"vehicle":0,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cc2"},"name":"Wiesl","fraction":"BLUFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.65611980596481e+16,"respawn":0,"kill":1,"vehicle":0,"friendlyFire":1,"death":0,"revive":1,"flagTouch":1,"sort":2,"timestamp":{"$date":"2018-03-31T10:41:28.460Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.460Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cc3"},"name":"Murda]X[","fraction":"OPFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.656119797112163e+16,"respawn":0,"kill":0,"vehicle":1,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.460Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.460Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cbf"},"name":"MAPster","fraction":"OPFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.656119800988213e+16,"respawn":0,"kill":0,"vehicle":0,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
|
@ -1,86 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
// modules
|
||||
const express = require('express');
|
||||
|
||||
// HTTP status codes by name
|
||||
const codes = require('./http-codes');
|
||||
|
||||
const routerHandling = require('../middleware/router-handling');
|
||||
|
||||
// Mongoose Model using mongoDB
|
||||
const AppUserModel = require('../models/app-user');
|
||||
|
||||
const account = new express.Router();
|
||||
|
||||
account.route('/')
|
||||
.get((req, res, next) => {
|
||||
AppUserModel.find({}, {}, {sort: {username: 1}}).populate('squad').exec((err, items) => {
|
||||
if (err) {
|
||||
err.status = codes.servererror;
|
||||
return next(err);
|
||||
}
|
||||
res.locals.items = items;
|
||||
res.locals.processed = true;
|
||||
next();
|
||||
});
|
||||
})
|
||||
.all(
|
||||
routerHandling.httpMethodNotAllowed
|
||||
);
|
||||
|
||||
// routes **********************
|
||||
account.route('/:id')
|
||||
.patch((req, res, next) => {
|
||||
if (!req.body || (req.body._id && req.body._id !== req.params.id)) {
|
||||
// little bit different as in PUT. :id does not need to be in data, but if the _id and url id must match
|
||||
const err = new Error('id of PATCH resource and send JSON body are not equal ' + req.params.id + ' ' +
|
||||
req.body._id);
|
||||
err.status = codes.notfound;
|
||||
next(err);
|
||||
return; // prevent node to process this function further after next() has finished.
|
||||
}
|
||||
|
||||
// increment version manually as we do not use .save(.)
|
||||
req.body.updatedAt = new Date();
|
||||
req.body.$inc = {__v: 1};
|
||||
|
||||
// PATCH is easier with mongoose than PUT. You simply update by all data that comes from outside. no need to
|
||||
// reset attributes that are missing.
|
||||
AppUserModel.findByIdAndUpdate(req.params.id, req.body, {new: true}).populate('squad').exec((err, item) => {
|
||||
if (err) {
|
||||
err.status = codes.wrongrequest;
|
||||
} else if (!item) {
|
||||
err = new Error('appUser not found');
|
||||
err.status = codes.notfound;
|
||||
} else {
|
||||
res.locals.items = item;
|
||||
}
|
||||
next(err);
|
||||
});
|
||||
})
|
||||
|
||||
.delete((req, res, next) => {
|
||||
AppUserModel.findByIdAndRemove(req.params.id, (err, item) => {
|
||||
if (err) {
|
||||
err.status = codes.wrongrequest;
|
||||
} else if (!item) {
|
||||
err = new Error('item not found');
|
||||
err.status = codes.notfound;
|
||||
}
|
||||
// we don't set res.locals.items and thus it will send a 204 (no content) at the end. see last handler
|
||||
// user.use(..)
|
||||
res.locals.processed = true;
|
||||
next(err); // this works because err is in normal case undefined and that is the same as no parameter
|
||||
});
|
||||
})
|
||||
|
||||
.all(
|
||||
routerHandling.httpMethodNotAllowed
|
||||
);
|
||||
|
||||
// this middleware function can be used, if you like or remove it
|
||||
// it looks for object(s) in res.locals.items and if they exist, they are send to the client as json
|
||||
account.use(routerHandling.emptyResponse);
|
||||
|
||||
module.exports = account;
|
|
@ -1,101 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
// modules
|
||||
const express = require('express');
|
||||
|
||||
// HTTP status codes by name
|
||||
const codes = require('./http-codes');
|
||||
|
||||
const apiAuthenticationMiddleware = require('../middleware/auth-middleware');
|
||||
const checkMT = require('../middleware/permission-check').checkMT;
|
||||
|
||||
const routerHandling = require('../middleware/router-handling');
|
||||
const idValidator = require('../middleware/validators').idValidator;
|
||||
|
||||
// Mongoose Model using mongoDB
|
||||
const CampaignModel = require('../models/campaign');
|
||||
const WarModel = require('../models/war');
|
||||
|
||||
// util
|
||||
const genericGetById = require('./_generic').genericGetById;
|
||||
const genericPatch = require('./_generic').genericPatch;
|
||||
|
||||
const campaigns = new express.Router();
|
||||
|
||||
// routes **********************
|
||||
campaigns.route('/')
|
||||
.get((req, res, next) => {
|
||||
CampaignModel.find({}, {}, {
|
||||
sort: {
|
||||
timestamp: 'desc',
|
||||
},
|
||||
}, (err, items) => {
|
||||
if (err) {
|
||||
err.status = codes.servererror;
|
||||
return next(err);
|
||||
}
|
||||
if (items && items.length > 0) {
|
||||
res.locals.items = items;
|
||||
} else {
|
||||
res.locals.items = [];
|
||||
}
|
||||
res.locals.processed = true;
|
||||
next();
|
||||
});
|
||||
})
|
||||
|
||||
.post(apiAuthenticationMiddleware, checkMT, (req, res, next) => {
|
||||
const campaign = new CampaignModel(req.body);
|
||||
// timestamp and default are set automatically by Mongoose Schema Validation
|
||||
campaign.save((err) => {
|
||||
if (err) {
|
||||
err.status = codes.wrongrequest;
|
||||
err.message += ' in fields: ' + Object.getOwnPropertyNames(err.errors);
|
||||
return next(err);
|
||||
}
|
||||
res.status(codes.created);
|
||||
res.locals.items = campaign;
|
||||
next();
|
||||
});
|
||||
})
|
||||
|
||||
.all(
|
||||
routerHandling.httpMethodNotAllowed
|
||||
);
|
||||
|
||||
campaigns.route('/:id')
|
||||
.get(idValidator, (req, res, next) => {
|
||||
return genericGetById(req, res, next, CampaignModel);
|
||||
})
|
||||
|
||||
.patch(apiAuthenticationMiddleware, checkMT, (req, res, next) => {
|
||||
return genericPatch(req, res, next, CampaignModel);
|
||||
})
|
||||
|
||||
.delete((req, res, next) => {
|
||||
CampaignModel.findByIdAndRemove(req.params.id, (err, item) => {
|
||||
if (err) {
|
||||
err.status = codes.wrongrequest;
|
||||
return next(err);
|
||||
} else if (!item) {
|
||||
err = new Error('item not found');
|
||||
err.status = codes.notfound;
|
||||
return next(err);
|
||||
}
|
||||
WarModel.find({campaign: req.params.id}).remove().exec();
|
||||
// TODO: remove all the war logs from fs here!!!
|
||||
// TODO: remove all LOG entries from DB!!!
|
||||
res.locals.processed = true;
|
||||
next();
|
||||
});
|
||||
})
|
||||
|
||||
.all(
|
||||
routerHandling.httpMethodNotAllowed
|
||||
);
|
||||
|
||||
// this middleware function can be used, if you like or remove it
|
||||
// it looks for object(s) in res.locals.items and if they exist, they are send to the client as json
|
||||
campaigns.use(routerHandling.emptyResponse);
|
||||
|
||||
module.exports = campaigns;
|
|
@ -1,161 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
// modules
|
||||
const fs = require('fs');
|
||||
const express = require('express');
|
||||
const multer = require('multer');
|
||||
const storage = multer.memoryStorage();
|
||||
const upload = multer({storage: storage});
|
||||
|
||||
// HTTP status codes by name
|
||||
const codes = require('./http-codes');
|
||||
|
||||
const apiAuthenticationMiddleware = require('../middleware/auth-middleware');
|
||||
const checkHl = require('../middleware/permission-check').checkHl;
|
||||
|
||||
const routerHandling = require('../middleware/router-handling');
|
||||
const idValidator = require('../middleware/validators').idValidator;
|
||||
const resourceLocation = require('../middleware/resource-location').resourceLocation().concat('/decoration/');
|
||||
|
||||
// Mongoose Model using mongoDB
|
||||
const DecorationModel = require('../models/decoration');
|
||||
const AwardingsModel = require('../models/awarding');
|
||||
|
||||
// util
|
||||
const genericGetById = require('./_generic').genericGetById;
|
||||
|
||||
const decoration = new express.Router();
|
||||
|
||||
// routes **********************
|
||||
decoration.route('/')
|
||||
.get((req, res, next) => {
|
||||
const filter = {};
|
||||
if (req.query.fractFilter) {
|
||||
filter.fraction = req.query.fractFilter.toUpperCase();
|
||||
}
|
||||
if (req.query.q) {
|
||||
filter.name = {$regex: req.query.q, $options: 'i'};
|
||||
}
|
||||
DecorationModel.find(filter, {}, {
|
||||
sort: {
|
||||
fraction: 'asc',
|
||||
isMedal: 'asc',
|
||||
sortingNumber: 'asc',
|
||||
name: 'asc',
|
||||
},
|
||||
}, (err, items) => {
|
||||
if (err) {
|
||||
err.status = codes.servererror;
|
||||
return next(err);
|
||||
}
|
||||
if (items && items.length > 0) {
|
||||
res.locals.items = items;
|
||||
} else {
|
||||
res.locals.items = [];
|
||||
}
|
||||
res.locals.processed = true;
|
||||
next();
|
||||
});
|
||||
})
|
||||
|
||||
.post(apiAuthenticationMiddleware, checkHl, upload.single('image'), (req, res, next) => {
|
||||
const decoration = new DecorationModel(req.body);
|
||||
// timestamp and default are set automatically by Mongoose Schema Validation
|
||||
decoration.save((err) => {
|
||||
if (err) {
|
||||
err.status = codes.wrongrequest;
|
||||
err.message += ' in fields: ' + Object.getOwnPropertyNames(err.errors);
|
||||
return next(err);
|
||||
}
|
||||
res.status(codes.created);
|
||||
res.locals.items = decoration;
|
||||
fs.appendFile(resourceLocation + decoration._id + '.png',
|
||||
new Buffer(req.file.buffer),
|
||||
(err) => {
|
||||
if (err) next(err);
|
||||
});
|
||||
next();
|
||||
});
|
||||
})
|
||||
|
||||
.all(
|
||||
routerHandling.httpMethodNotAllowed
|
||||
);
|
||||
|
||||
decoration.route('/:id')
|
||||
.get(idValidator, (req, res, next) => {
|
||||
return genericGetById(req, res, next, DecorationModel);
|
||||
})
|
||||
|
||||
.patch(apiAuthenticationMiddleware, checkHl, upload.single('image'), (req, res, next) => {
|
||||
if (!req.body || (req.body._id && req.body._id !== req.params.id)) {
|
||||
// little bit different as in PUT. :id does not need to be in data, but if the _id and url id must match
|
||||
const err = new Error('id of PATCH resource and send JSON body are not equal ' + req.params.id + ' ' +
|
||||
req.body._id);
|
||||
err.status = codes.notfound;
|
||||
next(err);
|
||||
return; // prevent node to process this function further after next() has finished.
|
||||
}
|
||||
|
||||
// optional task 3: increment version manually as we do not use .save(.)
|
||||
req.body.updatedAt = new Date();
|
||||
req.body.$inc = {__v: 1};
|
||||
|
||||
if (req.file) {
|
||||
const file = resourceLocation + req.params.id + '.png';
|
||||
fs.unlink(file, (err) => {
|
||||
if (err) next(err);
|
||||
fs.appendFile(file, new Buffer(req.file.buffer), (err) => {
|
||||
if (err) next(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// PATCH is easier with mongoose than PUT. You simply update by all data that comes from outside. no need
|
||||
// to reset attributes that are missing.
|
||||
DecorationModel.findByIdAndUpdate(req.params.id, req.body, {new: true}, (err, item) => {
|
||||
if (err) {
|
||||
err.status = codes.wrongrequest;
|
||||
} else if (!item) {
|
||||
err = new Error('item not found');
|
||||
err.status = codes.notfound;
|
||||
} else {
|
||||
res.locals.items = item;
|
||||
}
|
||||
next(err);
|
||||
});
|
||||
})
|
||||
|
||||
.delete(apiAuthenticationMiddleware, checkHl, (req, res, next) => {
|
||||
const id = req.params.id;
|
||||
DecorationModel.findByIdAndRemove(id, (err, item) => {
|
||||
if (err) {
|
||||
err.status = codes.wrongrequest;
|
||||
} else if (!item) {
|
||||
err = new Error('item not found');
|
||||
err.status = codes.notfound;
|
||||
}
|
||||
|
||||
// deleted all awardings linked to this decoration
|
||||
AwardingsModel.find({decorationId: id}).remove().exec();
|
||||
|
||||
// delete graphic
|
||||
fs.unlink(resourceLocation.concat(id).concat('.png'),
|
||||
(err) => {
|
||||
// we don't set res.locals.items and thus it will send a 204 (no content) at the end. see last handler
|
||||
res.locals.processed = true;
|
||||
next(err);
|
||||
});
|
||||
});
|
||||
})
|
||||
|
||||
.all(
|
||||
routerHandling.httpMethodNotAllowed
|
||||
);
|
||||
|
||||
// this middleware function can be used, if you like or remove it
|
||||
// it looks for object(s) in res.locals.items and if they exist, they are send to the client as json
|
||||
decoration.use(routerHandling.emptyResponse);
|
||||
|
||||
|
||||
module.exports = decoration;
|
|
@ -1,146 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
// modules
|
||||
const express = require('express');
|
||||
|
||||
// HTTP status codes by name
|
||||
const codes = require('./http-codes');
|
||||
|
||||
const routerHandling = require('../middleware/router-handling');
|
||||
|
||||
// Mongoose Model using mongoDB
|
||||
const CampaignModel = require('../models/campaign');
|
||||
const PlayerModel = require('../models/player');
|
||||
const WarModel = require('../models/war');
|
||||
|
||||
// Util
|
||||
const isSteamUUID = require('../tools/util').isSteamUUID;
|
||||
|
||||
const campaignPlayer = new express.Router();
|
||||
|
||||
// routes **********************
|
||||
campaignPlayer.route('/ranking/:campaignId')
|
||||
.get((req, res, next) => {
|
||||
WarModel.find({campaign: req.params.campaignId}, '_id', (err, wars) => {
|
||||
if (err) return next(err);
|
||||
const warIds = wars.map((obj) => {
|
||||
return obj._id;
|
||||
});
|
||||
PlayerModel.find({warId: {'$in': warIds}}, (err, items) => {
|
||||
if (err) return next(err);
|
||||
if (!items || items.length === 0) {
|
||||
const err = new Error('No players for given campaignId');
|
||||
err.status = codes.notfound;
|
||||
return next(err);
|
||||
}
|
||||
|
||||
const rankingItems = [];
|
||||
|
||||
// check only first player to have valid steamUUID - then decide if tracked by name or by ID
|
||||
const usesUUID = isSteamUUID(items[0].steamUUID);
|
||||
|
||||
new Set(items.map(usesUUID ? (x) => x.steamUUID : (x) => x.name))
|
||||
.forEach((player) => {
|
||||
const playerInstances = items.filter(
|
||||
usesUUID ? (p) => p.steamUUID === player : (p) => p.name === player);
|
||||
const resItem = {
|
||||
name: usesUUID ? playerInstances[playerInstances.length - 1].name : player,
|
||||
kill: 0,
|
||||
vehicleLight: 0,
|
||||
vehicleHeavy: 0,
|
||||
vehicleAir: 0,
|
||||
death: 0,
|
||||
friendlyFire: 0,
|
||||
revive: 0,
|
||||
respawn: 0,
|
||||
flagTouch: 0,
|
||||
};
|
||||
for (let i = 0; i < playerInstances.length; i++) {
|
||||
resItem.kill += playerInstances[i].kill;
|
||||
resItem.death += playerInstances[i].death;
|
||||
resItem.friendlyFire += playerInstances[i].friendlyFire;
|
||||
resItem.vehicleLight += playerInstances[i].vehicleLight;
|
||||
resItem.vehicleHeavy += playerInstances[i].vehicleHeavy;
|
||||
resItem.vehicleAir += playerInstances[i].vehicleAir;
|
||||
resItem.revive += playerInstances[i].revive;
|
||||
resItem.respawn += playerInstances[i].respawn;
|
||||
resItem.flagTouch += playerInstances[i].flagTouch;
|
||||
}
|
||||
resItem.fraction = playerInstances[playerInstances.length - 1].fraction;
|
||||
rankingItems.push(resItem);
|
||||
});
|
||||
|
||||
const getSortedField = (fieldName) => {
|
||||
let num = 1;
|
||||
rankingItems.sort((a, b) => b[fieldName] - a[fieldName]);
|
||||
const res = JSON.parse(JSON.stringify(rankingItems));
|
||||
for (const entity of res) {
|
||||
entity.num = num++;
|
||||
}
|
||||
return res;
|
||||
};
|
||||
|
||||
res.locals.items = {
|
||||
kill: getSortedField('kill'),
|
||||
death: getSortedField('death'),
|
||||
friendlyFire: getSortedField('friendlyFire'),
|
||||
vehicleLight: getSortedField('vehicleLight'),
|
||||
vehicleHeavy: getSortedField('vehicleHeavy'),
|
||||
vehicleAir: getSortedField('vehicleAir'),
|
||||
revive: getSortedField('revive'),
|
||||
respawn: getSortedField('respawn'),
|
||||
flagTouch: getSortedField('flagTouch'),
|
||||
};
|
||||
next();
|
||||
});
|
||||
});
|
||||
})
|
||||
|
||||
.all(
|
||||
routerHandling.httpMethodNotAllowed
|
||||
);
|
||||
|
||||
campaignPlayer.route('/single/:campaignId/:playerId')
|
||||
.get((req, res, next) => {
|
||||
CampaignModel.findById(req.params.campaignId, (err, campaign) => {
|
||||
if (err) return next(err);
|
||||
WarModel.find({campaign: req.params.campaignId}, '_id', (err, wars) => {
|
||||
if (err) return next(err);
|
||||
const warIds = wars.map((obj) => {
|
||||
return obj._id;
|
||||
});
|
||||
|
||||
// find by player name until v1.6.12, afterwards by SteamUUID
|
||||
const playerId = req.params.playerId;
|
||||
const filter = {};
|
||||
filter[isSteamUUID(playerId) ? 'steamUUID' : 'name'] = playerId;
|
||||
filter['warId'] = {'$in': warIds};
|
||||
|
||||
PlayerModel.find(filter)
|
||||
.populate('warId')
|
||||
.exec((err, items) => {
|
||||
if (err) return next(err);
|
||||
if (!items || items.length === 0) {
|
||||
const err = new Error('Unknown player id');
|
||||
err.status = codes.notfound;
|
||||
return next(err);
|
||||
}
|
||||
res.locals.items = {
|
||||
name: items[items.length - 1].name,
|
||||
campaign: campaign,
|
||||
players: items,
|
||||
};
|
||||
next();
|
||||
});
|
||||
});
|
||||
});
|
||||
})
|
||||
|
||||
.all(
|
||||
routerHandling.httpMethodNotAllowed
|
||||
);
|
||||
|
||||
|
||||
campaignPlayer.use(routerHandling.emptyResponse);
|
||||
|
||||
module.exports = campaignPlayer;
|
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 61 KiB |
Before Width: | Height: | Size: 10 KiB |
|
@ -1,813 +0,0 @@
|
|||
info face="DejaVu Sans" size=19 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=-2,-2
|
||||
common lineHeight=23 base=18 scaleW=512 scaleH=512 pages=1 packed=0
|
||||
page id=0 file="DEVAJU_SANS_19.png"
|
||||
chars count=193
|
||||
char id=0 x=298 y=0 width=13 height=20 xoffset=-1 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=10 x=0 y=0 width=22 height=22 xoffset=-1 yoffset=-1 xadvance=19 page=0 chnl=0
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=17 xadvance=6 page=0 chnl=0
|
||||
char id=33 x=500 y=42 width=4 height=16 xoffset=2 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=34 x=67 y=75 width=7 height=7 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=35 x=40 y=59 width=15 height=16 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=36 x=287 y=0 width=11 height=20 xoffset=1 yoffset=2 xadvance=13 page=0 chnl=0
|
||||
char id=37 x=22 y=59 width=18 height=16 xoffset=0 yoffset=3 xadvance=18 page=0 chnl=0
|
||||
char id=38 x=55 y=59 width=15 height=16 xoffset=0 yoffset=3 xadvance=14 page=0 chnl=0
|
||||
char id=39 x=507 y=59 width=4 height=7 xoffset=1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=40 x=240 y=0 width=7 height=20 xoffset=1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=41 x=247 y=0 width=7 height=20 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=42 x=489 y=59 width=11 height=11 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=43 x=199 y=59 width=14 height=14 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=44 x=74 y=75 width=5 height=7 xoffset=0 yoffset=14 xadvance=6 page=0 chnl=0
|
||||
char id=45 x=119 y=75 width=7 height=4 xoffset=0 yoffset=10 xadvance=7 page=0 chnl=0
|
||||
char id=46 x=115 y=75 width=4 height=5 xoffset=1 yoffset=14 xadvance=6 page=0 chnl=0
|
||||
char id=47 x=51 y=22 width=9 height=18 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=48 x=0 y=59 width=12 height=16 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=49 x=396 y=42 width=11 height=16 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0
|
||||
char id=50 x=407 y=42 width=11 height=16 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=51 x=418 y=42 width=11 height=16 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=52 x=429 y=42 width=13 height=16 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=53 x=442 y=42 width=11 height=16 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=54 x=453 y=42 width=12 height=16 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=55 x=465 y=42 width=11 height=16 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0
|
||||
char id=56 x=476 y=42 width=12 height=16 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=57 x=488 y=42 width=12 height=16 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=58 x=430 y=59 width=4 height=12 xoffset=1 yoffset=7 xadvance=6 page=0 chnl=0
|
||||
char id=59 x=152 y=59 width=5 height=15 xoffset=0 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=60 x=171 y=59 width=14 height=14 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=61 x=30 y=75 width=14 height=8 xoffset=1 yoffset=8 xadvance=16 page=0 chnl=0
|
||||
char id=62 x=185 y=59 width=14 height=14 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=63 x=12 y=59 width=10 height=16 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=64 x=268 y=0 width=19 height=20 xoffset=0 yoffset=2 xadvance=19 page=0 chnl=0
|
||||
char id=65 x=78 y=42 width=15 height=16 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=0
|
||||
char id=66 x=93 y=42 width=12 height=16 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0
|
||||
char id=67 x=105 y=42 width=13 height=16 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
|
||||
char id=68 x=118 y=42 width=14 height=16 xoffset=1 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=69 x=132 y=42 width=11 height=16 xoffset=1 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=70 x=143 y=42 width=10 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=71 x=153 y=42 width=14 height=16 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=72 x=167 y=42 width=13 height=16 xoffset=1 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=73 x=504 y=22 width=4 height=16 xoffset=1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=74 x=233 y=0 width=7 height=20 xoffset=-2 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=75 x=180 y=42 width=13 height=16 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0
|
||||
char id=76 x=193 y=42 width=11 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=77 x=204 y=42 width=15 height=16 xoffset=1 yoffset=3 xadvance=17 page=0 chnl=0
|
||||
char id=78 x=219 y=42 width=13 height=16 xoffset=1 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=79 x=232 y=42 width=15 height=16 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=80 x=247 y=42 width=11 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=81 x=11 y=22 width=15 height=19 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=82 x=258 y=42 width=13 height=16 xoffset=1 yoffset=3 xadvance=13 page=0 chnl=0
|
||||
char id=83 x=271 y=42 width=12 height=16 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=84 x=283 y=42 width=14 height=16 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=85 x=297 y=42 width=13 height=16 xoffset=1 yoffset=3 xadvance=14 page=0 chnl=0
|
||||
char id=86 x=310 y=42 width=15 height=16 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=0
|
||||
char id=87 x=325 y=42 width=21 height=16 xoffset=-1 yoffset=3 xadvance=19 page=0 chnl=0
|
||||
char id=88 x=346 y=42 width=15 height=16 xoffset=-1 yoffset=3 xadvance=13 page=0 chnl=0
|
||||
char id=89 x=361 y=42 width=14 height=16 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=90 x=375 y=42 width=13 height=16 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
|
||||
char id=91 x=254 y=0 width=7 height=20 xoffset=1 yoffset=2 xadvance=8 page=0 chnl=0
|
||||
char id=92 x=60 y=22 width=9 height=18 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=93 x=261 y=0 width=7 height=20 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=94 x=16 y=75 width=14 height=8 xoffset=1 yoffset=2 xadvance=16 page=0 chnl=0
|
||||
char id=95 x=126 y=75 width=12 height=4 xoffset=-1 yoffset=20 xadvance=10 page=0 chnl=0
|
||||
char id=96 x=100 y=75 width=8 height=6 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
|
||||
char id=97 x=255 y=59 width=11 height=13 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0
|
||||
char id=98 x=308 y=22 width=11 height=17 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=99 x=266 y=59 width=10 height=13 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=100 x=319 y=22 width=11 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=101 x=276 y=59 width=12 height=13 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0
|
||||
char id=102 x=330 y=22 width=9 height=17 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
|
||||
char id=103 x=339 y=22 width=11 height=17 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0
|
||||
char id=104 x=350 y=22 width=11 height=17 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=105 x=361 y=22 width=4 height=17 xoffset=1 yoffset=2 xadvance=6 page=0 chnl=0
|
||||
char id=106 x=39 y=0 width=6 height=21 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=0
|
||||
char id=107 x=365 y=22 width=12 height=17 xoffset=1 yoffset=2 xadvance=11 page=0 chnl=0
|
||||
char id=108 x=377 y=22 width=4 height=17 xoffset=1 yoffset=2 xadvance=6 page=0 chnl=0
|
||||
char id=109 x=288 y=59 width=18 height=13 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=0
|
||||
char id=110 x=306 y=59 width=11 height=13 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
|
||||
char id=111 x=317 y=59 width=12 height=13 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0
|
||||
char id=112 x=381 y=22 width=11 height=17 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
|
||||
char id=113 x=392 y=22 width=11 height=17 xoffset=0 yoffset=6 xadvance=12 page=0 chnl=0
|
||||
char id=114 x=329 y=59 width=8 height=13 xoffset=1 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=115 x=337 y=59 width=10 height=13 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=116 x=388 y=42 width=8 height=16 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=117 x=347 y=59 width=11 height=13 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
|
||||
char id=118 x=358 y=59 width=13 height=13 xoffset=-1 yoffset=6 xadvance=11 page=0 chnl=0
|
||||
char id=119 x=371 y=59 width=17 height=13 xoffset=-1 yoffset=6 xadvance=16 page=0 chnl=0
|
||||
char id=120 x=388 y=59 width=13 height=13 xoffset=-1 yoffset=6 xadvance=11 page=0 chnl=0
|
||||
char id=121 x=403 y=22 width=13 height=17 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
|
||||
char id=122 x=401 y=59 width=10 height=13 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=123 x=45 y=0 width=10 height=21 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=124 x=22 y=0 width=4 height=22 xoffset=1 yoffset=2 xadvance=6 page=0 chnl=0
|
||||
char id=125 x=55 y=0 width=10 height=21 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=126 x=79 y=75 width=14 height=7 xoffset=1 yoffset=8 xadvance=16 page=0 chnl=0
|
||||
char id=160 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=17 xadvance=6 page=0 chnl=0
|
||||
char id=161 x=504 y=42 width=4 height=16 xoffset=2 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=162 x=501 y=0 width=10 height=19 xoffset=1 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=163 x=70 y=59 width=11 height=16 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=164 x=213 y=59 width=14 height=14 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=0
|
||||
char id=165 x=81 y=59 width=14 height=16 xoffset=-1 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=166 x=26 y=22 width=4 height=19 xoffset=1 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=167 x=30 y=22 width=10 height=19 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=168 x=138 y=75 width=8 height=4 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=169 x=416 y=22 width=16 height=17 xoffset=2 yoffset=2 xadvance=20 page=0 chnl=0
|
||||
char id=170 x=434 y=59 width=9 height=12 xoffset=-1 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=171 x=443 y=59 width=11 height=12 xoffset=0 yoffset=6 xadvance=11 page=0 chnl=0
|
||||
char id=172 x=44 y=75 width=15 height=8 xoffset=1 yoffset=8 xadvance=17 page=0 chnl=0
|
||||
char id=173 x=119 y=75 width=7 height=4 xoffset=0 yoffset=10 xadvance=7 page=0 chnl=0
|
||||
char id=174 x=432 y=22 width=16 height=17 xoffset=2 yoffset=2 xadvance=20 page=0 chnl=0
|
||||
char id=175 x=146 y=75 width=8 height=4 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
|
||||
char id=176 x=59 y=75 width=8 height=8 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=177 x=227 y=59 width=14 height=14 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=178 x=500 y=59 width=7 height=10 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=0
|
||||
char id=179 x=0 y=75 width=8 height=10 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=0
|
||||
char id=180 x=108 y=75 width=7 height=6 xoffset=2 yoffset=1 xadvance=10 page=0 chnl=0
|
||||
char id=181 x=448 y=22 width=12 height=17 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=0
|
||||
char id=182 x=40 y=22 width=11 height=19 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=183 x=115 y=75 width=4 height=5 xoffset=1 yoffset=8 xadvance=6 page=0 chnl=0
|
||||
char id=184 x=93 y=75 width=7 height=7 xoffset=1 yoffset=17 xadvance=10 page=0 chnl=0
|
||||
char id=185 x=8 y=75 width=8 height=10 xoffset=-1 yoffset=3 xadvance=7 page=0 chnl=0
|
||||
char id=186 x=454 y=59 width=10 height=12 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=187 x=464 y=59 width=11 height=12 xoffset=1 yoffset=6 xadvance=12 page=0 chnl=0
|
||||
char id=188 x=69 y=22 width=20 height=18 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=0
|
||||
char id=189 x=89 y=22 width=19 height=18 xoffset=-1 yoffset=2 xadvance=18 page=0 chnl=0
|
||||
char id=190 x=108 y=22 width=21 height=18 xoffset=-1 yoffset=2 xadvance=19 page=0 chnl=0
|
||||
char id=191 x=95 y=59 width=10 height=16 xoffset=0 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=192 x=311 y=0 width=15 height=20 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=0
|
||||
char id=193 x=326 y=0 width=15 height=20 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=0
|
||||
char id=194 x=341 y=0 width=15 height=20 xoffset=-1 yoffset=-1 xadvance=13 page=0 chnl=0
|
||||
char id=195 x=65 y=0 width=16 height=21 xoffset=-2 yoffset=-2 xadvance=12 page=0 chnl=0
|
||||
char id=196 x=356 y=0 width=16 height=20 xoffset=-1 yoffset=-1 xadvance=14 page=0 chnl=0
|
||||
char id=197 x=81 y=0 width=15 height=21 xoffset=-1 yoffset=-2 xadvance=13 page=0 chnl=0
|
||||
char id=198 x=105 y=59 width=20 height=16 xoffset=-2 yoffset=3 xadvance=18 page=0 chnl=0
|
||||
char id=199 x=372 y=0 width=13 height=20 xoffset=0 yoffset=3 xadvance=13 page=0 chnl=0
|
||||
char id=200 x=385 y=0 width=11 height=20 xoffset=1 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=201 x=396 y=0 width=11 height=20 xoffset=1 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=202 x=407 y=0 width=11 height=20 xoffset=1 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=203 x=418 y=0 width=11 height=20 xoffset=1 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=204 x=429 y=0 width=7 height=20 xoffset=-1 yoffset=-1 xadvance=6 page=0 chnl=0
|
||||
char id=205 x=436 y=0 width=7 height=20 xoffset=0 yoffset=-1 xadvance=6 page=0 chnl=0
|
||||
char id=206 x=443 y=0 width=8 height=20 xoffset=-1 yoffset=-1 xadvance=6 page=0 chnl=0
|
||||
char id=207 x=451 y=0 width=8 height=20 xoffset=0 yoffset=-1 xadvance=7 page=0 chnl=0
|
||||
char id=208 x=125 y=59 width=16 height=16 xoffset=0 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=209 x=96 y=0 width=13 height=21 xoffset=1 yoffset=-2 xadvance=15 page=0 chnl=0
|
||||
char id=210 x=109 y=0 width=15 height=21 xoffset=0 yoffset=-2 xadvance=15 page=0 chnl=0
|
||||
char id=211 x=124 y=0 width=15 height=21 xoffset=0 yoffset=-2 xadvance=15 page=0 chnl=0
|
||||
char id=212 x=139 y=0 width=15 height=21 xoffset=0 yoffset=-2 xadvance=15 page=0 chnl=0
|
||||
char id=213 x=154 y=0 width=15 height=21 xoffset=0 yoffset=-2 xadvance=15 page=0 chnl=0
|
||||
char id=214 x=459 y=0 width=15 height=20 xoffset=0 yoffset=-1 xadvance=15 page=0 chnl=0
|
||||
char id=215 x=241 y=59 width=14 height=14 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=216 x=129 y=22 width=16 height=18 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=0
|
||||
char id=217 x=169 y=0 width=13 height=21 xoffset=1 yoffset=-2 xadvance=14 page=0 chnl=0
|
||||
char id=218 x=182 y=0 width=13 height=21 xoffset=1 yoffset=-2 xadvance=14 page=0 chnl=0
|
||||
char id=219 x=195 y=0 width=13 height=21 xoffset=1 yoffset=-2 xadvance=14 page=0 chnl=0
|
||||
char id=220 x=474 y=0 width=13 height=20 xoffset=1 yoffset=-1 xadvance=14 page=0 chnl=0
|
||||
char id=221 x=487 y=0 width=14 height=20 xoffset=-1 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=222 x=141 y=59 width=11 height=16 xoffset=1 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=223 x=460 y=22 width=12 height=17 xoffset=1 yoffset=2 xadvance=13 page=0 chnl=0
|
||||
char id=224 x=145 y=22 width=11 height=18 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
|
||||
char id=225 x=156 y=22 width=11 height=18 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
|
||||
char id=226 x=167 y=22 width=11 height=18 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
|
||||
char id=227 x=472 y=22 width=11 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=228 x=483 y=22 width=11 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=229 x=0 y=22 width=11 height=20 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=0
|
||||
char id=230 x=411 y=59 width=19 height=13 xoffset=0 yoffset=6 xadvance=19 page=0 chnl=0
|
||||
char id=231 x=494 y=22 width=10 height=17 xoffset=0 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=232 x=178 y=22 width=12 height=18 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
|
||||
char id=233 x=190 y=22 width=12 height=18 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
|
||||
char id=234 x=202 y=22 width=12 height=18 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
|
||||
char id=235 x=0 y=42 width=12 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=236 x=214 y=22 width=8 height=18 xoffset=-2 yoffset=1 xadvance=6 page=0 chnl=0
|
||||
char id=237 x=222 y=22 width=8 height=18 xoffset=0 yoffset=1 xadvance=6 page=0 chnl=0
|
||||
char id=238 x=230 y=22 width=9 height=18 xoffset=-2 yoffset=1 xadvance=6 page=0 chnl=0
|
||||
char id=239 x=12 y=42 width=8 height=17 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=0
|
||||
char id=240 x=20 y=42 width=12 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=241 x=32 y=42 width=11 height=17 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=242 x=239 y=22 width=12 height=18 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
|
||||
char id=243 x=251 y=22 width=12 height=18 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
|
||||
char id=244 x=263 y=22 width=12 height=18 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
|
||||
char id=245 x=43 y=42 width=12 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=246 x=55 y=42 width=12 height=17 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=247 x=475 y=59 width=14 height=12 xoffset=1 yoffset=6 xadvance=16 page=0 chnl=0
|
||||
char id=248 x=157 y=59 width=14 height=15 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=0
|
||||
char id=249 x=275 y=22 width=11 height=18 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=0
|
||||
char id=250 x=286 y=22 width=11 height=18 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=0
|
||||
char id=251 x=297 y=22 width=11 height=18 xoffset=1 yoffset=1 xadvance=13 page=0 chnl=0
|
||||
char id=252 x=67 y=42 width=11 height=17 xoffset=1 yoffset=2 xadvance=13 page=0 chnl=0
|
||||
char id=253 x=26 y=0 width=13 height=22 xoffset=0 yoffset=1 xadvance=11 page=0 chnl=0
|
||||
char id=254 x=208 y=0 width=11 height=21 xoffset=1 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
char id=255 x=219 y=0 width=14 height=21 xoffset=-1 yoffset=2 xadvance=12 page=0 chnl=0
|
||||
kernings count=615
|
||||
kerning first=65 second=171 amount=-1
|
||||
kerning first=194 second=87 amount=-1
|
||||
kerning first=86 second=58 amount=-2
|
||||
kerning first=89 second=229 amount=-3
|
||||
kerning first=196 second=65 amount=1
|
||||
kerning first=45 second=66 amount=-1
|
||||
kerning first=221 second=67 amount=-1
|
||||
kerning first=45 second=71 amount=1
|
||||
kerning first=187 second=88 amount=-1
|
||||
kerning first=45 second=74 amount=1
|
||||
kerning first=221 second=79 amount=-1
|
||||
kerning first=45 second=81 amount=1
|
||||
kerning first=65 second=84 amount=-1
|
||||
kerning first=76 second=85 amount=-1
|
||||
kerning first=45 second=86 amount=-1
|
||||
kerning first=66 second=87 amount=-1
|
||||
kerning first=45 second=88 amount=-1
|
||||
kerning first=82 second=89 amount=-1
|
||||
kerning first=65 second=192 amount=1
|
||||
kerning first=84 second=97 amount=-3
|
||||
kerning first=221 second=101 amount=-3
|
||||
kerning first=65 second=102 amount=-1
|
||||
kerning first=70 second=105 amount=-1
|
||||
kerning first=89 second=250 amount=-2
|
||||
kerning first=89 second=117 amount=-2
|
||||
kerning first=192 second=119 amount=-1
|
||||
kerning first=243 second=120 amount=-1
|
||||
kerning first=82 second=253 amount=-1
|
||||
kerning first=84 second=121 amount=-3
|
||||
kerning first=76 second=217 amount=-1
|
||||
kerning first=84 second=187 amount=-1
|
||||
kerning first=192 second=193 amount=1
|
||||
kerning first=65 second=194 amount=1
|
||||
kerning first=221 second=196 amount=-1
|
||||
kerning first=171 second=198 amount=1
|
||||
kerning first=89 second=252 amount=-2
|
||||
kerning first=75 second=210 amount=-1
|
||||
kerning first=76 second=211 amount=-1
|
||||
kerning first=75 second=212 amount=-1
|
||||
kerning first=89 second=225 amount=-3
|
||||
kerning first=84 second=228 amount=-2
|
||||
kerning first=75 second=45 amount=-2
|
||||
kerning first=84 second=231 amount=-3
|
||||
kerning first=75 second=233 amount=-1
|
||||
kerning first=87 second=234 amount=-1
|
||||
kerning first=120 second=235 amount=-1
|
||||
kerning first=80 second=244 amount=-1
|
||||
kerning first=87 second=245 amount=-1
|
||||
kerning first=120 second=246 amount=-1
|
||||
kerning first=86 second=249 amount=-1
|
||||
kerning first=192 second=253 amount=-1
|
||||
kerning first=82 second=67 amount=-1
|
||||
kerning first=221 second=213 amount=-1
|
||||
kerning first=120 second=245 amount=-1
|
||||
kerning first=87 second=111 amount=-1
|
||||
kerning first=84 second=196 amount=-1
|
||||
kerning first=195 second=65 amount=1
|
||||
kerning first=89 second=210 amount=-1
|
||||
kerning first=65 second=119 amount=-1
|
||||
kerning first=192 second=121 amount=-1
|
||||
kerning first=75 second=84 amount=-1
|
||||
kerning first=79 second=46 amount=-1
|
||||
kerning first=82 second=249 amount=-1
|
||||
kerning first=80 second=101 amount=-1
|
||||
kerning first=76 second=213 amount=-1
|
||||
kerning first=221 second=243 amount=-3
|
||||
kerning first=80 second=243 amount=-1
|
||||
kerning first=70 second=225 amount=-2
|
||||
kerning first=107 second=111 amount=-1
|
||||
kerning first=75 second=235 amount=-1
|
||||
kerning first=86 second=45 amount=-1
|
||||
kerning first=87 second=242 amount=-1
|
||||
kerning first=120 second=111 amount=-1
|
||||
kerning first=107 second=249 amount=-1
|
||||
kerning first=86 second=225 amount=-1
|
||||
kerning first=193 second=84 amount=-1
|
||||
kerning first=196 second=118 amount=-1
|
||||
kerning first=75 second=250 amount=-1
|
||||
kerning first=221 second=214 amount=-1
|
||||
kerning first=195 second=119 amount=-1
|
||||
kerning first=70 second=246 amount=-1
|
||||
kerning first=87 second=194 amount=-1
|
||||
kerning first=192 second=194 amount=1
|
||||
kerning first=89 second=233 amount=-3
|
||||
kerning first=120 second=244 amount=-1
|
||||
kerning first=84 second=244 amount=-2
|
||||
kerning first=76 second=121 amount=-2
|
||||
kerning first=84 second=225 amount=-3
|
||||
kerning first=76 second=219 amount=-1
|
||||
kerning first=211 second=221 amount=-1
|
||||
kerning first=195 second=192 amount=1
|
||||
kerning first=107 second=253 amount=-1
|
||||
kerning first=86 second=235 amount=-1
|
||||
kerning first=86 second=250 amount=-1
|
||||
kerning first=80 second=97 amount=-1
|
||||
kerning first=221 second=97 amount=-3
|
||||
kerning first=196 second=253 amount=-1
|
||||
kerning first=82 second=234 amount=-1
|
||||
kerning first=221 second=199 amount=-1
|
||||
kerning first=196 second=171 amount=-1
|
||||
kerning first=70 second=250 amount=-1
|
||||
kerning first=86 second=227 amount=-1
|
||||
kerning first=82 second=192 amount=-1
|
||||
kerning first=187 second=192 amount=-1
|
||||
kerning first=107 second=245 amount=-1
|
||||
kerning first=193 second=65 amount=1
|
||||
kerning first=84 second=117 amount=-3
|
||||
kerning first=221 second=224 amount=-3
|
||||
kerning first=80 second=224 amount=-1
|
||||
kerning first=65 second=121 amount=-1
|
||||
kerning first=89 second=235 amount=-3
|
||||
kerning first=71 second=84 amount=-1
|
||||
kerning first=45 second=87 amount=-1
|
||||
kerning first=87 second=58 amount=-1
|
||||
kerning first=89 second=212 amount=-1
|
||||
kerning first=84 second=171 amount=-2
|
||||
kerning first=187 second=195 amount=-1
|
||||
kerning first=195 second=196 amount=1
|
||||
kerning first=121 second=46 amount=-3
|
||||
kerning first=89 second=199 amount=-1
|
||||
kerning first=213 second=45 amount=1
|
||||
kerning first=107 second=255 amount=-1
|
||||
kerning first=45 second=89 amount=-2
|
||||
kerning first=79 second=88 amount=-1
|
||||
kerning first=187 second=84 amount=-2
|
||||
kerning first=82 second=84 amount=-1
|
||||
kerning first=187 second=193 amount=-1
|
||||
kerning first=195 second=86 amount=-1
|
||||
kerning first=196 second=193 amount=1
|
||||
kerning first=65 second=221 amount=-1
|
||||
kerning first=75 second=214 amount=-1
|
||||
kerning first=84 second=246 amount=-2
|
||||
kerning first=222 second=46 amount=-1
|
||||
kerning first=195 second=121 amount=-1
|
||||
kerning first=193 second=195 amount=1
|
||||
kerning first=45 second=79 amount=1
|
||||
kerning first=80 second=193 amount=-1
|
||||
kerning first=253 second=58 amount=-1
|
||||
kerning first=221 second=193 amount=-1
|
||||
kerning first=171 second=89 amount=-1
|
||||
kerning first=82 second=255 amount=-1
|
||||
kerning first=86 second=229 amount=-1
|
||||
kerning first=87 second=244 amount=-1
|
||||
kerning first=194 second=192 amount=1
|
||||
kerning first=193 second=193 amount=1
|
||||
kerning first=89 second=79 amount=-1
|
||||
kerning first=193 second=253 amount=-1
|
||||
kerning first=210 second=45 amount=1
|
||||
kerning first=192 second=171 amount=-1
|
||||
kerning first=87 second=171 amount=-1
|
||||
kerning first=45 second=210 amount=1
|
||||
kerning first=195 second=194 amount=1
|
||||
kerning first=88 second=67 amount=-1
|
||||
kerning first=194 second=89 amount=-1
|
||||
kerning first=87 second=246 amount=-1
|
||||
kerning first=70 second=117 amount=-1
|
||||
kerning first=82 second=232 amount=-1
|
||||
kerning first=214 second=221 amount=-1
|
||||
kerning first=82 second=86 amount=-1
|
||||
kerning first=187 second=86 amount=-2
|
||||
kerning first=221 second=105 amount=-1
|
||||
kerning first=82 second=46 amount=-1
|
||||
kerning first=75 second=252 amount=-1
|
||||
kerning first=89 second=187 amount=-1
|
||||
kerning first=211 second=88 amount=-1
|
||||
kerning first=196 second=194 amount=1
|
||||
kerning first=86 second=101 amount=-1
|
||||
kerning first=70 second=233 amount=-1
|
||||
kerning first=221 second=226 amount=-3
|
||||
kerning first=80 second=65 amount=-1
|
||||
kerning first=221 second=65 amount=-1
|
||||
kerning first=80 second=226 amount=-1
|
||||
kerning first=87 second=196 amount=-1
|
||||
kerning first=192 second=196 amount=1
|
||||
kerning first=102 second=46 amount=-1
|
||||
kerning first=89 second=101 amount=-3
|
||||
kerning first=70 second=234 amount=-1
|
||||
kerning first=80 second=229 amount=-1
|
||||
kerning first=214 second=88 amount=-1
|
||||
kerning first=86 second=244 amount=-1
|
||||
kerning first=221 second=251 amount=-2
|
||||
kerning first=86 second=252 amount=-1
|
||||
kerning first=214 second=45 amount=1
|
||||
kerning first=76 second=84 amount=-3
|
||||
kerning first=84 second=67 amount=-1
|
||||
kerning first=75 second=101 amount=-1
|
||||
kerning first=75 second=79 amount=-1
|
||||
kerning first=84 second=111 amount=-3
|
||||
kerning first=88 second=213 amount=-1
|
||||
kerning first=84 second=58 amount=-2
|
||||
kerning first=221 second=228 amount=-3
|
||||
kerning first=80 second=228 amount=-1
|
||||
kerning first=66 second=89 amount=-1
|
||||
kerning first=75 second=121 amount=-1
|
||||
kerning first=88 second=235 amount=-1
|
||||
kerning first=82 second=242 amount=-1
|
||||
kerning first=221 second=252 amount=-2
|
||||
kerning first=194 second=121 amount=-1
|
||||
kerning first=82 second=196 amount=-1
|
||||
kerning first=187 second=196 amount=-1
|
||||
kerning first=84 second=45 amount=-2
|
||||
kerning first=89 second=192 amount=-1
|
||||
kerning first=84 second=233 amount=-3
|
||||
kerning first=89 second=195 amount=-1
|
||||
kerning first=194 second=195 amount=1
|
||||
kerning first=87 second=227 amount=-1
|
||||
kerning first=107 second=242 amount=-1
|
||||
kerning first=195 second=84 amount=-1
|
||||
kerning first=84 second=253 amount=-3
|
||||
kerning first=75 second=221 amount=-1
|
||||
kerning first=88 second=232 amount=-1
|
||||
kerning first=86 second=224 amount=-1
|
||||
kerning first=196 second=89 amount=-1
|
||||
kerning first=84 second=114 amount=-3
|
||||
kerning first=87 second=117 amount=-1
|
||||
kerning first=75 second=245 amount=-1
|
||||
kerning first=120 second=234 amount=-1
|
||||
kerning first=107 second=117 amount=-1
|
||||
kerning first=193 second=89 amount=-1
|
||||
kerning first=213 second=221 amount=-1
|
||||
kerning first=76 second=87 amount=-2
|
||||
kerning first=107 second=243 amount=-1
|
||||
kerning first=82 second=243 amount=-1
|
||||
kerning first=45 second=221 amount=-2
|
||||
kerning first=221 second=249 amount=-2
|
||||
kerning first=193 second=192 amount=1
|
||||
kerning first=84 second=193 amount=-1
|
||||
kerning first=84 second=250 amount=-3
|
||||
kerning first=84 second=234 amount=-3
|
||||
kerning first=45 second=211 amount=1
|
||||
kerning first=192 second=221 amount=-1
|
||||
kerning first=82 second=199 amount=-1
|
||||
kerning first=89 second=214 amount=-1
|
||||
kerning first=76 second=221 amount=-3
|
||||
kerning first=75 second=244 amount=-1
|
||||
kerning first=89 second=58 amount=-3
|
||||
kerning first=75 second=220 amount=-1
|
||||
kerning first=82 second=117 amount=-1
|
||||
kerning first=192 second=87 amount=-1
|
||||
kerning first=70 second=196 amount=-2
|
||||
kerning first=211 second=45 amount=1
|
||||
kerning first=87 second=229 amount=-1
|
||||
kerning first=70 second=114 amount=-1
|
||||
kerning first=107 second=251 amount=-1
|
||||
kerning first=87 second=233 amount=-1
|
||||
kerning first=89 second=194 amount=-1
|
||||
kerning first=194 second=194 amount=1
|
||||
kerning first=86 second=245 amount=-1
|
||||
kerning first=193 second=119 amount=-1
|
||||
kerning first=194 second=102 amount=-1
|
||||
kerning first=82 second=111 amount=-1
|
||||
kerning first=196 second=192 amount=1
|
||||
kerning first=221 second=245 amount=-3
|
||||
kerning first=193 second=196 amount=1
|
||||
kerning first=89 second=224 amount=-3
|
||||
kerning first=193 second=86 amount=-1
|
||||
kerning first=208 second=221 amount=-1
|
||||
kerning first=82 second=246 amount=-1
|
||||
kerning first=221 second=235 amount=-3
|
||||
kerning first=80 second=235 amount=-1
|
||||
kerning first=195 second=87 amount=-1
|
||||
kerning first=221 second=212 amount=-1
|
||||
kerning first=255 second=58 amount=-1
|
||||
kerning first=75 second=171 amount=-1
|
||||
kerning first=86 second=195 amount=-1
|
||||
kerning first=89 second=234 amount=-3
|
||||
kerning first=81 second=45 amount=1
|
||||
kerning first=192 second=65 amount=1
|
||||
kerning first=221 second=45 amount=-2
|
||||
kerning first=213 second=89 amount=-1
|
||||
kerning first=70 second=227 amount=-2
|
||||
kerning first=89 second=244 amount=-3
|
||||
kerning first=86 second=255 amount=-1
|
||||
kerning first=86 second=65 amount=-1
|
||||
kerning first=221 second=225 amount=-3
|
||||
kerning first=80 second=225 amount=-1
|
||||
kerning first=75 second=85 amount=-1
|
||||
kerning first=82 second=193 amount=-1
|
||||
kerning first=76 second=253 amount=-2
|
||||
kerning first=194 second=171 amount=-1
|
||||
kerning first=89 second=171 amount=-2
|
||||
kerning first=194 second=86 amount=-1
|
||||
kerning first=86 second=251 amount=-1
|
||||
kerning first=84 second=194 amount=-1
|
||||
kerning first=210 second=46 amount=-1
|
||||
kerning first=196 second=255 amount=-1
|
||||
kerning first=70 second=111 amount=-1
|
||||
kerning first=120 second=233 amount=-1
|
||||
kerning first=84 second=115 amount=-3
|
||||
kerning first=114 second=45 amount=-1
|
||||
kerning first=194 second=221 amount=-1
|
||||
kerning first=45 second=118 amount=-1
|
||||
kerning first=89 second=196 amount=-1
|
||||
kerning first=221 second=232 amount=-3
|
||||
kerning first=114 second=171 amount=-1
|
||||
kerning first=65 second=87 amount=-1
|
||||
kerning first=88 second=199 amount=-1
|
||||
kerning first=245 second=120 amount=-1
|
||||
kerning first=75 second=251 amount=-1
|
||||
kerning first=192 second=102 amount=-1
|
||||
kerning first=70 second=101 amount=-1
|
||||
kerning first=70 second=121 amount=-2
|
||||
kerning first=196 second=119 amount=-1
|
||||
kerning first=196 second=86 amount=-1
|
||||
kerning first=89 second=105 amount=-1
|
||||
kerning first=75 second=218 amount=-1
|
||||
kerning first=80 second=46 amount=-3
|
||||
kerning first=221 second=46 amount=-4
|
||||
kerning first=70 second=58 amount=-1
|
||||
kerning first=89 second=45 amount=-2
|
||||
kerning first=212 second=46 amount=-1
|
||||
kerning first=84 second=227 amount=-2
|
||||
kerning first=70 second=194 amount=-2
|
||||
kerning first=80 second=192 amount=-1
|
||||
kerning first=221 second=192 amount=-1
|
||||
kerning first=89 second=211 amount=-1
|
||||
kerning first=45 second=214 amount=1
|
||||
kerning first=107 second=246 amount=-1
|
||||
kerning first=66 second=86 amount=-1
|
||||
kerning first=87 second=250 amount=-1
|
||||
kerning first=210 second=89 amount=-1
|
||||
kerning first=76 second=220 amount=-1
|
||||
kerning first=89 second=65 amount=-1
|
||||
kerning first=194 second=65 amount=1
|
||||
kerning first=222 second=58 amount=-1
|
||||
kerning first=82 second=252 amount=-1
|
||||
kerning first=193 second=121 amount=-1
|
||||
kerning first=192 second=195 amount=1
|
||||
kerning first=87 second=195 amount=-1
|
||||
kerning first=84 second=199 amount=-1
|
||||
kerning first=87 second=97 amount=-1
|
||||
kerning first=187 second=66 amount=-1
|
||||
kerning first=171 second=86 amount=-1
|
||||
kerning first=82 second=45 amount=-1
|
||||
kerning first=118 second=45 amount=-1
|
||||
kerning first=89 second=251 amount=-2
|
||||
kerning first=75 second=67 amount=-1
|
||||
kerning first=86 second=232 amount=-1
|
||||
kerning first=84 second=101 amount=-3
|
||||
kerning first=120 second=101 amount=-1
|
||||
kerning first=192 second=118 amount=-1
|
||||
kerning first=107 second=250 amount=-1
|
||||
kerning first=196 second=84 amount=-1
|
||||
kerning first=65 second=193 amount=1
|
||||
kerning first=75 second=111 amount=-1
|
||||
kerning first=70 second=245 amount=-1
|
||||
kerning first=70 second=224 amount=-2
|
||||
kerning first=80 second=196 amount=-1
|
||||
kerning first=89 second=228 amount=-3
|
||||
kerning first=86 second=234 amount=-1
|
||||
kerning first=75 second=211 amount=-1
|
||||
kerning first=86 second=253 amount=-1
|
||||
kerning first=84 second=99 amount=-3
|
||||
kerning first=107 second=252 amount=-1
|
||||
kerning first=195 second=193 amount=1
|
||||
kerning first=196 second=196 amount=1
|
||||
kerning first=86 second=46 amount=-2
|
||||
kerning first=102 second=58 amount=-1
|
||||
kerning first=82 second=87 amount=-1
|
||||
kerning first=187 second=87 amount=-1
|
||||
kerning first=75 second=253 amount=-1
|
||||
kerning first=120 second=243 amount=-1
|
||||
kerning first=187 second=89 amount=-2
|
||||
kerning first=221 second=242 amount=-3
|
||||
kerning first=80 second=242 amount=-1
|
||||
kerning first=45 second=84 amount=-2
|
||||
kerning first=76 second=214 amount=-1
|
||||
kerning first=221 second=233 amount=-3
|
||||
kerning first=221 second=195 amount=-1
|
||||
kerning first=171 second=221 amount=-1
|
||||
kerning first=66 second=221 amount=-1
|
||||
kerning first=196 second=121 amount=-1
|
||||
kerning first=82 second=250 amount=-1
|
||||
kerning first=82 second=233 amount=-1
|
||||
kerning first=196 second=102 amount=-1
|
||||
kerning first=76 second=212 amount=-1
|
||||
kerning first=221 second=117 amount=-2
|
||||
kerning first=79 second=89 amount=-1
|
||||
kerning first=70 second=226 amount=-2
|
||||
kerning first=76 second=218 amount=-1
|
||||
kerning first=195 second=253 amount=-1
|
||||
kerning first=84 second=243 amount=-3
|
||||
kerning first=88 second=79 amount=-1
|
||||
kerning first=89 second=111 amount=-3
|
||||
kerning first=84 second=224 amount=-2
|
||||
kerning first=87 second=193 amount=-1
|
||||
kerning first=75 second=255 amount=-1
|
||||
kerning first=89 second=249 amount=-2
|
||||
kerning first=89 second=67 amount=-1
|
||||
kerning first=89 second=227 amount=-3
|
||||
kerning first=193 second=255 amount=-1
|
||||
kerning first=246 second=120 amount=-1
|
||||
kerning first=75 second=234 amount=-1
|
||||
kerning first=192 second=84 amount=-1
|
||||
kerning first=87 second=101 amount=-1
|
||||
kerning first=107 second=233 amount=-1
|
||||
kerning first=84 second=195 amount=-1
|
||||
kerning first=87 second=243 amount=-1
|
||||
kerning first=213 second=46 amount=-1
|
||||
kerning first=75 second=249 amount=-1
|
||||
kerning first=221 second=58 amount=-3
|
||||
kerning first=119 second=46 amount=-2
|
||||
kerning first=79 second=45 amount=1
|
||||
kerning first=194 second=253 amount=-1
|
||||
kerning first=86 second=171 amount=-2
|
||||
kerning first=68 second=89 amount=-1
|
||||
kerning first=80 second=194 amount=-1
|
||||
kerning first=221 second=194 amount=-1
|
||||
kerning first=242 second=120 amount=-1
|
||||
kerning first=195 second=255 amount=-1
|
||||
kerning first=84 second=226 amount=-2
|
||||
kerning first=210 second=88 amount=-1
|
||||
kerning first=89 second=245 amount=-3
|
||||
kerning first=70 second=65 amount=-2
|
||||
kerning first=70 second=97 amount=-2
|
||||
kerning first=70 second=228 amount=-2
|
||||
kerning first=107 second=235 amount=-1
|
||||
kerning first=221 second=229 amount=-3
|
||||
kerning first=80 second=233 amount=-1
|
||||
kerning first=66 second=171 amount=-1
|
||||
kerning first=86 second=194 amount=-1
|
||||
kerning first=87 second=114 amount=-1
|
||||
kerning first=213 second=88 amount=-1
|
||||
kerning first=221 second=234 amount=-3
|
||||
kerning first=80 second=234 amount=-1
|
||||
kerning first=84 second=105 amount=-1
|
||||
kerning first=70 second=251 amount=-1
|
||||
kerning first=194 second=255 amount=-1
|
||||
kerning first=82 second=235 amount=-1
|
||||
kerning first=194 second=118 amount=-1
|
||||
kerning first=120 second=242 amount=-1
|
||||
kerning first=87 second=224 amount=-1
|
||||
kerning first=221 second=171 amount=-2
|
||||
kerning first=70 second=195 amount=-2
|
||||
kerning first=195 second=171 amount=-1
|
||||
kerning first=114 second=46 amount=-2
|
||||
kerning first=255 second=46 amount=-3
|
||||
kerning first=76 second=210 amount=-1
|
||||
kerning first=86 second=192 amount=-1
|
||||
kerning first=84 second=65 amount=-1
|
||||
kerning first=70 second=193 amount=-2
|
||||
kerning first=70 second=253 amount=-2
|
||||
kerning first=87 second=45 amount=-1
|
||||
kerning first=194 second=84 amount=-1
|
||||
kerning first=195 second=118 amount=-1
|
||||
kerning first=75 second=89 amount=-1
|
||||
kerning first=89 second=232 amount=-3
|
||||
kerning first=71 second=89 amount=-1
|
||||
kerning first=212 second=89 amount=-1
|
||||
kerning first=65 second=118 amount=-1
|
||||
kerning first=84 second=251 amount=-3
|
||||
kerning first=87 second=226 amount=-1
|
||||
kerning first=196 second=221 amount=-1
|
||||
kerning first=119 second=58 amount=-1
|
||||
kerning first=212 second=88 amount=-1
|
||||
kerning first=89 second=46 amount=-4
|
||||
kerning first=210 second=221 amount=-1
|
||||
kerning first=86 second=242 amount=-1
|
||||
kerning first=195 second=89 amount=-1
|
||||
kerning first=193 second=102 amount=-1
|
||||
kerning first=75 second=217 amount=-1
|
||||
kerning first=221 second=211 amount=-1
|
||||
kerning first=221 second=246 amount=-3
|
||||
kerning first=65 second=86 amount=-1
|
||||
kerning first=75 second=232 amount=-1
|
||||
kerning first=194 second=119 amount=-1
|
||||
kerning first=80 second=246 amount=-1
|
||||
kerning first=102 second=171 amount=-1
|
||||
kerning first=86 second=121 amount=-1
|
||||
kerning first=75 second=242 amount=-1
|
||||
kerning first=70 second=243 amount=-1
|
||||
kerning first=193 second=87 amount=-1
|
||||
kerning first=86 second=111 amount=-1
|
||||
kerning first=82 second=121 amount=-1
|
||||
kerning first=84 second=46 amount=-2
|
||||
kerning first=88 second=233 amount=-1
|
||||
kerning first=192 second=86 amount=-1
|
||||
kerning first=88 second=234 amount=-1
|
||||
kerning first=75 second=199 amount=-1
|
||||
kerning first=45 second=213 amount=1
|
||||
kerning first=68 second=221 amount=-1
|
||||
kerning first=70 second=255 amount=-2
|
||||
kerning first=221 second=250 amount=-2
|
||||
kerning first=86 second=243 amount=-1
|
||||
kerning first=65 second=196 amount=1
|
||||
kerning first=87 second=65 amount=-1
|
||||
kerning first=88 second=212 amount=-1
|
||||
kerning first=194 second=196 amount=1
|
||||
kerning first=87 second=252 amount=-1
|
||||
kerning first=70 second=235 amount=-1
|
||||
kerning first=107 second=121 amount=-1
|
||||
kerning first=114 second=120 amount=-1
|
||||
kerning first=75 second=219 amount=-1
|
||||
kerning first=196 second=87 amount=-1
|
||||
kerning first=102 second=45 amount=-1
|
||||
kerning first=82 second=101 amount=-1
|
||||
kerning first=221 second=227 amount=-3
|
||||
kerning first=80 second=227 amount=-1
|
||||
kerning first=75 second=243 amount=-1
|
||||
kerning first=88 second=210 amount=-1
|
||||
kerning first=87 second=249 amount=-1
|
||||
kerning first=89 second=242 amount=-3
|
||||
kerning first=70 second=232 amount=-1
|
||||
kerning first=214 second=89 amount=-1
|
||||
kerning first=221 second=210 amount=-1
|
||||
kerning first=82 second=244 amount=-1
|
||||
kerning first=211 second=89 amount=-1
|
||||
kerning first=86 second=246 amount=-1
|
||||
kerning first=82 second=58 amount=-1
|
||||
kerning first=70 second=46 amount=-3
|
||||
kerning first=211 second=46 amount=-1
|
||||
kerning first=195 second=221 amount=-1
|
||||
kerning first=80 second=245 amount=-1
|
||||
kerning first=107 second=101 amount=-1
|
||||
kerning first=193 second=221 amount=-1
|
||||
kerning first=82 second=195 amount=-1
|
||||
kerning first=65 second=65 amount=1
|
||||
kerning first=89 second=243 amount=-3
|
||||
kerning first=80 second=111 amount=-1
|
||||
kerning first=86 second=117 amount=-1
|
||||
kerning first=221 second=111 amount=-3
|
||||
kerning first=84 second=235 amount=-3
|
||||
kerning first=84 second=255 amount=-3
|
||||
kerning first=84 second=229 amount=-2
|
||||
kerning first=70 second=192 amount=-2
|
||||
kerning first=88 second=171 amount=-1
|
||||
kerning first=82 second=171 amount=-1
|
||||
kerning first=193 second=171 amount=-1
|
||||
kerning first=82 second=194 amount=-1
|
||||
kerning first=187 second=194 amount=-1
|
||||
kerning first=45 second=212 amount=1
|
||||
kerning first=65 second=253 amount=-1
|
||||
kerning first=82 second=245 amount=-1
|
||||
kerning first=76 second=86 amount=-2
|
||||
kerning first=86 second=228 amount=-1
|
||||
kerning first=86 second=196 amount=-1
|
||||
kerning first=86 second=233 amount=-1
|
||||
kerning first=84 second=249 amount=-3
|
||||
kerning first=88 second=45 amount=-1
|
||||
kerning first=79 second=221 amount=-1
|
||||
kerning first=88 second=211 amount=-1
|
||||
kerning first=89 second=97 amount=-3
|
||||
kerning first=87 second=228 amount=-1
|
||||
kerning first=192 second=255 amount=-1
|
||||
kerning first=171 second=84 amount=-1
|
||||
kerning first=84 second=245 amount=-2
|
||||
kerning first=89 second=213 amount=-1
|
||||
kerning first=86 second=187 amount=-1
|
||||
kerning first=75 second=117 amount=-1
|
||||
kerning first=76 second=79 amount=-1
|
||||
kerning first=65 second=89 amount=-1
|
||||
kerning first=70 second=229 amount=-2
|
||||
kerning first=253 second=46 amount=-3
|
||||
kerning first=86 second=97 amount=-1
|
||||
kerning first=80 second=232 amount=-1
|
||||
kerning first=107 second=234 amount=-1
|
||||
kerning first=70 second=244 amount=-1
|
||||
kerning first=84 second=192 amount=-1
|
||||
kerning first=107 second=244 amount=-1
|
||||
kerning first=86 second=226 amount=-1
|
||||
kerning first=70 second=249 amount=-1
|
||||
kerning first=75 second=246 amount=-1
|
||||
kerning first=70 second=252 amount=-1
|
||||
kerning first=193 second=118 amount=-1
|
||||
kerning first=87 second=232 amount=-1
|
||||
kerning first=118 second=46 amount=-1
|
||||
kerning first=244 second=120 amount=-1
|
||||
kerning first=84 second=119 amount=-3
|
||||
kerning first=89 second=193 amount=-1
|
||||
kerning first=121 second=58 amount=-1
|
||||
kerning first=194 second=193 amount=1
|
||||
kerning first=74 second=45 amount=-1
|
||||
kerning first=87 second=46 amount=-2
|
||||
kerning first=70 second=242 amount=-1
|
||||
kerning first=87 second=225 amount=-1
|
||||
kerning first=71 second=221 amount=-1
|
||||
kerning first=75 second=87 amount=-1
|
||||
kerning first=212 second=221 amount=-1
|
||||
kerning first=65 second=255 amount=-1
|
||||
kerning first=111 second=120 amount=-1
|
||||
kerning first=87 second=192 amount=-1
|
||||
kerning first=192 second=192 amount=1
|
||||
kerning first=75 second=213 amount=-1
|
||||
kerning first=88 second=101 amount=-1
|
||||
kerning first=88 second=214 amount=-1
|
||||
kerning first=187 second=221 amount=-2
|
||||
kerning first=82 second=221 amount=-1
|
||||
kerning first=82 second=65 amount=-1
|
||||
kerning first=187 second=65 amount=-1
|
||||
kerning first=195 second=195 amount=1
|
||||
kerning first=80 second=195 amount=-1
|
||||
kerning first=208 second=89 amount=-1
|
||||
kerning first=214 second=46 amount=-1
|
||||
kerning first=212 second=45 amount=1
|
||||
kerning first=87 second=251 amount=-1
|
||||
kerning first=84 second=252 amount=-3
|
||||
kerning first=76 second=255 amount=-2
|
||||
kerning first=118 second=58 amount=-1
|
||||
kerning first=193 second=194 amount=1
|
||||
kerning first=76 second=89 amount=-3
|
||||
kerning first=87 second=235 amount=-1
|
||||
kerning first=82 second=251 amount=-1
|
||||
kerning first=86 second=193 amount=-1
|
||||
kerning first=221 second=187 amount=-1
|
||||
kerning first=195 second=102 amount=-1
|
||||
kerning first=120 second=232 amount=-1
|
||||
kerning first=107 second=232 amount=-1
|
||||
kerning first=84 second=232 amount=-3
|
||||
kerning first=89 second=246 amount=-3
|
||||
kerning first=221 second=244 amount=-3
|
||||
kerning first=196 second=195 amount=1
|
||||
kerning first=192 second=89 amount=-1
|
||||
kerning first=84 second=242 amount=-2
|
||||
kerning first=65 second=195 amount=1
|
||||
kerning first=89 second=226 amount=-3
|
Before Width: | Height: | Size: 18 KiB |
|
@ -4,18 +4,18 @@
|
|||
cd $(dirname $0)
|
||||
|
||||
# array of available collection names
|
||||
col=(app_user awarding campaign decoration logBudget logFlag logKill logPoints logRespawn logRevive logTransport logVehicle player promotion rank squad user war )
|
||||
col=(app_user awarding campaign decoration logBudget logFlag logKill logPlayerCount logPoints logRespawn logRevive logServerFps logTransport logVehicle player promotion rank squad user war)
|
||||
|
||||
if [ -z "$1" ]
|
||||
then
|
||||
DATE=$(date '+%Y-%m-%d')
|
||||
mkdir -p ${DATE}/resource
|
||||
cp -R ../api/resource/ ${DATE}/
|
||||
cp -R ../server/resource/ ${DATE}/
|
||||
else
|
||||
DATE=${1}
|
||||
tar -xzf ${DATE}.tar.gz
|
||||
rm -rf ../api/resource
|
||||
cp -Rv ${DATE}/resource ../api/
|
||||
rm -rf ../server/resource
|
||||
cp -Rv ${DATE}/resource ../server/
|
||||
fi
|
||||
|
||||
for i in "${col[@]}"
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<code_scheme name="OPT-CC" version="173">
|
||||
<option name="FORMATTER_TAGS_ENABLED" value="true" />
|
||||
<JSCodeStyleSettings>
|
||||
<JSCodeStyleSettings version="0">
|
||||
<option name="USE_CHAINED_CALLS_GROUP_INDENTS" value="true" />
|
||||
</JSCodeStyleSettings>
|
||||
<TypeScriptCodeStyleSettings>
|
||||
<TypeScriptCodeStyleSettings version="0">
|
||||
<option name="USE_DOUBLE_QUOTES" value="false" />
|
||||
<option name="USE_CHAINED_CALLS_GROUP_INDENTS" value="true" />
|
||||
</TypeScriptCodeStyleSettings>
|
||||
|
@ -11,7 +11,8 @@
|
|||
<option name="RIGHT_MARGIN" value="120" />
|
||||
<option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
|
||||
<option name="ALIGN_MULTILINE_CHAINED_METHODS" value="true" />
|
||||
<option name="SPACE_WITHIN_BRACKETS" value="true" />
|
||||
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
|
||||
<option name="ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION" value="true" />
|
||||
<option name="CALL_PARAMETERS_WRAP" value="1" />
|
||||
<option name="METHOD_PARAMETERS_WRAP" value="1" />
|
||||
<option name="EXTENDS_KEYWORD_WRAP" value="1" />
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "opt-cc",
|
||||
"version": "1.8.0",
|
||||
"version": "1.9.3",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -10,10 +10,10 @@
|
|||
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"co": "4.6.0",
|
||||
"fast-deep-equal": "1.1.0",
|
||||
"fast-json-stable-stringify": "2.0.0",
|
||||
"json-schema-traverse": "0.3.1"
|
||||
"co": "^4.6.0",
|
||||
"fast-deep-equal": "^1.0.0",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.3.0"
|
||||
}
|
||||
},
|
||||
"ansi-styles": {
|
||||
|
@ -22,7 +22,7 @@
|
|||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "1.9.2"
|
||||
"color-convert": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"asn1": {
|
||||
|
@ -62,7 +62,7 @@
|
|||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"tweetnacl": "0.14.5"
|
||||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"builtin-modules": {
|
||||
|
@ -83,9 +83,9 @@
|
|||
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "3.2.1",
|
||||
"escape-string-regexp": "1.0.5",
|
||||
"supports-color": "5.4.0"
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"supports-color": {
|
||||
|
@ -94,7 +94,7 @@
|
|||
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "3.0.0"
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -126,7 +126,7 @@
|
|||
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"delayed-stream": "1.0.0"
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
|
@ -141,15 +141,15 @@
|
|||
"integrity": "sha512-6XiIYtYzmGEccNZFkih5JOH92jLA4ulZArAYy5j1uDSdrPLB3KzdE8GW7t2fHPcg9ry2+5LP9IEYzXzxw9lFdA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "2.4.1",
|
||||
"chalk": "^2.4.1",
|
||||
"commander": "2.6.0",
|
||||
"date-fns": "1.29.0",
|
||||
"lodash": "4.17.10",
|
||||
"read-pkg": "3.0.0",
|
||||
"date-fns": "^1.23.0",
|
||||
"lodash": "^4.5.1",
|
||||
"read-pkg": "^3.0.0",
|
||||
"rx": "2.3.24",
|
||||
"spawn-command": "0.0.2-1",
|
||||
"supports-color": "3.2.3",
|
||||
"tree-kill": "1.2.0"
|
||||
"spawn-command": "^0.0.2-1",
|
||||
"supports-color": "^3.2.3",
|
||||
"tree-kill": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"core-js": {
|
||||
|
@ -170,7 +170,7 @@
|
|||
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0"
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"date-fns": {
|
||||
|
@ -192,7 +192,7 @@
|
|||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"jsbn": "0.1.1"
|
||||
"jsbn": "~0.1.0"
|
||||
}
|
||||
},
|
||||
"error-ex": {
|
||||
|
@ -201,7 +201,7 @@
|
|||
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-arrayish": "0.2.1"
|
||||
"is-arrayish": "^0.2.1"
|
||||
}
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
|
@ -246,9 +246,9 @@
|
|||
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "0.4.0",
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "1.0.6",
|
||||
"mime-types": "2.1.18"
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"getpass": {
|
||||
|
@ -257,7 +257,7 @@
|
|||
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0"
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
|
@ -278,8 +278,8 @@
|
|||
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ajv": "5.5.2",
|
||||
"har-schema": "2.0.0"
|
||||
"ajv": "^5.1.0",
|
||||
"har-schema": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"has-flag": {
|
||||
|
@ -306,9 +306,9 @@
|
|||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0",
|
||||
"jsprim": "1.4.1",
|
||||
"sshpk": "1.14.2"
|
||||
"assert-plus": "^1.0.0",
|
||||
"jsprim": "^1.2.2",
|
||||
"sshpk": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"is-arrayish": {
|
||||
|
@ -323,7 +323,7 @@
|
|||
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"builtin-modules": "1.1.1"
|
||||
"builtin-modules": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"is-typedarray": {
|
||||
|
@ -356,11 +356,11 @@
|
|||
"integrity": "sha1-M4WseQGSEwy+Iw6ALsAskhW7/to=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"hoek": "4.2.1",
|
||||
"isemail": "2.2.1",
|
||||
"items": "2.1.1",
|
||||
"moment": "2.22.2",
|
||||
"topo": "2.0.2"
|
||||
"hoek": "4.x.x",
|
||||
"isemail": "2.x.x",
|
||||
"items": "2.x.x",
|
||||
"moment": "2.x.x",
|
||||
"topo": "2.x.x"
|
||||
}
|
||||
},
|
||||
"jsbn": {
|
||||
|
@ -412,16 +412,16 @@
|
|||
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "4.1.11",
|
||||
"parse-json": "4.0.0",
|
||||
"pify": "3.0.0",
|
||||
"strip-bom": "3.0.0"
|
||||
"graceful-fs": "^4.1.2",
|
||||
"parse-json": "^4.0.0",
|
||||
"pify": "^3.0.0",
|
||||
"strip-bom": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.10",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
|
||||
"integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==",
|
||||
"version": "4.17.11",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
|
||||
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-db": {
|
||||
|
@ -436,7 +436,7 @@
|
|||
"integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": "1.33.0"
|
||||
"mime-db": "~1.33.0"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
|
@ -457,10 +457,10 @@
|
|||
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"hosted-git-info": "2.6.1",
|
||||
"is-builtin-module": "1.0.0",
|
||||
"semver": "5.5.0",
|
||||
"validate-npm-package-license": "3.0.3"
|
||||
"hosted-git-info": "^2.1.4",
|
||||
"is-builtin-module": "^1.0.0",
|
||||
"semver": "2 || 3 || 4 || 5",
|
||||
"validate-npm-package-license": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"oauth-sign": {
|
||||
|
@ -475,8 +475,8 @@
|
|||
"integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"error-ex": "1.3.2",
|
||||
"json-parse-better-errors": "1.0.2"
|
||||
"error-ex": "^1.3.1",
|
||||
"json-parse-better-errors": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"path-type": {
|
||||
|
@ -485,7 +485,7 @@
|
|||
"integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pify": "3.0.0"
|
||||
"pify": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"performance-now": {
|
||||
|
@ -518,9 +518,9 @@
|
|||
"integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"load-json-file": "4.0.0",
|
||||
"normalize-package-data": "2.4.0",
|
||||
"path-type": "3.0.0"
|
||||
"load-json-file": "^4.0.0",
|
||||
"normalize-package-data": "^2.3.2",
|
||||
"path-type": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
|
@ -529,26 +529,26 @@
|
|||
"integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"aws-sign2": "0.7.0",
|
||||
"aws4": "1.7.0",
|
||||
"caseless": "0.12.0",
|
||||
"combined-stream": "1.0.6",
|
||||
"extend": "3.0.1",
|
||||
"forever-agent": "0.6.1",
|
||||
"form-data": "2.3.2",
|
||||
"har-validator": "5.0.3",
|
||||
"http-signature": "1.2.0",
|
||||
"is-typedarray": "1.0.0",
|
||||
"isstream": "0.1.2",
|
||||
"json-stringify-safe": "5.0.1",
|
||||
"mime-types": "2.1.18",
|
||||
"oauth-sign": "0.8.2",
|
||||
"performance-now": "2.1.0",
|
||||
"qs": "6.5.2",
|
||||
"safe-buffer": "5.1.2",
|
||||
"tough-cookie": "2.3.4",
|
||||
"tunnel-agent": "0.6.0",
|
||||
"uuid": "3.3.2"
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.6.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.5",
|
||||
"extend": "~3.0.1",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.3.1",
|
||||
"har-validator": "~5.0.3",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.17",
|
||||
"oauth-sign": "~0.8.2",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.1",
|
||||
"safe-buffer": "^5.1.1",
|
||||
"tough-cookie": "~2.3.3",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"rx": {
|
||||
|
@ -587,8 +587,8 @@
|
|||
"integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"spdx-expression-parse": "3.0.0",
|
||||
"spdx-license-ids": "3.0.0"
|
||||
"spdx-expression-parse": "^3.0.0",
|
||||
"spdx-license-ids": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"spdx-exceptions": {
|
||||
|
@ -603,8 +603,8 @@
|
|||
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"spdx-exceptions": "2.1.0",
|
||||
"spdx-license-ids": "3.0.0"
|
||||
"spdx-exceptions": "^2.1.0",
|
||||
"spdx-license-ids": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"spdx-license-ids": {
|
||||
|
@ -619,15 +619,15 @@
|
|||
"integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asn1": "0.2.3",
|
||||
"assert-plus": "1.0.0",
|
||||
"bcrypt-pbkdf": "1.0.2",
|
||||
"dashdash": "1.14.1",
|
||||
"ecc-jsbn": "0.1.1",
|
||||
"getpass": "0.1.7",
|
||||
"jsbn": "0.1.1",
|
||||
"safer-buffer": "2.1.2",
|
||||
"tweetnacl": "0.14.5"
|
||||
"asn1": "~0.2.3",
|
||||
"assert-plus": "^1.0.0",
|
||||
"bcrypt-pbkdf": "^1.0.0",
|
||||
"dashdash": "^1.12.0",
|
||||
"ecc-jsbn": "~0.1.1",
|
||||
"getpass": "^0.1.1",
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.0.2",
|
||||
"tweetnacl": "~0.14.0"
|
||||
}
|
||||
},
|
||||
"strip-bom": {
|
||||
|
@ -642,7 +642,7 @@
|
|||
"integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "1.0.0"
|
||||
"has-flag": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"has-flag": {
|
||||
|
@ -659,7 +659,7 @@
|
|||
"integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"hoek": "4.2.1"
|
||||
"hoek": "4.x.x"
|
||||
}
|
||||
},
|
||||
"tough-cookie": {
|
||||
|
@ -668,7 +668,7 @@
|
|||
"integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"punycode": "1.4.1"
|
||||
"punycode": "^1.4.1"
|
||||
}
|
||||
},
|
||||
"tree-kill": {
|
||||
|
@ -683,7 +683,7 @@
|
|||
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "5.1.2"
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"tweetnacl": {
|
||||
|
@ -705,8 +705,8 @@
|
|||
"integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"spdx-correct": "3.0.0",
|
||||
"spdx-expression-parse": "3.0.0"
|
||||
"spdx-correct": "^3.0.0",
|
||||
"spdx-expression-parse": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"verror": {
|
||||
|
@ -715,9 +715,9 @@
|
|||
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0",
|
||||
"assert-plus": "^1.0.0",
|
||||
"core-util-is": "1.0.2",
|
||||
"extsprintf": "1.3.0"
|
||||
"extsprintf": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"wait-on": {
|
||||
|
@ -726,11 +726,11 @@
|
|||
"integrity": "sha512-hDwJ674+7dfiiK/cxtYCwPxlnjXDjto/pCz1PF02sXUhqCqCWsgvxZln0699PReWqXXgkxqkF6DDo5Rj9sjNvw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-js": "2.5.7",
|
||||
"joi": "9.2.0",
|
||||
"minimist": "1.2.0",
|
||||
"request": "2.87.0",
|
||||
"rx": "4.1.0"
|
||||
"core-js": "^2.4.1",
|
||||
"joi": "^9.2.0",
|
||||
"minimist": "^1.2.0",
|
||||
"request": "^2.78.0",
|
||||
"rx": "^4.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"rx": {
|
||||
|
|
22
package.json
|
@ -1,23 +1,23 @@
|
|||
{
|
||||
"name": "opt-cc",
|
||||
"version": "1.8.0",
|
||||
"version": "1.9.7",
|
||||
"author": "Florian Hartwich <hardi@noarch.de>",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "npm run deploy-static-prod && npm start --prefix ./api",
|
||||
"dev": "npm run deploy-static && npm run dev --prefix ./api",
|
||||
"start": "npm run deploy-static-prod && npm start --prefix ./server",
|
||||
"dev": "npm run deploy-static && npm run dev --prefix ./server",
|
||||
"pre-deploy-clean": "rm -f ./public/resource",
|
||||
"deploy-static": "npm run pre-deploy-clean && npm run build --prefix=static && npm run deploy-static:link-resource && npm run deploy-static:api-docs",
|
||||
"deploy-static:prod": "npm run pre-deploy-clean && npm run build:prod --prefix=static && npm run deploy-static:link-resource && npm run deploy-static:api-docs",
|
||||
"deploy-static:link-resource": "ln -s ../api/resource/ public/resource",
|
||||
"deploy-static:api-docs": "npm run api:docs --prefix=api",
|
||||
"postinstall": "npm install --prefix ./static && npm install --prefix ./api",
|
||||
"lint": "npm run lint --prefix=api && npm run lint --prefix=static",
|
||||
"test": "npm test --prefix ./api",
|
||||
"e2e": "npm run deploy-static && concurrently \"npm run start-test --prefix ./api\" \"wait-on -t 60000 http://localhost:3001/ && npm run e2e --prefix ./static\" --success first --kill-others",
|
||||
"start-e2e": "npm run deploy-static && npm run start-test --prefix ./api",
|
||||
"deploy-static:link-resource": "ln -s ../server/resource/ public/resource",
|
||||
"deploy-static:api-docs": "npm run api:docs --prefix=server",
|
||||
"postinstall": "npm install --prefix ./static && npm install --prefix ./server",
|
||||
"lint": "npm run lint --prefix=server && npm run lint --prefix=static",
|
||||
"test": "npm test --prefix ./server",
|
||||
"e2e": "npm run deploy-static && concurrently \"npm run start-test --prefix ./server\" \"wait-on -t 60000 http://localhost:3001/ && npm run e2e --prefix ./static\" --success first --kill-others",
|
||||
"start-e2e": "npm run deploy-static && npm run start-test --prefix ./server",
|
||||
"test-e2e": "npm run e2e --prefix ./static",
|
||||
"test-api": "npm run api:test-docs --prefix ./api"
|
||||
"test-api": "npm run api:test-docs --prefix ./server"
|
||||
},
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"apps": [
|
||||
{
|
||||
"name": "opt-cc",
|
||||
"script": "./api/server.js",
|
||||
"script": "./server/server.js",
|
||||
"watch": false,
|
||||
"env": {
|
||||
"NODE_ENV": "production",
|
||||
|
|
|
@ -5,10 +5,13 @@ Update an army members signature image
|
|||
**Permission: 4**
|
||||
|
||||
+ Parameters
|
||||
|
||||
+ userId: `5ab68d42f547ed304064e5f7` (string, required) - army members unique user id
|
||||
|
||||
+ Request (application/json)
|
||||
{}
|
||||
|
||||
+ Attributes (object)
|
||||
|
||||
|
||||
+ Response 200 (application/json; charset=utf-8)
|
||||
|
|
@ -63,8 +63,9 @@ Create a new decoration
|
|||
Content-Type: image/png
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlMA
|
||||
QObYZgAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
||||
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
||||
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
||||
-----BOUNDARY--
|
||||
|
||||
+ Response 201 (application/json; charset=utf-8)
|
||||
|
@ -107,8 +108,9 @@ Update decoration, identified by its id
|
|||
Content-Type: image/png
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlMA
|
||||
QObYZgAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
||||
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
||||
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
||||
-----BOUNDARY--
|
||||
|
||||
+ Response 200 (application/json; charset=utf-8)
|
|
@ -57,8 +57,9 @@ Create a new rank
|
|||
Content-Type: image/png
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlMA
|
||||
QObYZgAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
||||
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
||||
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
||||
-----BOUNDARY--
|
||||
|
||||
+ Response 201 (application/json; charset=utf-8)
|
||||
|
@ -96,8 +97,9 @@ Update rank, identified by its id
|
|||
Content-Type: image/png
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlMA
|
||||
QObYZgAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
||||
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
||||
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
||||
-----BOUNDARY--
|
||||
|
||||
+ Response 200 (application/json; charset=utf-8)
|
|
@ -51,8 +51,9 @@ Create a new squad
|
|||
Content-Type: image/png
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlMA
|
||||
QObYZgAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
||||
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
||||
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
||||
-----BOUNDARY--
|
||||
|
||||
+ Response 201 (application/json; charset=utf-8)
|
||||
|
@ -90,8 +91,9 @@ Update squad, identified by its id
|
|||
Content-Type: image/png
|
||||
Content-Transfer-Encoding: base64
|
||||
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlMA
|
||||
QObYZgAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA
|
||||
B3RJTUUH4wIDDQIBeZj+RQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUH
|
||||
AAAAFklEQVQI12NgZ2f///8/w////xkZGQEq5gYTeotA1AAAAABJRU5ErkJggg==
|
||||
-----BOUNDARY--
|
||||
|
||||
+ Response 200 (application/json; charset=utf-8)
|
|
@ -1,8 +1,9 @@
|
|||
### List Users [GET /users{?q,fractFilter,limit,offset}]
|
||||
### List Users [GET /users{?q,fractFilter,squadId,decorationId,limit,offset}]
|
||||
|
||||
Get single army member information
|
||||
|
||||
+ Parameters
|
||||
|
||||
+ q: `hardi` (string, optional) - filter string which filters for partial username
|
||||
|
||||
+ fractFilter: `BLUFOR` (enum[string], optional) - Field to filter by fraction
|
||||
|
@ -12,17 +13,15 @@ Get single army member information
|
|||
+ `OPFOR`
|
||||
+ `GLOBAL`
|
||||
|
||||
+ squadId: `591470249e9fae286e008e31` (string, optional) - Field to filter by membership of certain squad
|
||||
+ squadId: `5aba54eaeadcce6332c6a774` (string, optional) - Field to filter by membership of certain squad
|
||||
|
||||
+ decorationId: `5abd3dff6e6a0334d95b8ba0` (string, optional) - Field to filter by ownership of certain decoration
|
||||
|
||||
+ limit: 20 (number, optional)
|
||||
Maximum number of users to return
|
||||
+ limit: 20 (number, optional) - Maximum number of users to return
|
||||
|
||||
+ Default: Infinity
|
||||
|
||||
+ offset: 0 (number, optional)
|
||||
Offset into result-set (useful for pagination)
|
||||
+ offset: 0 (number, optional) - Offset into result-set (useful for pagination)
|
||||
|
||||
+ Default: 0
|
||||
|
||||
|
@ -40,6 +39,7 @@ Get single army member information
|
|||
Get single army member information
|
||||
|
||||
+ Parameters
|
||||
|
||||
+ id: `5ab68d42f547ed304064e5f7` (string, required) - unique id of army-member
|
||||
|
||||
+ Response 200 (application/json; charset=utf-8)
|
|
@ -1,4 +1,5 @@
|
|||
# Campaign (object)
|
||||
|
||||
Campaign entity
|
||||
|
||||
## Properties
|
||||
|
@ -9,8 +10,10 @@ Campaign entity
|
|||
+ __v: 0 (number, required) - version number
|
||||
|
||||
#WarCampaign (object)
|
||||
|
||||
Cmpaign entity with attached War collection
|
||||
|
||||
## Properties
|
||||
+ _id: `5abd55ea9e30a76bfef747d6` (string, required) - unique id of the campaign
|
||||
+ title: `Ein Kessel Buntes` (string, required) - display title of the campaign
|
||||
+ wars (array[WarWithPlayers], requied)
|
||||
+ wars: WarWithPlayers (array[WarWithPlayers], required)
|
|
@ -3,7 +3,6 @@
|
|||
+ _id: `` (string, required) - log entry id
|
||||
+ war: `` (string, required) - warId
|
||||
+ time: `` (string, required) - logging timestamp
|
||||
+ __v: 0 (number, required) - object version number
|
||||
|
||||
# LogPoints (Log)
|
||||
## Properties
|
||||
|
@ -74,18 +73,19 @@
|
|||
#LogVehicle (Log)
|
||||
## Properties
|
||||
+ shooter: `HardiReady` (string, required) - name of player who shot the vehicle
|
||||
+ additionalShooter: [`[GNC]Paolo`, `Dominik`] (array[string], required) - additional crew members of shooter vehicle
|
||||
+ additionalShooter: `[GNC]Paolo`, `Dominik` (array[string], required) - additional crew members of shooter vehicle
|
||||
+ target: `T-100` (string, required) - name of the vehicle
|
||||
+ fraction: `BLUFOR` (enum, required) - fraction of the shooter
|
||||
+ Members
|
||||
+ `BLUFOR`
|
||||
+ `OPFOR`
|
||||
+ `NONE`
|
||||
+ vehicleClass: `LIGHT` (enum, required) - class of shot vehicle
|
||||
+ vehicleClass: `LIGHT` (enum[string], required) - class of shot vehicle
|
||||
+ Members
|
||||
+ `LIGHT`
|
||||
+ `HEAVY`
|
||||
+ `AIR`
|
||||
+ `BOAT`
|
||||
+ `UNKNOWN`
|
||||
+ shooterVehicle: `FV-720 Mora` (string, optional) - vehicle in whiock the shooting player sat
|
||||
+ magazine: `30 mm APFSDS` (string, optional) - magazine name used to execute the kill
|
|
@ -14,6 +14,8 @@ Basic player statistic information object
|
|||
+ respawn: 2 (number, required) - sum of respawns
|
||||
+ flagTouch: 1 (number, required) - sum of flag captures
|
||||
+ revive: 0 (number, required) - sum of revives
|
||||
+ travelDistance: 16535 (number, optional) - sum of transport meters as passenger
|
||||
+ driverDistance: 1250 (number, optional) - sum of transport meters as pilot/driver
|
||||
|
||||
|
||||
# WarPlayer (BasicPlayer)
|
||||
|
@ -22,15 +24,16 @@ A player campaign statistics object
|
|||
## Properties
|
||||
+ _id: `5ab68d42f547ed304064e5f7` (string, required) - unique id of the army member
|
||||
+ warId: `5abf65ae3fc5fa349ffd5ca3` (string, required) - war in which this player took part
|
||||
+ steamUUID: `76561192214911200` (string, required) - unique ID for STEAM platform account
|
||||
+ sort: 1 (number, required) - sorting number calculated by (kill + revive + flagTouch - friendlyFire - death - respawn)
|
||||
+ steamUUID: 76561192214911200 (number, optional) - unique ID for STEAM platform account
|
||||
+ performance: `5abf65ae3fc5fa349ffd5cs2` (string, optional) - id of corresponding performance log entry
|
||||
+ timestamp: `2018-02-24T01:01:25.825Z` - the entity creation timestamp
|
||||
+ updatedAt: `2018-02-24T01:01:25.825Z` - the version timestamp
|
||||
+ __v: 0 (number, required) - the version number of the object
|
||||
|
||||
|
||||
# HighscorePlayer (BasicPlayer)
|
||||
A player object as resturned for the highscore arrays
|
||||
A player object as returned for the highscore arrays
|
||||
|
||||
## Properties
|
||||
+ warId: War (War, required) - war in which this player took part
|
||||
+ num: 1
|
|
@ -6,6 +6,8 @@ A war as used in statistics
|
|||
+ title: `Battle No.1` (string, required) - the display neme of the war
|
||||
+ date: `2018-02-24T20:01:25.825Z` (string, required) - war start timestamp
|
||||
+ endDate: `2018-02-24T22:31:26.855Z` (string, required) - war end timestamp
|
||||
+ fractionMappingBlufor: `BLUFOR` (enum[string], required) - display name mapping for Blufor fraction
|
||||
+ fractionMappingOpfor: `OPFOR` (enum[string], required) - display name mapping for Opfor fraction
|
||||
+ ptBlufor: 11 (number, required) - final points fraction Blufor
|
||||
+ ptOpfor: 12 (number, required) - final points fraction Opfor
|
||||
+ playersBlufor: 36 (number, required) - player count of fraction Blufor
|
||||
|
@ -23,4 +25,4 @@ A war as used in statistics
|
|||
A war response object on creation
|
||||
|
||||
## Properties
|
||||
+ players (array[WarPlayer], required) - collection of all participating players with their statistics
|
||||
+ players (array[WarPlayer], required, fixed-type) - collection of all participating players with their statistics
|
|
@ -16,56 +16,66 @@ FORMAT: 1A
|
|||
|
||||
# Group Access
|
||||
|
||||
## Endpoints [/auth]
|
||||
|
||||
:[Gists](auth/signup.apib)
|
||||
|
||||
:[Gists](auth/login.apib)
|
||||
|
||||
# Group Admin
|
||||
|
||||
## Account [/account]
|
||||
|
||||
:[Gists](admin/account.apib)
|
||||
|
||||
## Commands [/cmd]
|
||||
|
||||
:[Gists](admin/signature.apib)
|
||||
|
||||
# Group Army Overview
|
||||
# Group Army Management
|
||||
|
||||
## Army [/overview]
|
||||
|
||||
:[Gists](army-management/army.apib)
|
||||
|
||||
# Group Awardings
|
||||
## Awardings [/awarding]
|
||||
|
||||
:[Gists](army-management/awardings.apib)
|
||||
|
||||
# Group Campaigns
|
||||
|
||||
:[Gists](statistics/campaigns.apib)
|
||||
|
||||
# Group Decorations
|
||||
## Decorations [/decorations]
|
||||
|
||||
:[Gists](army-management/decorations.apib)
|
||||
|
||||
# Group Logs
|
||||
|
||||
:[Gists](statistics/logs.apib)
|
||||
|
||||
# Group Players
|
||||
|
||||
:[Gists](statistics/players.apib)
|
||||
|
||||
# Group Promotion
|
||||
## Promotion [/promotions]
|
||||
|
||||
:[Gists](army-management/promotions.apib)
|
||||
|
||||
# Group Ranks
|
||||
## Ranks [/ranks]
|
||||
|
||||
:[Gists](army-management/ranks.apib)
|
||||
|
||||
# Group Squads
|
||||
## Squads [/squads]
|
||||
|
||||
:[Gists](army-management/squads.apib)
|
||||
|
||||
# Group Users
|
||||
## Users [/user]
|
||||
|
||||
:[Gists](army-management/users.apib)
|
||||
|
||||
# Group Wars
|
||||
# Group Statistics
|
||||
|
||||
## Campaigns [/campaigns]
|
||||
|
||||
:[Gists](statistics/campaigns.apib)
|
||||
|
||||
## Logs [/logs]
|
||||
|
||||
:[Gists](statistics/logs.apib)
|
||||
|
||||
## Players [/players]
|
||||
|
||||
:[Gists](statistics/players.apib)
|
||||
|
||||
## Wars [/wars]
|
||||
|
||||
:[Gists](statistics/wars.apib)
|
|
@ -0,0 +1,16 @@
|
|||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca4"},"name":"Pumarang","fraction":"BLUFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.656119805032149e+16,"respawn":1,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":1,"revive":0,"flagTouch":0,"sort":-2,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca5"},"name":"Mercurat","fraction":"BLUFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.65611982788425e+16,"respawn":0,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca6"},"name":"KalleK","fraction":"OPFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.656119797767603e+16,"respawn":0,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca7"},"name":"MAPster","fraction":"OPFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.656119800988213e+16,"respawn":0,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca8"},"name":"LyrikEmu","fraction":"BLUFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.65611982189104e+16,"respawn":0,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5ca9"},"name":"Philipp","fraction":"OPFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.656119804179206e+16,"respawn":0,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5caa"},"name":"Wiesl","fraction":"BLUFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.65611980596481e+16,"respawn":0,"kill":1,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":1,"death":0,"revive":1,"flagTouch":1,"sort":2,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65ae3fc5fa349ffd5cab"},"name":"Murda]X[","fraction":"OPFOR","warId":{"$oid":"5abf65ae3fc5fa349ffd5ca3"},"steamUUID":7.656119797112163e+16,"respawn":0,"kill":0,"vehicleLight":1,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:40:46.712Z"},"updatedAt":{"$date":"2018-03-31T10:40:46.712Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cbc"},"name":"Pumarang","fraction":"BLUFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.656119805032149e+16,"respawn":1,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":1,"revive":0,"flagTouch":0,"sort":-2,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cbd"},"name":"Mercurat","fraction":"BLUFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.65611982788425e+16,"respawn":0,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cbe"},"name":"KalleK","fraction":"OPFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.656119797767603e+16,"respawn":0,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cc1"},"name":"Philipp","fraction":"OPFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.656119804179206e+16,"respawn":0,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cc0"},"name":"LyrikEmu","fraction":"BLUFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.65611982189104e+16,"respawn":0,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cc2"},"name":"Wiesl","fraction":"BLUFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.65611980596481e+16,"respawn":0,"kill":1,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":1,"death":0,"revive":1,"flagTouch":1,"sort":2,"timestamp":{"$date":"2018-03-31T10:41:28.460Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.460Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cc3"},"name":"Murda]X[","fraction":"OPFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.656119797112163e+16,"respawn":0,"kill":0,"vehicleLight":1,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.460Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.460Z"},"__v":0}
|
||||
{"_id":{"$oid":"5abf65d83fc5fa349ffd5cbf"},"name":"MAPster","fraction":"OPFOR","warId":{"$oid":"5abf65d83fc5fa349ffd5cbb"},"steamUUID":7.656119800988213e+16,"respawn":0,"kill":0,"vehicleLight":0,"vehicleHeavy":0,"vehicleAir":0,"steamUUID":76561192214911200,"friendlyFire":0,"death":0,"revive":0,"flagTouch":0,"sort":0,"timestamp":{"$date":"2018-03-31T10:41:28.459Z"},"updatedAt":{"$date":"2018-03-31T10:41:28.459Z"},"__v":0}
|
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 95 B |
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 95 B |
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 95 B |
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 95 B |
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 95 B |
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 95 B |
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 95 B |
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 95 B |
Before Width: | Height: | Size: 95 B After Width: | Height: | Size: 95 B |
After Width: | Height: | Size: 95 B |
After Width: | Height: | Size: 160 B |
|
@ -0,0 +1,34 @@
|
|||
2018/03/20, 20:05:43 "[OPT] (Budget) LOG: 0:00:00 --- Startbudget: NATO 4.5355e+006 - CSAT 4.22125e+006"
|
||||
|
||||
2018/03/20, 20:06:45 "[OPT] (Budget) LOG: 0:01:02 --- NATO alt: 4.5355e+006 - neu: 4.1955e+006 - Differenz: -340000"
|
||||
|
||||
2018/03/20, 20:10:11 "[OPT] (Abschuss) LOG: 0:04:28 --- Saxe (WEST) von: Selbstverschulden."
|
||||
|
||||
2018/03/20, 20:10:11 "[OPT] (Abschuss) LOG: 0:04:28 --- Pumarang (WEST) von: Saxe (WEST)."
|
||||
|
||||
2018/03/20, 20:10:13 "[OPT] (Budget) LOG: 0:04:30 --- CSAT alt: 2.38425e+006 - neu: 2.32425e+006 - Differenz: -60000"
|
||||
|
||||
2018/03/20, 20:15:54 "[OPT] (Punkte) LOG: 0:10:11 --- Kein Dominator (NATO 0 | CSAT 0)"
|
||||
|
||||
2018/03/20, 20:17:51 "[OPT] (Abschuss) LOG: 0:12:08 --- patze (EAST) von: Wiesl (WEST)."
|
||||
|
||||
2018/03/20, 20:18:20 "[OPT] (Fahne) LOG: 0:12:37 --- CSAT Flagge erobert von Wiesl"
|
||||
|
||||
2018/03/20, 20:18:38 "[OPT] (Abschuss) LOG: 0:12:55 --- Nicolas (WEST) von: Wiesl (WEST)."
|
||||
|
||||
2018/03/20, 20:18:59 "[OPT] (Punkte) LOG: 0:13:16 --- NATO +1 (NATO 1 | CSAT 0)"
|
||||
|
||||
2018/03/20, 20:19:38 "[OPT] (Fahne) LOG: 0:13:56 --- CSAT Flagge gesichert von ALASTOR"
|
||||
|
||||
2018/03/20, 20:22:18 "[OPT] (Abschuss) LOG: 0:16:35 --- Fahrzeug: Hunter-HMG (OPT_NATO) von: Murda]X[ (EAST)."
|
||||
|
||||
2018/03/20, 20:37:19 "[OPT] (Transport) LOG: 0:31:36 --- Dominik (WEST) wurde von Ponykloete (WEST) eingeflogen (8666.94 m)"
|
||||
|
||||
2018/03/20, 20:41:27 "[OPT] (Revive) LOG: 0:35:44 --- Bodochecker (EAST) wurde von ALASTOR (EAST) stabilisiert."
|
||||
|
||||
2018/03/20, 20:41:35 "[OPT] (Revive) LOG: 0:35:52 --- Andi-de (WEST) wurde von Wiesl (WEST) wiederbelebt."
|
||||
|
||||
2018/03/20, 22:35:43 "[OPT] (Budget) LOG: 2:30:00 --- Endbudget: (NATO 1997000 | CSAT 512000)"
|
||||
|
||||
2018/03/20, 22:35:43 "[OPT] (Punkte) LOG: 2:30:00 --- Endpunktestand: (NATO 34 | CSAT 25)"
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
Error: ENOENT: no such file or directory, open '
|
||||
2018/03/20, 20:05:43 "[OPT] (Budget) LOG: 0:00:00 --- Startbudget: NATO 4.5355e+006 - CSAT 4.22125e+006"
|
||||
2018/03/20, 20:06:45 "[OPT] (Budget) LOG: 0:01:02 --- NATO alt: 4.5355e+006 - neu: 4.1955e+006 - Differenz: -340000"
|
||||
2018/03/20, 20:10:11 "[OPT] (Abschuss) LOG: 0:04:28 --- Saxe (WEST) von: Selbstverschulden."
|
||||
2018/03/20, 20:10:11 "[OPT] (Abschuss) LOG: 0:04:28 --- Pumarang (WEST) von: Saxe (WEST)."
|
||||
2018/03/20, 20:10:13 "[OPT] (Budget) LOG: 0:04:30 --- CSAT alt: 2.38425e+006 - neu: 2.32425e+006 - Differenz: -60000"
|
||||
2018/03/20, 20:10:38 "[OPT] (Respawn) LOG: 0:04:55 --- Spieler: Pumarang - Kosten: 3000"
|
||||
2018/03/20, 20:15:54 "[OPT] (Punkte) LOG: 0:10:11 --- Kein Dominator (NATO 0 | CSAT 0)"
|
||||
2018/03/20, 20:17:51 "[OPT] (Abschuss) LOG: 0:12:08 --- patze (EAST) von: Wiesl (WEST)."
|
||||
2018/03/20, 20:18:20 "[OPT] (Fahne) LOG: 0:12:37 --- CSAT Flagge erobert von Wiesl"
|
||||
2018/03/20, 20:18:38 "[OPT] (Abschuss) LOG: 0:12:55 --- Nicolas (WEST) von: Wiesl (WEST)."
|
||||
2018/03/20, 20:18:59 "[OPT] (Punkte) LOG: 0:13:16 --- NATO +1 (NATO 1 | CSAT 0)"
|
||||
2018/03/20, 20:19:38 "[OPT] (Fahne) LOG: 0:13:56 --- CSAT Flagge gesichert von ALASTOR"
|
||||
2018/03/20, 20:22:18 "[OPT] (Abschuss) LOG: 0:16:35 --- Fahrzeug: Hunter-HMG (OPT_NATO) von: Murda]X[ (EAST)."
|
||||
2018/03/20, 20:37:19 "[OPT] (Transport) LOG: 0:31:36 --- Dominik (WEST) wurde von Ponykloete (WEST) eingeflogen (8666.94 m)"
|
||||
2018/03/20, 20:41:27 "[OPT] (Revive) LOG: 0:35:44 --- Bodochecker (EAST) wurde von ALASTOR (EAST) stabilisiert."
|
||||
2018/03/20, 20:41:35 "[OPT] (Revive) LOG: 0:35:52 --- Andi-de (WEST) wurde von Wiesl (WEST) wiederbelebt."
|
||||
2018/03/20, 22:35:43 "[OPT] (Mission) LOG: 2:30:00 --- Missionzeit abgelaufen"
|
||||
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- Pumarang (WEST), PUID 76561198050321485"
|
||||
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- Mercurat (WEST), PUID 76561198278842491"
|
||||
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- KalleK (EAST), PUID 76561197977676036"
|
||||
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- MAPster (EAST), PUID 76561198009882133"
|
||||
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- LyrikEmu (WEST), PUID 76561198218910400"
|
||||
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- Philipp (EAST), PUID 76561198041792069"
|
||||
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- Wiesl (WEST), PUID 76561198059648090"
|
||||
2018/03/20, 22:35:43 "[OPT] (Fraktionsuebersicht) LOG: 2:30:00 --- Murda]X[ (EAST), PUID 76561197971121630"
|
||||
2018/03/20, 22:35:43 "[OPT] (Budget) LOG: 2:30:00 --- Endbudget: (NATO 1997000 | CSAT 512000)"
|
||||
2018/03/20, 22:35:43 "[OPT] (Punkte) LOG: 2:30:00 --- Endpunktestand: (NATO 34 | CSAT 25)"
|
||||
'
|
After Width: | Height: | Size: 95 B |
After Width: | Height: | Size: 95 B |
After Width: | Height: | Size: 160 B |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 95 B |
After Width: | Height: | Size: 160 B |
|
@ -2,7 +2,6 @@
|
|||
|
||||
Get all campaigns information
|
||||
|
||||
|
||||
+ Response 200 (application/json; charset=utf-8)
|
||||
|
||||
+ Attributes (array[Campaign], fixed-type)
|
||||
|
@ -17,6 +16,18 @@ Get single campaign information
|
|||
+ Response 200 (application/json; charset=utf-8)
|
||||
|
||||
+ Attributes (Campaign, fixed-type)
|
||||
|
||||
### Get Campaign Containing Specific War [GET /campaigns/with/war/{warId}]
|
||||
|
||||
Get a single campaign, containing a specific war
|
||||
|
||||
+ Parameters
|
||||
+ warId: `5abf65ae3fc5fa349ffd5ca3` (string, required) - unique id of war that has to be part of campaign
|
||||
|
||||
+ Response 200 (application/json; charset=utf-8)
|
||||
|
||||
+ Attributes (Campaign, fixed-type)
|
||||
|
||||
|
||||
### Create Campaign [POST /campaigns]
|
||||
|
|
@ -33,4 +33,4 @@ Get statistics for a single player for all wars of a campaign he took part at
|
|||
+ Attributes
|
||||
+ name: `Pumarang` (string, required) - latest used playername
|
||||
+ campaign (Campaign,required) - campaign reflected from request is
|
||||
+ players (array[WarPlayer],required) - collection of player instances in the campaign
|
||||
+ players (array[HighscorePlayer],required, fixed-type) - collection of player instances in the campaign
|
|
@ -1,10 +1,13 @@
|
|||
### List Wars [GET /wars]
|
||||
### List Wars [GET /wars{?campaignId}]
|
||||
|
||||
List all wars, subordinate to their campaign
|
||||
List all wars
|
||||
|
||||
+ Parameters
|
||||
+ campaignId: `5abd55ea9e30a76bfef747d6` (string, optional) - show only wars from campaign with this id
|
||||
|
||||
+ Response 200 (application/json; charset=utf-8)
|
||||
|
||||
+ Attributes (array[WarCampaign], fixed-type)
|
||||
+ Attributes (array[War], fixed-type)
|
||||
|
||||
### Get War [GET /wars/{id}]
|
||||
|
|
@ -15,6 +15,7 @@ module.exports = {
|
|||
request: rootRoute + '/request',
|
||||
signatures: '/signatures',
|
||||
signUp: rootRoute + '/authenticate/signup',
|
||||
slotting: rootRoute + '/slotting',
|
||||
squads: rootRoute + '/squads',
|
||||
users: rootRoute + '/users',
|
||||
wars: rootRoute + '/wars',
|
|
@ -5,6 +5,11 @@ module.exports = {
|
|||
database: {
|
||||
uri: 'mongodb://localhost:27017/',
|
||||
db: 'cc',
|
||||
mongooseConfig: {
|
||||
useNewUrlParser: true,
|
||||
useCreateIndex: true,
|
||||
useFindAndModify: false,
|
||||
},
|
||||
},
|
||||
|
||||
prod: {
|