Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
/ * *
* THIS IS LEGACY , UNMAINTAINED CODE
* IT MAY ( AND LIKELY DOES ) CONTAIN BUGS
* USAGE IS NOT RECOMMENDED
* /
2015-11-02 04:56:08 +00:00
var server = require ( './lib/server' ) ;
var ping = require ( './lib/ping' ) ;
2015-11-02 05:46:24 +00:00
var logger = require ( './lib/logger' ) ;
2015-11-03 04:32:54 +00:00
var mojang = require ( './lib/mojang_services' ) ;
2015-11-09 00:34:17 +00:00
var util = require ( './lib/util' ) ;
2015-12-11 04:06:27 +00:00
var db = require ( './lib/database' ) ;
2015-11-02 05:46:24 +00:00
2015-11-02 04:56:08 +00:00
var config = require ( './config.json' ) ;
2016-02-01 10:39:31 +00:00
var servers = require ( './servers.json' ) ;
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
var minecraftVersions = require ( './minecraft_versions.json' ) ;
2015-11-02 04:56:08 +00:00
var networkHistory = [ ] ;
var connectedClients = 0 ;
2016-03-02 03:09:38 +00:00
var networkVersions = [ ] ;
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
const lastFavicons = [ ] ;
2015-12-18 07:45:38 +00:00
var graphData = [ ] ;
2017-03-11 23:44:21 +00:00
var highestPlayerCount = { } ;
2015-12-18 07:45:38 +00:00
var lastGraphPush = [ ] ;
2020-03-30 05:48:47 +00:00
var graphPeaks = { } ;
2015-12-18 07:45:38 +00:00
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
const serverProtocolVersionIndexes = [ ]
function getNextProtocolVersion ( server ) {
// Minecraft Bedrock Edition does not have protocol versions
if ( server . type === 'PE' ) {
return {
protocolId : 0 ,
protocolIndex : 0
}
}
const protocolVersions = minecraftVersions [ server . type ]
let nextProtocolVersion = serverProtocolVersionIndexes [ server . name ]
if ( typeof nextProtocolVersion === 'undefined' || nextProtocolVersion + 1 >= protocolVersions . length ) {
nextProtocolVersion = 0
} else {
nextProtocolVersion ++
}
serverProtocolVersionIndexes [ server . name ] = nextProtocolVersion
return {
protocolId : protocolVersions [ nextProtocolVersion ] . protocolId ,
protocolIndex : nextProtocolVersion
}
}
2015-11-02 06:57:30 +00:00
function pingAll ( ) {
2015-11-02 05:21:42 +00:00
for ( var i = 0 ; i < servers . length ; i ++ ) {
2015-11-02 04:56:08 +00:00
// Make sure we lock our scope.
( function ( network ) {
2017-04-04 03:10:46 +00:00
// Asign auto generated color if not present
if ( ! network . color ) {
network . color = util . stringToColor ( network . name ) ;
}
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
const attemptedVersion = getNextProtocolVersion ( network )
2015-11-03 04:32:54 +00:00
ping . ping ( network . ip , network . port , network . type , config . rates . connectTimeout , function ( err , res ) {
2015-11-02 04:56:08 +00:00
// Handle our ping results, if it succeeded.
if ( err ) {
2015-12-26 20:05:39 +00:00
logger . log ( 'error' , 'Failed to ping ' + network . ip + ': ' + err . message ) ;
2015-11-02 04:56:08 +00:00
}
2015-11-09 01:08:31 +00:00
// If we have favicon override specified, use it.
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
if ( network . favicon ) {
res . favicon = network . favicon
2015-11-09 01:08:31 +00:00
}
2016-03-02 03:09:38 +00:00
handlePing ( network , res , err , attemptedVersion ) ;
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
} , attemptedVersion . protocolId ) ;
2015-12-26 20:21:20 +00:00
} ) ( servers [ i ] ) ;
}
}
2015-11-24 06:34:00 +00:00
2015-12-26 20:21:20 +00:00
// This is where the result of a ping is feed.
// This stores it and converts it to ship to the frontend.
2016-03-02 03:09:38 +00:00
function handlePing ( network , res , err , attemptedVersion ) {
// Log our response.
if ( ! networkHistory [ network . name ] ) {
networkHistory [ network . name ] = [ ] ;
}
// Update the version list
if ( ! networkVersions [ network . name ] ) {
networkVersions [ network . name ] = [ ] ;
}
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
const serverVersionHistory = networkVersions [ network . name ]
2016-03-02 03:09:38 +00:00
// If the result version matches the attempted version, the version is supported
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
if ( res && res . version !== undefined ) {
const indexOf = serverVersionHistory . indexOf ( attemptedVersion . protocolIndex )
// Test indexOf to avoid inserting previously recorded protocolIndex values
if ( res . version === attemptedVersion . protocolId && indexOf === - 1 ) {
serverVersionHistory . push ( attemptedVersion . protocolIndex )
} else if ( res . version !== attemptedVersion . protocolId && indexOf >= 0 ) {
serverVersionHistory . splice ( indexOf , 1 )
}
}
const timestamp = util . getCurrentTimeMs ( )
2016-03-02 03:09:38 +00:00
if ( res ) {
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
const recordData = highestPlayerCount [ network . ip ]
// Validate that we have logToDatabase enabled otherwise in memory pings
// will create a record that's only valid for the runtime duration.
if ( config . logToDatabase && ( ! recordData || res . players . online > recordData . playerCount ) ) {
highestPlayerCount [ network . ip ] = {
playerCount : res . players . online ,
timestamp : timestamp
2016-03-02 03:09:38 +00:00
}
}
}
// Update the clients
2015-12-26 20:21:20 +00:00
var networkSnapshot = {
info : {
name : network . name ,
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
timestamp : timestamp ,
2016-03-02 03:09:38 +00:00
type : network . type
} ,
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
versions : serverVersionHistory ,
recordData : highestPlayerCount [ network . ip ]
2015-12-26 20:21:20 +00:00
} ;
if ( res ) {
networkSnapshot . result = res ;
2017-03-11 23:44:21 +00:00
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
// Only emit updated favicons
// Favicons will otherwise be explicitly emitted during the handshake process
if ( res . favicon ) {
const lastFavicon = lastFavicons [ network . name ]
if ( lastFavicon !== res . favicon ) {
lastFavicons [ network . name ] = res . favicon
networkSnapshot . favicon = res . favicon // Send updated favicon directly on object
}
delete res . favicon // Never store favicons in memory outside lastFavicons
2017-03-11 23:44:21 +00:00
}
2015-12-26 20:21:20 +00:00
} else if ( err ) {
networkSnapshot . error = err ;
}
2015-11-02 05:19:27 +00:00
2015-12-26 20:21:20 +00:00
server . io . sockets . emit ( 'update' , networkSnapshot ) ;
2015-11-02 04:56:08 +00:00
2015-12-26 20:21:20 +00:00
var _networkHistory = networkHistory [ network . name ] ;
2015-11-24 06:34:00 +00:00
2015-12-26 20:21:20 +00:00
// Remove our previous data that we don't need anymore.
for ( var i = 0 ; i < _networkHistory . length ; i ++ ) {
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
delete _networkHistory [ i ] . versions
2015-12-26 20:21:20 +00:00
delete _networkHistory [ i ] . info ;
}
2015-12-11 04:06:27 +00:00
2015-12-26 20:21:20 +00:00
_networkHistory . push ( {
error : err ,
result : res ,
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
versions : serverVersionHistory ,
timestamp : timestamp ,
2015-12-26 20:21:20 +00:00
info : {
ip : network . ip ,
port : network . port ,
type : network . type ,
2017-03-11 23:44:21 +00:00
name : network . name
2015-12-26 20:21:20 +00:00
}
} ) ;
// Make sure we never log too much.
if ( _networkHistory . length > 72 ) { // 60/2.5 = 24, so 24 is one minute
_networkHistory . shift ( ) ;
}
2015-12-18 07:45:38 +00:00
2015-12-26 20:21:20 +00:00
// Log it to the database if needed.
if ( config . logToDatabase ) {
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
db . log ( network . ip , timestamp , res ? res . players . online : 0 ) ;
2015-12-26 20:21:20 +00:00
}
2015-12-18 07:45:38 +00:00
2015-12-26 20:21:20 +00:00
// The same mechanic from trimUselessPings is seen here.
// If we dropped the ping, then to avoid destroying the graph, ignore it.
// However if it's been too long since the last successful ping, we'll send it anyways.
if ( config . logToDatabase ) {
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
if ( ! lastGraphPush [ network . ip ] || ( timestamp - lastGraphPush [ network . ip ] >= 60 * 1000 && res ) || timestamp - lastGraphPush [ network . ip ] >= 70 * 1000 ) {
lastGraphPush [ network . ip ] = timestamp ;
2015-12-18 07:45:38 +00:00
2015-12-26 20:21:20 +00:00
// Don't have too much data!
util . trimOldPings ( graphData ) ;
2015-12-18 07:45:38 +00:00
2016-02-01 10:53:40 +00:00
if ( ! graphData [ network . name ] ) {
graphData [ network . name ] = [ ] ;
2015-12-28 02:04:20 +00:00
}
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
graphData [ network . name ] . push ( [ timestamp , res ? res . players . online : 0 ] ) ;
2015-12-26 20:21:20 +00:00
// Send the update.
server . io . sockets . emit ( 'updateHistoryGraph' , {
ip : network . ip ,
2016-02-01 10:58:05 +00:00
name : network . name ,
2015-12-26 20:21:20 +00:00
players : ( res ? res . players . online : 0 ) ,
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
timestamp : timestamp
2015-11-02 04:56:08 +00:00
} ) ;
2015-12-26 20:21:20 +00:00
}
2020-03-30 05:37:49 +00:00
// Update calculated graph peak regardless if the graph is being updated
// This can cause a (harmless) desync between live and stored data, but it allows it to be more accurate for long surviving processes
var networkData = graphData [ network . name ] ;
if ( networkData ) {
var graphPeakIndex = - 1 ;
var graphPeakPlayerCount = 0 ;
for ( var i = 0 ; i < networkData . length ; i ++ ) {
// [1] refers to the online player count
var point = networkData [ i ] [ 1 ] ;
if ( point > 0 && ( graphPeakIndex === - 1 || point > graphPeakPlayerCount ) ) {
graphPeakIndex = i ;
graphPeakPlayerCount = point ;
}
}
// Test if a highest index has been selected and has changed from any previous selections
var previousPeak = graphPeaks [ network . name ] ;
// [1] refers to the online player count
if ( graphPeakIndex !== - 1 && ( ! previousPeak || previousPeak [ 1 ] !== graphPeakPlayerCount ) ) {
var graphPeakData = networkData [ graphPeakIndex ] ;
graphPeaks [ network . name ] = graphPeakData ;
// Broadcast update event to clients
server . io . sockets . emit ( 'updatePeak' , {
ip : network . ip ,
name : network . name ,
players : graphPeakData [ 1 ] ,
timestamp : graphPeakData [ 0 ]
} ) ;
}
}
2015-11-02 04:56:08 +00:00
}
2015-11-02 06:57:30 +00:00
}
2015-11-02 04:56:08 +00:00
2015-11-03 04:32:54 +00:00
// Start our main loop that does everything.
function startMainLoop ( ) {
2015-11-24 23:24:17 +00:00
util . setIntervalNoDelay ( pingAll , config . rates . pingAll ) ;
2015-11-03 04:32:54 +00:00
2015-11-24 23:24:17 +00:00
util . setIntervalNoDelay ( function ( ) {
2015-11-03 04:32:54 +00:00
mojang . update ( config . rates . mojangStatusTimeout ) ;
server . io . sockets . emit ( 'updateMojangServices' , mojang . toMessage ( ) ) ;
} , config . rates . upateMojangStatus ) ;
}
2015-12-19 00:10:58 +00:00
function startServices ( ) {
2015-12-26 20:18:09 +00:00
server . start ( ) ;
2015-12-18 07:45:38 +00:00
2015-12-26 20:18:09 +00:00
// Track how many people are currently connected.
server . io . on ( 'connect' , function ( client ) {
// We're good to connect them!
connectedClients += 1 ;
2015-12-18 07:45:38 +00:00
2020-04-02 02:54:43 +00:00
logger . log ( 'info' , '%s connected, total clients: %d' , util . getRemoteAddr ( client . request ) , connectedClients ) ;
2015-12-18 07:45:38 +00:00
2015-12-26 20:18:09 +00:00
// Attach our listeners.
client . on ( 'disconnect' , function ( ) {
connectedClients -= 1 ;
2015-11-02 05:46:24 +00:00
2020-04-02 02:54:43 +00:00
logger . log ( 'info' , '%s disconnected, total clients: %d' , util . getRemoteAddr ( client . request ) , connectedClients ) ;
2015-12-19 01:00:57 +00:00
} ) ;
2015-12-26 20:18:09 +00:00
client . on ( 'requestHistoryGraph' , function ( ) {
if ( config . logToDatabase ) {
// Send them the big 24h graph.
client . emit ( 'historyGraph' , graphData ) ;
2020-03-30 05:37:49 +00:00
// Send current peaks, if any
2020-03-30 05:48:47 +00:00
if ( Object . keys ( graphPeaks ) . length > 0 ) {
2020-03-30 05:37:49 +00:00
client . emit ( 'peaks' , graphPeaks ) ;
}
2015-12-26 20:18:09 +00:00
}
} ) ;
2016-02-07 00:26:29 +00:00
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
const minecraftVersionNames = { }
Object . keys ( minecraftVersions ) . forEach ( function ( key ) {
minecraftVersionNames [ key ] = minecraftVersions [ key ] . map ( version => version . name )
} )
// Send configuration data for rendering the page
client . emit ( 'setPublicConfig' , {
graphDuration : config . graphDuration ,
servers : servers ,
minecraftVersions : minecraftVersionNames ,
isGraphVisible : config . logToDatabase
} ) ;
// Send them our previous data, so they have somewhere to start.
client . emit ( 'updateMojangServices' , mojang . toMessage ( ) ) ;
// Send each individually, this should look cleaner than waiting for one big array to transfer.
for ( var i = 0 ; i < servers . length ; i ++ ) {
var server = servers [ i ] ;
if ( ! ( server . name in networkHistory ) || networkHistory [ server . name ] . length < 1 ) {
// This server hasn't been ping'd yet. Send a hacky placeholder.
client . emit ( 'add' , [ [ {
error : {
description : 'Waiting...' ,
placeholder : true
} ,
result : null ,
timestamp : util . getCurrentTimeMs ( ) ,
info : {
ip : server . ip ,
port : server . port ,
type : server . type ,
name : server . name
}
} ] ] ) ;
} else {
// Append the lastFavicon to the last ping entry
const serverHistory = networkHistory [ server . name ] ;
const lastFavicon = lastFavicons [ server . name ] ;
if ( lastFavicon ) {
serverHistory [ serverHistory . length - 1 ] . favicon = lastFavicon
2016-02-07 00:36:51 +00:00
}
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
client . emit ( 'add' , [ serverHistory ] )
2016-02-07 00:26:29 +00:00
}
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
}
2017-03-14 22:07:58 +00:00
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
client . emit ( 'syncComplete' ) ;
2015-12-19 00:10:58 +00:00
} ) ;
2015-12-26 20:18:09 +00:00
startMainLoop ( ) ;
2015-12-19 00:10:58 +00:00
}
2015-11-02 04:56:08 +00:00
2015-12-19 00:25:59 +00:00
logger . log ( 'info' , 'Booting, please wait...' ) ;
2015-12-19 00:10:58 +00:00
if ( config . logToDatabase ) {
// Setup our database.
db . setup ( ) ;
2015-11-25 22:40:13 +00:00
2015-12-19 00:10:58 +00:00
var timestamp = util . getCurrentTimeMs ( ) ;
2015-12-18 07:45:38 +00:00
2015-12-19 03:23:24 +00:00
db . queryPings ( config . graphDuration , function ( data ) {
2017-03-14 22:07:58 +00:00
graphData = util . convertServerHistory ( data ) ;
completedQueries = 0 ;
2015-11-02 04:56:08 +00:00
2015-12-19 00:10:58 +00:00
logger . log ( 'info' , 'Queried and parsed ping history in %sms' , util . getCurrentTimeMs ( ) - timestamp ) ;
2015-11-02 06:01:04 +00:00
2017-03-14 22:07:58 +00:00
for ( var i = 0 ; i < servers . length ; i ++ ) {
2020-03-30 05:37:49 +00:00
// Compute graph peak from historical data
var networkData = graphData [ servers [ i ] . name ] ;
if ( networkData ) {
var graphPeakIndex = - 1 ;
var graphPeakPlayerCount = 0 ;
2020-03-30 05:39:38 +00:00
for ( var x = 0 ; x < networkData . length ; x ++ ) {
2020-03-30 05:37:49 +00:00
// [1] refers to the online player count
2020-04-02 01:41:18 +00:00
var point = networkData [ x ] [ 1 ] ;
2020-03-30 05:37:49 +00:00
if ( point > 0 && ( graphPeakIndex === - 1 || point > graphPeakPlayerCount ) ) {
2020-03-30 05:39:38 +00:00
graphPeakIndex = x ;
2020-03-30 05:37:49 +00:00
graphPeakPlayerCount = point ;
}
}
if ( graphPeakIndex !== - 1 ) {
graphPeaks [ servers [ i ] . name ] = networkData [ graphPeakIndex ] ;
logger . log ( 'info' , 'Selected graph peak %d (%s)' , networkData [ graphPeakIndex ] [ 1 ] , servers [ i ] . name ) ;
}
}
2017-03-14 22:07:58 +00:00
( function ( server ) {
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
db . getTotalRecord ( server . ip , function ( playerCount , timestamp ) {
logger . log ( 'info' , 'Computed total record %s (%d) @ %d' , server . ip , playerCount , timestamp ) ;
2017-03-14 22:07:58 +00:00
Minetrack 5 (#143)
* remove unused #getServer methods, inline #roundToPoint
* replace #safeName regex with incremental ids
* remove legacy #setInterval based #updateMojangServices handling
* add Tooltip class, move faviconSize to css instead of js
* move server id assignment to ServerRegistry
* move printPort logic to formatMinecraftServerAddress, add MINECRAFT_DEFAULT_PORTS
* simplify ping tracking
* rework perc-bar tooltip to not use mousemove event
* begin moving graphing logic to GraphDisplayManager
* begin merge graph point tracking into graphDisplayManager
* centralizing graphing logic into GraphDisplayManager
* properly reset GraphDisplayManager when handling disconnects
* move individual server graph data into ServerGraph class
* constantly run sortServers loop to simplify logic
* inline #updateMojangServices method
* resize performance improvements
* remove legacy bootTime refresh behavior, require manual user refresh
* move class defs to core.js
* remove unused #isGraphDataVisible arg
* remove #toggleControlsDrawer
* dont call #updatePercentageBar in #updateServerStatus calls
* centralize caption handling
* inline #msToTime
* remove hackish seconds handling for timestamps
* reduce #forEach calls with filter/map
* safely fallback to errorMessage if errno/description does not match
* Add /images/missing_favicon.png path instead of putting base64 in js
* remove debug
* cleanup mojang status handling
* move historyPlot instance into GraphDisplayManager
* cleanup checkbox html generation
* cleanup #updateServerStatus
* fix up tooltip styling
* move jquery code out of core.js
* fix add server race condition when initially pinging servers
* send error.placeholder=true for pending pings so the frontend can discard later
* filter placeholder pings sent by the backend
* del assets/images/logo_2014.png
* move graph code into graph.js
* merge pingTracker into ServerRegistry+ServerGraph
* remove todos
* simplify getVisibleGraphData
* fix potential sortServers race condition when adding
* use #show instead of #fadeIn(0)
* remove publicConfig.json, send over socket
* update docs/CHANGELOG.md
* getOrAssign -> getOrCreateId
* dont delete graph controls when disconnected
* early work cleaning up HTML+CSS structures
* cleanup server css elements
* cleanup graph control css elements
* move base CSS color values into @media(prefers-color-scheme: light)
* move CSS magic colors to vars
* reduce duplicated CSS color rules
* inline body text color CSS
* WIP replacing jQuery calls with vanilla JS
* WIP replacing jQuery calls with vanilla JS
* replace getElementsByClass with querySelectorAll
* typeMarker -> serverTypeHTML
* use jQuery slim for remaining flot.js dependency
* merge setAllGraphVisibility into GraphDisplayManager
* break apart element update and redraw logic
* add eslint + parcel bundler
* auto lint assets/js when building
* statically serve favicons/ for faviconOverrides outside of dist/
* only send favicons when changed
* move faviconOverride behavior into entry in servers.json
* add warning to backend server files
* remove .server-favicon-missing class
* add Minetrack 5 migration guide
* add npm run build step to install.sh
* adjust package.json version to 5.0.0
* remove js references from index.html
* move logic and behavior out of site.js
* cleanup ServerRegistry methods
* prevent multiple history graph redraws
* add comments
* cleanup #addServer usage, move to App
* move graph control bindings into GraphDisplayManager
* site.js -> main.js, core.js -> servers.js
* move Tooltip/Caption into util.js
* spacing tweak
* format index.html
* ensure the frontend does not handling updateHistoryGraph events
* prevent versions/record updates if the same value
* avoid empty percbar updates, ensure versions are sorted
* only include main.js ref in index.html
* serve minified copy of font awesome directly
* bundle icons.css into main.css, remove Open Sans 400
* add new SVG logo
* update docs/CHANGELOG.md
* new design, server version grouping
* remove start.sh call from install.sh
* move graph controls into header with new button
* move #handleSettingsToggle back to graph
* fix legacy code behavior of currentVersionIndex applying globally
* fix header text color in light mode
* fix mojang status text color in light mode
* fix toggle settings and checkbox colors
* tweak button hover color
* tweak button hover color
* add new status-overlay to avoid complicated DOM management during loading
* fix initial graph rendering bug
* add comments
* update default graph tick sizes
* prevent #tooltip from overflowing page
* remove localhost spec
* prevent minor connection errors from reshuffling layout
* update CHANGELOG.md
* add message/button for manually loading historical graph on mobile devices
* send isGraphVisible to frontend to prevent alert if logToDatabase: false
* send timestamp data with record
* update docs/CHANGELOG.md
* remove clock icon
* remove 24h peak timestamp
* Only check favicon if present
* safely handle undefined/empty knownVersions in #formatMinecraftVersions
* merge config.versions and minecraft.json into minecraft_versions.json, simplify index matching behavior
* remove localhost url in socket.io config
* stub methods/linkage for FocusManager
* add #isObjectEqual hack, add event proxying to FocusManager
* wip extended stats box
* remove server-type badging
* tweak mojang unstable color
* serve socket.io-client using parcel
* fix incorrect mojang status colors
* remove legacy capitalization design
* redesign focus boxes
* update docs/CHANGELOG.md
* remove localhost ref
* color clock icon
* use background-color for hover effect, remove unused var
* improve stats focus box icons
* change mojang sessions icon to globe
* Add favorites system
* remove focus boxes
* update docs/CHANGELOG.md
* remove focus icons from font
* simplify graph related event binding
* Add Sort By button
* store current sortOption in localStorage
* update docs/CHANGELOG.md
* move magic 0 sortOption to SORT_OPTION_INDEX_DEFAULT
* remove localhost ref
* merge #settings-toggle, #sort-by and .mojang-status CSS
* remove .focus-box CSS
* use sortedServerIds for _lastSortedServers
* tweak --color-blue
* new missing_favicon design to match logo
* edit footer CSS/text, remove github icon
* replace player count diff counter with GROWTH sort option
* italize non-default sort options
* add Only Favorites button to auto sync favorites to the visible graph data
* add icons to graph control buttons
* update docs/CHANGELOG.md
* use * to denote non-default sort option instead
* remove localhost url in socket.io config
* add value highlighting to make sort by easier to read
* remove last remaining uppercase text
* remove serverTypesVisible from config.json
* simplify header CSS, fix spacing with logToDatabase=false
* fix inverted text color on highlighted values
* remove localhost url in socket.io config
* break header into rows on mobile devices
Co-authored-by: Hugo Manrique <contact@hugmanrique.me>
2020-04-20 00:27:59 +00:00
highestPlayerCount [ server . ip ] = {
playerCount : playerCount ,
timestamp : timestamp
} ;
2017-03-14 22:07:58 +00:00
completedQueries += 1 ;
if ( completedQueries === servers . length ) {
startServices ( ) ;
}
} ) ;
} ) ( servers [ i ] ) ;
}
2015-11-02 04:56:08 +00:00
} ) ;
2015-12-19 00:10:58 +00:00
} else {
2015-12-19 03:23:24 +00:00
logger . log ( 'warn' , 'Database logging is not enabled. You can enable it by setting "logToDatabase" to true in config.json. This requires sqlite3 to be installed.' ) ;
2015-11-02 06:57:30 +00:00
2015-12-19 00:10:58 +00:00
startServices ( ) ;
2016-03-02 03:09:38 +00:00
}