mirror of
https://github.com/Foltik/Shimapan
synced 2025-03-09 05:55:52 -04:00
Work on stat service
This commit is contained in:
parent
679a85a1b5
commit
62854d8ff5
@ -1,4 +1,4 @@
|
|||||||
var angular = require('angular');
|
const angular = require('angular');
|
||||||
|
|
||||||
angular.module('DashCtrl', ['chart.js', 'StatSvc']).controller('DashController', ['$scope', 'StatService', async ($scope, StatService) => {
|
angular.module('DashCtrl', ['chart.js', 'StatSvc']).controller('DashController', ['$scope', 'StatService', async ($scope, StatService) => {
|
||||||
const colorScheme = ['#2a9fd6'];
|
const colorScheme = ['#2a9fd6'];
|
||||||
@ -9,28 +9,37 @@ angular.module('DashCtrl', ['chart.js', 'StatSvc']).controller('DashController',
|
|||||||
(new Date(currentDate - oneDay * (6 - i))).toISOString().substr(5, 5));
|
(new Date(currentDate - oneDay * (6 - i))).toISOString().substr(5, 5));
|
||||||
|
|
||||||
const toHumanReadable = bytes => {
|
const toHumanReadable = bytes => {
|
||||||
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
const units = ['B', 'KiB', 'MiB', 'GiB', 'TiB'];
|
||||||
let index = 0;
|
let index = 0;
|
||||||
for (; bytes >= 1024 && index < units.length - 1; index++, bytes /= 1024) {}
|
for(; bytes >= 1024 && index < units.length - 1; index++)
|
||||||
|
bytes /= 1024;
|
||||||
return bytes.toFixed(3) + ' ' + units[index];
|
return bytes.toFixed(3) + ' ' + units[index];
|
||||||
};
|
};
|
||||||
|
|
||||||
StatService.getWeek((err, stats) => {
|
// Get stats for the week
|
||||||
$scope.uploadData = [Array.from({length: 7}, (val, i) => stats[labels[i]] && stats[labels[i]].uploads ? stats[labels[i]].uploads : 0)];
|
$scope.statWeekUploads = 0;
|
||||||
$scope.viewData = [Array.from({length: 7}, (val, i) => stats[labels[i]] && stats[labels[i]].views ? stats[labels[i]].views : 0)];
|
$scope.statWeekUploadSize = 0;
|
||||||
|
$scope.statWeekViews = 0;
|
||||||
|
|
||||||
$scope.stats = stats;
|
const weekStats = await StatService.getWeek();
|
||||||
|
console.log(weekStats);
|
||||||
|
|
||||||
$scope.statUploads = Object.keys(stats).reduce((acc, key) => acc + (stats[key].uploads ? stats[key].uploads : 0), 0);
|
$scope.uploadData = [Array.from({length: 7}, (val, i) => weekStats[labels[i]] && weekStats[labels[i]].uploads ? weekStats[labels[i]].uploads : 0)];
|
||||||
$scope.statUploadSize = toHumanReadable(Object.keys(stats).reduce((acc, key) => acc + (stats[key].size ? stats[key].size : 0), 0));
|
$scope.viewData = [Array.from({length: 7}, (val, i) => weekStats[labels[i]] && weekStats[labels[i]].views ? weekStats[labels[i]].views : 0)];
|
||||||
$scope.statViews = Object.keys(stats).reduce((acc, key) => acc + (stats[key].views ? stats[key].views : 0), 0);
|
|
||||||
});
|
|
||||||
|
|
||||||
StatService.getAll((err, stats) => {
|
$scope.statWeekUploads = Object.keys(weekStats).reduce((acc, key) => acc + (weekStats[key].uploads ? weekStats[key].uploads : 0), 0);
|
||||||
$scope.statTotalUploads = stats.count;
|
$scope.statWeekUploadSize = toHumanReadable(Object.keys(weekStats).reduce((acc, key) => acc + (weekStats[key].size ? weekStats[key].size : 0), 0));
|
||||||
$scope.statTotalUploadSize = toHumanReadable(stats.size);
|
$scope.statWeekViews = Object.keys(weekStats).reduce((acc, key) => acc + (weekStats[key].views ? weekStats[key].views : 0), 0);
|
||||||
$scope.statTotalViews = stats.views;
|
|
||||||
});
|
// Get all-time stats
|
||||||
|
$scope.statTotalUploads = 0;
|
||||||
|
$scope.statTotalUploadSize = 0;
|
||||||
|
$scope.statTotalViews = 0;
|
||||||
|
const allStats = await StatService.getAll();
|
||||||
|
console.log(allStats);
|
||||||
|
$scope.statTotalUploads = allStats.count;
|
||||||
|
$scope.statTotalUploadSize = toHumanReadable(allStats.size);
|
||||||
|
$scope.statTotalViews = allStats.views;
|
||||||
|
|
||||||
$scope.uploadColors = colorScheme;
|
$scope.uploadColors = colorScheme;
|
||||||
$scope.uploadLabels = labels;
|
$scope.uploadLabels = labels;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
var angular = require('angular');
|
const angular = require('angular');
|
||||||
|
|
||||||
angular.module('AuthSvc', []).service('AuthService', ['$http', '$window', function($http) {
|
angular.module('AuthSvc', []).service('AuthService', ['$http', '$window', function($http) {
|
||||||
this.login = async (displayname, password) =>
|
this.login = async (displayname, password) =>
|
||||||
|
@ -1,23 +1,21 @@
|
|||||||
var angular = require('angular');
|
const angular = require('angular');
|
||||||
|
|
||||||
angular.module('StatSvc', []).service('StatService', ['$http', function($http) {
|
angular.module('StatSvc', []).service('StatService', ['$http', function($http) {
|
||||||
this.getWeek = cb =>
|
this.getWeek = async () => {
|
||||||
$http({
|
const res = await $http({
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
url: '/api/stats/week'
|
url: '/api/stats/week'
|
||||||
}).then(res => {
|
|
||||||
cb(null, res.data)
|
|
||||||
}).catch(err => {
|
|
||||||
cb(err);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this.getAll = cb =>
|
return res.data;
|
||||||
$http({
|
};
|
||||||
|
|
||||||
|
this.getAll = async () => {
|
||||||
|
const res = await $http({
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
url: '/api/stats/all'
|
url: '/api/stats/all'
|
||||||
}).then(res => {
|
|
||||||
cb(null, res.data[0])
|
|
||||||
}).catch(err => {
|
|
||||||
cb(err);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return res.data;
|
||||||
|
}
|
||||||
}]);
|
}]);
|
||||||
|
@ -98,7 +98,6 @@ router.post('/register',
|
|||||||
res.status(200).json({'message': 'Registration successful.'});
|
res.status(200).json({'message': 'Registration successful.'});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
console.log(config.get('RateLimit'));
|
|
||||||
const loginLimiter = config.get('RateLimit.enable')
|
const loginLimiter = config.get('RateLimit.enable')
|
||||||
? rateLimit({
|
? rateLimit({
|
||||||
windowMs: config.get('RateLimit.login.window') * 1000,
|
windowMs: config.get('RateLimit.login.window') * 1000,
|
||||||
|
Loading…
Reference in New Issue
Block a user