diff --git a/index.js b/index.js index 2d11bf2..9ebf98a 100644 --- a/index.js +++ b/index.js @@ -306,19 +306,13 @@ function printStats () { 'Stations:\n' + `* Stations: ${stats.stations.stations.toLocaleString()}\n` + `* Fleet Carriers: ${stats.stations.carriers.toLocaleString()}\n` + - `* Station updates in last hour: ${stats.stations.updatedInLastHour.toLocaleString()}\n` + `* Station updates in last 24 hours: ${stats.stations.updatedInLast24Hours.toLocaleString()}\n` + - `* Station updates in last 7 days: ${stats.stations.updatedInLast7Days.toLocaleString()}\n` + - `* Station updates in last 30 days: ${stats.stations.updatedInLast30Days.toLocaleString()}\n` + 'Trade:\n' + `* Station markets: ${stats.trade.stations.toLocaleString()}\n` + `* Fleet Carrier markets: ${stats.trade.carriers.toLocaleString()}\n` + `* Trade systems: ${stats.trade.systems.toLocaleString()}\n` + `* Trade orders: ${stats.trade.tradeOrders.toLocaleString()}\n` + - `* Trade updates in last hour: ${stats.trade.updatedInLastHour.toLocaleString()}\n` + `* Trade updates in last 24 hours: ${stats.trade.updatedInLast24Hours.toLocaleString()}\n` + - `* Trade updates in last 7 days: ${stats.trade.updatedInLast7Days.toLocaleString()}\n` + - `* Trade updates in last 30 days: ${stats.trade.updatedInLast30Days.toLocaleString()}\n` + `* Unique commodities: ${stats.trade.uniqueCommodities.toLocaleString()}\n` + `Stats last updated: ${stats.timestamp}` : 'Stats not generated yet') diff --git a/package.json b/package.json index 0f86739..3af57b4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ardent-collector", - "version": "1.61.1", + "version": "1.62.0", "description": "Ardent Collector saves data submitted to EDDN", "main": "index.js", "scripts": { diff --git a/scripts/stats/database-stats.js b/scripts/stats/database-stats.js index eb0d465..6f9565a 100644 --- a/scripts/stats/database-stats.js +++ b/scripts/stats/database-stats.js @@ -4,8 +4,6 @@ const { getISOTimestamp } = require('../../lib/utils/dates') const { systemsDb, locationsDb, stationsDb, tradeDb } = require('../../lib/db') ;(async () => { - const dateTimeOneHourAgo = new Date(new Date().setHours(new Date().getHours() - 1)).toISOString() - console.log('Updating database stats…') console.time('Update database stats') const commodityStats = tradeDb.prepare(` @@ -15,37 +13,19 @@ const { systemsDb, locationsDb, stationsDb, tradeDb } = require('../../lib/db') (SELECT COUNT(DISTINCT(systemName)) as count FROM commodities) AS tradeSystems, (SELECT COUNT(DISTINCT(stationName)) as count FROM commodities WHERE fleetCarrier = 0) AS tradeStations, (SELECT COUNT(DISTINCT(stationName)) as count FROM commodities WHERE fleetCarrier = 1) AS tradeCarriers, - (SELECT COUNT(*) FROM commodities WHERE updatedAt > @lastHourTimestamp) as updatedInLastHour, - (SELECT COUNT(*) FROM commodities WHERE updatedAt > @last24HoursTimestamp) as updatedInLast24Hours, - (SELECT COUNT(*) FROM commodities WHERE updatedAt > @last7DaysTimestamp) as updatedInLast7Days, - (SELECT COUNT(*) FROM commodities WHERE updatedAt > @last30DaysTimestamp) as updatedInLast30Days, - (SELECT COUNT(*) FROM commodities WHERE updatedAt > @last90DaysTimestamp) as updatedInLast90Days, - (SELECT COUNT(*) FROM commodities WHERE updatedAt <= @last90DaysTimestamp) as updatedMoreThan90DaysAgo + (SELECT COUNT(*) FROM commodities WHERE updatedAt > @last24HoursTimestamp) as updatedInLast24Hours FROM commodities `).get({ - lastHourTimestamp: dateTimeOneHourAgo, - last24HoursTimestamp: getISOTimestamp(-1), - last7DaysTimestamp: getISOTimestamp(-7), - last30DaysTimestamp: getISOTimestamp(-30), - last90DaysTimestamp: getISOTimestamp(-90) + last24HoursTimestamp: getISOTimestamp(-1) }) const stationStats = stationsDb.prepare(` SELECT (SELECT COUNT(*) FROM stations WHERE stationType != 'Fleet Carrier') as stations, (SELECT COUNT(*) FROM stations WHERE stationType = 'Fleet Carrier') as fleetCarriers, - (SELECT COUNT(*) FROM stations WHERE updatedAt > @lastHourTimestamp) as updatedInLastHour, - (SELECT COUNT(*) FROM stations WHERE updatedAt > @last24HoursTimestamp) as updatedInLast24Hours, - (SELECT COUNT(*) FROM stations WHERE updatedAt > @last7DaysTimestamp) as updatedInLast7Days, - (SELECT COUNT(*) FROM stations WHERE updatedAt > @last30DaysTimestamp) as updatedInLast30Days, - (SELECT COUNT(*) FROM stations WHERE updatedAt > @last90DaysTimestamp) as updatedInLast90Days, - (SELECT COUNT(*) FROM stations WHERE updatedAt <= @last90DaysTimestamp) as updatedMoreThan90DaysAgo + (SELECT COUNT(*) FROM stations WHERE updatedAt > @last24HoursTimestamp) as updatedInLast24Hours FROM stations `).get({ - lastHourTimestamp: dateTimeOneHourAgo, - last24HoursTimestamp: getISOTimestamp(-1), - last7DaysTimestamp: getISOTimestamp(-7), - last30DaysTimestamp: getISOTimestamp(-30), - last90DaysTimestamp: getISOTimestamp(-90) + last24HoursTimestamp: getISOTimestamp(-1) }) const stats = { systems: systemsDb.prepare('SELECT COUNT(*) as count FROM systems').get().count, @@ -53,32 +33,17 @@ const { systemsDb, locationsDb, stationsDb, tradeDb } = require('../../lib/db') stations: { stations: stationStats.stations, carriers: stationStats.fleetCarriers, - updatedInLastHour: stationStats.updatedInLastHour, - updatedInLast24Hours: stationStats.updatedInLast24Hours, - updatedInLast7Days: stationStats.updatedInLast7Days, - updatedInLast30Days: stationStats.updatedInLast30Days, - updatedInLast90Days: stationStats.updatedInLast90Days, - updatedMoreThan90DaysAgo: stationStats.updatedMoreThan90DaysAgo + updatedInLast24Hours: stationStats.updatedInLast24Hours }, trade: { systems: commodityStats.tradeSystems, stations: commodityStats.tradeStations, carriers: commodityStats.tradeCarriers, tradeOrders: commodityStats.tradeOrders, - updatedInLastHour: commodityStats.updatedInLastHour, updatedInLast24Hours: commodityStats.updatedInLast24Hours, - updatedInLast7Days: commodityStats.updatedInLast7Days, - updatedInLast30Days: commodityStats.updatedInLast30Days, - updatedInLast90Days: commodityStats.updatedInLast90Days, - updatedMoreThan90DaysAgo: commodityStats.updatedMoreThan90DaysAgo, uniqueCommodities: commodityStats.uniqueCommodities }, - updatedInLastHour: commodityStats.updatedInLastHour + stationStats.updatedInLastHour, updatedInLast24Hours: commodityStats.updatedInLast24Hours + stationStats.updatedInLast24Hours, - updatedInLast7Days: commodityStats.updatedInLast7Days + stationStats.updatedInLast7Days, - updatedInLast30Days: commodityStats.updatedInLast30Days + stationStats.updatedInLast30Days, - updatedInLast90Days: commodityStats.updatedInLast90Days + stationStats.updatedInLast90Days, - updatedMoreThan90DaysAgo: commodityStats.updatedMoreThan90DaysAgo + stationStats.updatedMoreThan90DaysAgo, timestamp: new Date().toISOString() } if (!fs.existsSync(ARDENT_CACHE_DIR)) { fs.mkdirSync(ARDENT_CACHE_DIR, { recursive: true }) }