mirror of
https://github.com/skylord123/node-red-contrib-gamedig.git
synced 2025-04-10 16:13:08 -06:00
Release v3.0.0
- Update gamedig from 4.0.6 to 5.1.0 (breaking change! various server types renamed) - Fixed autocomplete for server types and now selecting a server type auto fills the query port with the default - Added strip colors gamedig option - Added address gamedig option to skip DNS resolution - Added github funding links
This commit is contained in:
parent
5bacdb685d
commit
035341c386
14
.github/FUNDING.yml
vendored
Normal file
14
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
github: skylord123 # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||||
|
patreon: # Replace with a single Patreon username
|
||||||
|
open_collective: # Replace with a single Open Collective username
|
||||||
|
ko_fi: SkylarSadlier # Replace with a single Ko-fi username
|
||||||
|
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||||
|
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||||
|
liberapay: # Replace with a single Liberapay username
|
||||||
|
issuehunt: # Replace with a single IssueHunt username
|
||||||
|
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||||
|
polar: # Replace with a single Polar username
|
||||||
|
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
|
||||||
|
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Query for server information of most game/voice servers using Node-RED.
|
Query for server information of most game/voice servers using Node-RED.
|
||||||
|
|
||||||
This package adds the node "Query Game Server" that uses the NPM package [GameDig](https://www.npmjs.com/package/gamedig) to query if a server is online or not and if so returns the data of the server.
|
This package adds the node `Query Game Server` that uses the NPM package [GameDig](https://www.npmjs.com/package/gamedig) to query if a server is online or not and if so returns the data of the server.
|
||||||
|
|
||||||
You can pass the server type, host, and port on the input message or define them on the node (settings defined on the node will override msg values).
|
You can pass the server type, host, and port on the input message or define them on the node (settings defined on the node will override msg values).
|
||||||
|
|
||||||
@ -10,6 +10,12 @@ You can also specify manual GameDig options using `msg.options` as an input. Thi
|
|||||||
|
|
||||||
Visit the [GameDig GitLab page](https://github.com/gamedig/node-gamedig#return-value) if you want more information about what this library parses and standardizes from the server response.
|
Visit the [GameDig GitLab page](https://github.com/gamedig/node-gamedig#return-value) if you want more information about what this library parses and standardizes from the server response.
|
||||||
|
|
||||||
|
### Help fund development
|
||||||
|
|
||||||
|
If you use this node and find it helpful please consider donating to help fund future development. All of my software is free and open-source and this helps keep it that way.
|
||||||
|
|
||||||
|
[](https://ko-fi.com/B0B51BM7C)
|
||||||
|
|
||||||
### Usage Examples
|
### Usage Examples
|
||||||
- #### Inserting query data into InfluxDB and using Grafana to view results
|
- #### Inserting query data into InfluxDB and using Grafana to view results
|
||||||

|

|
||||||
|
606
package-lock.json
generated
606
package-lock.json
generated
@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "node-red-contrib-gamedig",
|
"name": "node-red-contrib-gamedig",
|
||||||
"version": "2.2.1",
|
"version": "3.0.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "node-red-contrib-gamedig",
|
"name": "node-red-contrib-gamedig",
|
||||||
"version": "2.2.1",
|
"version": "3.0.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"gamedig": "^4.0.7"
|
"gamedig": "^5.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sindresorhus/is": {
|
"node_modules/@sindresorhus/is": {
|
||||||
@ -35,17 +35,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/http-cache-semantics": {
|
"node_modules/@types/http-cache-semantics": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
|
||||||
"integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
|
"integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA=="
|
||||||
},
|
|
||||||
"node_modules/amdefine": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.4.2"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"node_modules/any-promise": {
|
"node_modules/any-promise": {
|
||||||
"version": "1.3.0",
|
"version": "1.3.0",
|
||||||
@ -74,11 +66,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/cacheable-request": {
|
"node_modules/cacheable-request": {
|
||||||
"version": "10.2.13",
|
"version": "10.2.14",
|
||||||
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.13.tgz",
|
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz",
|
||||||
"integrity": "sha512-3SD4rrMu1msNGEtNSt8Od6enwdo//U9s4ykmXfA2TD58kcLkCobtCDiby7kNyj7a/Q7lz/mAesAFI54rTdnvBA==",
|
"integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/http-cache-semantics": "^4.0.1",
|
"@types/http-cache-semantics": "^4.0.2",
|
||||||
"get-stream": "^6.0.1",
|
"get-stream": "^6.0.1",
|
||||||
"http-cache-semantics": "^4.1.1",
|
"http-cache-semantics": "^4.1.1",
|
||||||
"keyv": "^4.5.3",
|
"keyv": "^4.5.3",
|
||||||
@ -127,26 +119,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/commander": {
|
"node_modules/commander": {
|
||||||
"version": "2.8.1",
|
"version": "6.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
|
"resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
|
||||||
"integrity": "sha512-+pJLBFVk+9ZZdlAOB5WuIElVPPth47hILFkmGym57aq8kwxsowvByvB0DHs1vQAhyMZzdcpTtF0VDKGkSDR4ZQ==",
|
"integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
|
||||||
"dependencies": {
|
|
||||||
"graceful-readlink": ">= 1.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 0.6.x"
|
"node": ">= 6"
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/compressjs": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/compressjs/-/compressjs-1.0.3.tgz",
|
|
||||||
"integrity": "sha512-jpKJjBTretQACTGLNuvnozP1JdP2ZLrjdGdBgk/tz1VfXlUcBhhSZW6vEsuThmeot/yjvSrPQKEgfF3X2Lpi8Q==",
|
|
||||||
"dependencies": {
|
|
||||||
"amdefine": "~1.0.0",
|
|
||||||
"commander": "~2.8.1"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"compressjs": "bin/compressjs"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/core-util-is": {
|
"node_modules/core-util-is": {
|
||||||
@ -290,25 +267,25 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/gamedig": {
|
"node_modules/gamedig": {
|
||||||
"version": "4.0.7",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/gamedig/-/gamedig-4.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/gamedig/-/gamedig-5.1.0.tgz",
|
||||||
"integrity": "sha512-A8bJ23ulAEp8A4ZJAHp5cMkWu4ymf6AQdOPBAa2asHQqAnf2/bIa07ClcQeeCp+bQWYqJAcW7xvUqjruSrCX4A==",
|
"integrity": "sha512-eif4dAvR9hpSPuuLcP8cGrD3d1XjNrgzgI2N9JjuObp6RepGjm31SCJfOF85Q0eQsS5VgTeHdLfTyfG4DS+cRA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cheerio": "^1.0.0-rc.10",
|
"cheerio": "^1.0.0-rc.12",
|
||||||
"compressjs": "^1.0.2",
|
|
||||||
"gbxremote": "^0.2.1",
|
"gbxremote": "^0.2.1",
|
||||||
"got": "^12.1.0",
|
"got": "^13.0.0",
|
||||||
"iconv-lite": "^0.6.3",
|
"iconv-lite": "^0.6.3",
|
||||||
"long": "^5.2.0",
|
"long": "^5.2.3",
|
||||||
"minimist": "^1.2.6",
|
"minimist": "^1.2.8",
|
||||||
"punycode": "^2.1.1",
|
"punycode": "^2.3.0",
|
||||||
|
"seek-bzip": "^2.0.0",
|
||||||
"varint": "^6.0.0"
|
"varint": "^6.0.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"gamedig": "bin/gamedig.js"
|
"gamedig": "bin/gamedig.js"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.0.0"
|
"node": ">=16.20.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/gbxremote": {
|
"node_modules/gbxremote": {
|
||||||
@ -338,9 +315,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/got": {
|
"node_modules/got": {
|
||||||
"version": "12.6.1",
|
"version": "13.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz",
|
||||||
"integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==",
|
"integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sindresorhus/is": "^5.2.0",
|
"@sindresorhus/is": "^5.2.0",
|
||||||
"@szmarczak/http-timer": "^5.0.1",
|
"@szmarczak/http-timer": "^5.0.1",
|
||||||
@ -355,17 +332,12 @@
|
|||||||
"responselike": "^3.0.0"
|
"responselike": "^3.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.16"
|
"node": ">=16"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sindresorhus/got?sponsor=1"
|
"url": "https://github.com/sindresorhus/got?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/graceful-readlink": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w=="
|
|
||||||
},
|
|
||||||
"node_modules/htmlparser2": {
|
"node_modules/htmlparser2": {
|
||||||
"version": "8.0.2",
|
"version": "8.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
|
||||||
@ -390,9 +362,9 @@
|
|||||||
"integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
|
"integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
|
||||||
},
|
},
|
||||||
"node_modules/http2-wrapper": {
|
"node_modules/http2-wrapper": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
|
||||||
"integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==",
|
"integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"quick-lru": "^5.1.1",
|
"quick-lru": "^5.1.1",
|
||||||
"resolve-alpn": "^1.2.0"
|
"resolve-alpn": "^1.2.0"
|
||||||
@ -428,9 +400,9 @@
|
|||||||
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
|
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
|
||||||
},
|
},
|
||||||
"node_modules/keyv": {
|
"node_modules/keyv": {
|
||||||
"version": "4.5.3",
|
"version": "4.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
|
||||||
"integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==",
|
"integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"json-buffer": "3.0.1"
|
"json-buffer": "3.0.1"
|
||||||
}
|
}
|
||||||
@ -471,9 +443,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/normalize-url": {
|
"node_modules/normalize-url": {
|
||||||
"version": "8.0.0",
|
"version": "8.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz",
|
||||||
"integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
|
"integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.16"
|
"node": ">=14.16"
|
||||||
},
|
},
|
||||||
@ -529,9 +501,9 @@
|
|||||||
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
||||||
},
|
},
|
||||||
"node_modules/punycode": {
|
"node_modules/punycode": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
||||||
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
|
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
@ -592,6 +564,18 @@
|
|||||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
||||||
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
|
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
|
||||||
},
|
},
|
||||||
|
"node_modules/seek-bzip": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg==",
|
||||||
|
"dependencies": {
|
||||||
|
"commander": "^6.0.0"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"seek-bunzip": "bin/seek-bunzip",
|
||||||
|
"seek-table": "bin/seek-bzip-table"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/string_decoder": {
|
"node_modules/string_decoder": {
|
||||||
"version": "0.10.31",
|
"version": "0.10.31",
|
||||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||||
@ -664,489 +648,5 @@
|
|||||||
"npm": ">=1.0.0"
|
"npm": ">=1.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@sindresorhus/is": {
|
|
||||||
"version": "5.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz",
|
|
||||||
"integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g=="
|
|
||||||
},
|
|
||||||
"@szmarczak/http-timer": {
|
|
||||||
"version": "5.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
|
|
||||||
"integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
|
|
||||||
"requires": {
|
|
||||||
"defer-to-connect": "^2.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@types/http-cache-semantics": {
|
|
||||||
"version": "4.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
|
|
||||||
"integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
|
|
||||||
},
|
|
||||||
"amdefine": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg=="
|
|
||||||
},
|
|
||||||
"any-promise": {
|
|
||||||
"version": "1.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
|
|
||||||
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
|
|
||||||
},
|
|
||||||
"barse": {
|
|
||||||
"version": "0.4.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/barse/-/barse-0.4.3.tgz",
|
|
||||||
"integrity": "sha512-UEpvriJqAn8zuVinYICuKoPttZy3XxXEoqX/V2uYAL4zzJRuNzCK3+20nAu3YUIa2U7G53kf90wfBIp9/A+Odw==",
|
|
||||||
"requires": {
|
|
||||||
"readable-stream": "~1.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"boolbase": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
|
|
||||||
},
|
|
||||||
"cacheable-lookup": {
|
|
||||||
"version": "7.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
|
|
||||||
"integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w=="
|
|
||||||
},
|
|
||||||
"cacheable-request": {
|
|
||||||
"version": "10.2.13",
|
|
||||||
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.13.tgz",
|
|
||||||
"integrity": "sha512-3SD4rrMu1msNGEtNSt8Od6enwdo//U9s4ykmXfA2TD58kcLkCobtCDiby7kNyj7a/Q7lz/mAesAFI54rTdnvBA==",
|
|
||||||
"requires": {
|
|
||||||
"@types/http-cache-semantics": "^4.0.1",
|
|
||||||
"get-stream": "^6.0.1",
|
|
||||||
"http-cache-semantics": "^4.1.1",
|
|
||||||
"keyv": "^4.5.3",
|
|
||||||
"mimic-response": "^4.0.0",
|
|
||||||
"normalize-url": "^8.0.0",
|
|
||||||
"responselike": "^3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cheerio": {
|
|
||||||
"version": "1.0.0-rc.12",
|
|
||||||
"resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
|
|
||||||
"integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
|
|
||||||
"requires": {
|
|
||||||
"cheerio-select": "^2.1.0",
|
|
||||||
"dom-serializer": "^2.0.0",
|
|
||||||
"domhandler": "^5.0.3",
|
|
||||||
"domutils": "^3.0.1",
|
|
||||||
"htmlparser2": "^8.0.1",
|
|
||||||
"parse5": "^7.0.0",
|
|
||||||
"parse5-htmlparser2-tree-adapter": "^7.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cheerio-select": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
|
|
||||||
"integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
|
|
||||||
"requires": {
|
|
||||||
"boolbase": "^1.0.0",
|
|
||||||
"css-select": "^5.1.0",
|
|
||||||
"css-what": "^6.1.0",
|
|
||||||
"domelementtype": "^2.3.0",
|
|
||||||
"domhandler": "^5.0.3",
|
|
||||||
"domutils": "^3.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"commander": {
|
|
||||||
"version": "2.8.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
|
|
||||||
"integrity": "sha512-+pJLBFVk+9ZZdlAOB5WuIElVPPth47hILFkmGym57aq8kwxsowvByvB0DHs1vQAhyMZzdcpTtF0VDKGkSDR4ZQ==",
|
|
||||||
"requires": {
|
|
||||||
"graceful-readlink": ">= 1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compressjs": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/compressjs/-/compressjs-1.0.3.tgz",
|
|
||||||
"integrity": "sha512-jpKJjBTretQACTGLNuvnozP1JdP2ZLrjdGdBgk/tz1VfXlUcBhhSZW6vEsuThmeot/yjvSrPQKEgfF3X2Lpi8Q==",
|
|
||||||
"requires": {
|
|
||||||
"amdefine": "~1.0.0",
|
|
||||||
"commander": "~2.8.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"core-util-is": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
|
|
||||||
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
|
|
||||||
},
|
|
||||||
"css-select": {
|
|
||||||
"version": "5.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
|
|
||||||
"integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
|
|
||||||
"requires": {
|
|
||||||
"boolbase": "^1.0.0",
|
|
||||||
"css-what": "^6.1.0",
|
|
||||||
"domhandler": "^5.0.2",
|
|
||||||
"domutils": "^3.0.1",
|
|
||||||
"nth-check": "^2.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"css-what": {
|
|
||||||
"version": "6.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
|
|
||||||
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
|
|
||||||
},
|
|
||||||
"decompress-response": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
|
||||||
"requires": {
|
|
||||||
"mimic-response": "^3.1.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"mimic-response": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"defer-to-connect": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
|
|
||||||
"integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg=="
|
|
||||||
},
|
|
||||||
"dom-serializer": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
|
|
||||||
"requires": {
|
|
||||||
"domelementtype": "^2.3.0",
|
|
||||||
"domhandler": "^5.0.2",
|
|
||||||
"entities": "^4.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"domelementtype": {
|
|
||||||
"version": "2.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
|
|
||||||
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
|
|
||||||
},
|
|
||||||
"domhandler": {
|
|
||||||
"version": "5.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
|
|
||||||
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
|
|
||||||
"requires": {
|
|
||||||
"domelementtype": "^2.3.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"domutils": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
|
|
||||||
"requires": {
|
|
||||||
"dom-serializer": "^2.0.0",
|
|
||||||
"domelementtype": "^2.3.0",
|
|
||||||
"domhandler": "^5.0.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"entities": {
|
|
||||||
"version": "4.5.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
|
|
||||||
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
|
|
||||||
},
|
|
||||||
"event-to-promise": {
|
|
||||||
"version": "0.7.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/event-to-promise/-/event-to-promise-0.7.0.tgz",
|
|
||||||
"integrity": "sha512-VOBBfyaADfe378ZzG0tgkzmsvzUyeU5arehrFzNRt5yaASUDshgctTwSrPI17ocAwR3+YftsxRClHF+GBKFByQ=="
|
|
||||||
},
|
|
||||||
"form-data-encoder": {
|
|
||||||
"version": "2.1.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
|
|
||||||
"integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw=="
|
|
||||||
},
|
|
||||||
"gamedig": {
|
|
||||||
"version": "4.0.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/gamedig/-/gamedig-4.0.7.tgz",
|
|
||||||
"integrity": "sha512-A8bJ23ulAEp8A4ZJAHp5cMkWu4ymf6AQdOPBAa2asHQqAnf2/bIa07ClcQeeCp+bQWYqJAcW7xvUqjruSrCX4A==",
|
|
||||||
"requires": {
|
|
||||||
"cheerio": "^1.0.0-rc.10",
|
|
||||||
"compressjs": "^1.0.2",
|
|
||||||
"gbxremote": "^0.2.1",
|
|
||||||
"got": "^12.1.0",
|
|
||||||
"iconv-lite": "^0.6.3",
|
|
||||||
"long": "^5.2.0",
|
|
||||||
"minimist": "^1.2.6",
|
|
||||||
"punycode": "^2.1.1",
|
|
||||||
"varint": "^6.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gbxremote": {
|
|
||||||
"version": "0.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/gbxremote/-/gbxremote-0.2.1.tgz",
|
|
||||||
"integrity": "sha512-SMehu6Y6ndq2Qgp9VxAb8Np3f+UUD+RWoW2SAMaxzGS96rWXyr4T1GGkecO0HHtxeH1m7pEh4FJWB8a/6aM2XQ==",
|
|
||||||
"requires": {
|
|
||||||
"any-promise": "^1.1.0",
|
|
||||||
"barse": "~0.4.2",
|
|
||||||
"event-to-promise": "^0.7.0",
|
|
||||||
"string-to-stream": "^1.0.1",
|
|
||||||
"xmlrpc": "^1.3.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"get-stream": {
|
|
||||||
"version": "6.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
|
|
||||||
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
|
|
||||||
},
|
|
||||||
"got": {
|
|
||||||
"version": "12.6.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz",
|
|
||||||
"integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==",
|
|
||||||
"requires": {
|
|
||||||
"@sindresorhus/is": "^5.2.0",
|
|
||||||
"@szmarczak/http-timer": "^5.0.1",
|
|
||||||
"cacheable-lookup": "^7.0.0",
|
|
||||||
"cacheable-request": "^10.2.8",
|
|
||||||
"decompress-response": "^6.0.0",
|
|
||||||
"form-data-encoder": "^2.1.2",
|
|
||||||
"get-stream": "^6.0.1",
|
|
||||||
"http2-wrapper": "^2.1.10",
|
|
||||||
"lowercase-keys": "^3.0.0",
|
|
||||||
"p-cancelable": "^3.0.0",
|
|
||||||
"responselike": "^3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"graceful-readlink": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w=="
|
|
||||||
},
|
|
||||||
"htmlparser2": {
|
|
||||||
"version": "8.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
|
|
||||||
"integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
|
|
||||||
"requires": {
|
|
||||||
"domelementtype": "^2.3.0",
|
|
||||||
"domhandler": "^5.0.3",
|
|
||||||
"domutils": "^3.0.1",
|
|
||||||
"entities": "^4.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"http-cache-semantics": {
|
|
||||||
"version": "4.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
|
|
||||||
"integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
|
|
||||||
},
|
|
||||||
"http2-wrapper": {
|
|
||||||
"version": "2.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.0.tgz",
|
|
||||||
"integrity": "sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ==",
|
|
||||||
"requires": {
|
|
||||||
"quick-lru": "^5.1.1",
|
|
||||||
"resolve-alpn": "^1.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"iconv-lite": {
|
|
||||||
"version": "0.6.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
|
|
||||||
"integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
|
|
||||||
"requires": {
|
|
||||||
"safer-buffer": ">= 2.1.2 < 3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"inherits": {
|
|
||||||
"version": "2.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
|
||||||
},
|
|
||||||
"isarray": {
|
|
||||||
"version": "0.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
|
||||||
"integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
|
|
||||||
},
|
|
||||||
"json-buffer": {
|
|
||||||
"version": "3.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
|
|
||||||
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
|
|
||||||
},
|
|
||||||
"keyv": {
|
|
||||||
"version": "4.5.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz",
|
|
||||||
"integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==",
|
|
||||||
"requires": {
|
|
||||||
"json-buffer": "3.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"long": {
|
|
||||||
"version": "5.2.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
|
|
||||||
"integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q=="
|
|
||||||
},
|
|
||||||
"lowercase-keys": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ=="
|
|
||||||
},
|
|
||||||
"mimic-response": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg=="
|
|
||||||
},
|
|
||||||
"minimist": {
|
|
||||||
"version": "1.2.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
|
||||||
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
|
|
||||||
},
|
|
||||||
"normalize-url": {
|
|
||||||
"version": "8.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
|
|
||||||
"integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw=="
|
|
||||||
},
|
|
||||||
"nth-check": {
|
|
||||||
"version": "2.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
|
|
||||||
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
|
|
||||||
"requires": {
|
|
||||||
"boolbase": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"p-cancelable": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw=="
|
|
||||||
},
|
|
||||||
"parse5": {
|
|
||||||
"version": "7.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
|
|
||||||
"integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
|
|
||||||
"requires": {
|
|
||||||
"entities": "^4.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"parse5-htmlparser2-tree-adapter": {
|
|
||||||
"version": "7.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
|
|
||||||
"integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
|
|
||||||
"requires": {
|
|
||||||
"domhandler": "^5.0.2",
|
|
||||||
"parse5": "^7.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"process-nextick-args": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
|
||||||
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
|
||||||
},
|
|
||||||
"punycode": {
|
|
||||||
"version": "2.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
|
|
||||||
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
|
|
||||||
},
|
|
||||||
"quick-lru": {
|
|
||||||
"version": "5.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
|
|
||||||
"integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
|
|
||||||
},
|
|
||||||
"readable-stream": {
|
|
||||||
"version": "1.0.34",
|
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
|
|
||||||
"integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
|
|
||||||
"requires": {
|
|
||||||
"core-util-is": "~1.0.0",
|
|
||||||
"inherits": "~2.0.1",
|
|
||||||
"isarray": "0.0.1",
|
|
||||||
"string_decoder": "~0.10.x"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"resolve-alpn": {
|
|
||||||
"version": "1.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
|
|
||||||
"integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
|
|
||||||
},
|
|
||||||
"responselike": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
|
|
||||||
"requires": {
|
|
||||||
"lowercase-keys": "^3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"safe-buffer": {
|
|
||||||
"version": "5.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
|
||||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
|
||||||
},
|
|
||||||
"safer-buffer": {
|
|
||||||
"version": "2.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
|
||||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
|
||||||
},
|
|
||||||
"sax": {
|
|
||||||
"version": "1.2.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
|
||||||
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
|
|
||||||
},
|
|
||||||
"string_decoder": {
|
|
||||||
"version": "0.10.31",
|
|
||||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
|
||||||
"integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
|
|
||||||
},
|
|
||||||
"string-to-stream": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-QySF2+3Rwq0SdO3s7BAp4x+c3qsClpPQ6abAmb0DGViiSBAkT5kL6JT2iyzEVP+T1SmzHrQD1TwlP9QAHCc+Sw==",
|
|
||||||
"requires": {
|
|
||||||
"inherits": "^2.0.1",
|
|
||||||
"readable-stream": "^2.1.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"isarray": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
|
|
||||||
},
|
|
||||||
"readable-stream": {
|
|
||||||
"version": "2.3.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
|
|
||||||
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
|
|
||||||
"requires": {
|
|
||||||
"core-util-is": "~1.0.0",
|
|
||||||
"inherits": "~2.0.3",
|
|
||||||
"isarray": "~1.0.0",
|
|
||||||
"process-nextick-args": "~2.0.0",
|
|
||||||
"safe-buffer": "~5.1.1",
|
|
||||||
"string_decoder": "~1.1.1",
|
|
||||||
"util-deprecate": "~1.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"string_decoder": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
|
||||||
"requires": {
|
|
||||||
"safe-buffer": "~5.1.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"util-deprecate": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
|
||||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
|
||||||
},
|
|
||||||
"varint": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
|
|
||||||
},
|
|
||||||
"xmlbuilder": {
|
|
||||||
"version": "8.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
|
|
||||||
"integrity": "sha512-eKRAFz04jghooy8muekqzo8uCSVNeyRedbuJrp0fovbLIi7wlsYtdUn3vBAAPq2Y3/0xMz2WMEUQ8yhVVO9Stw=="
|
|
||||||
},
|
|
||||||
"xmlrpc": {
|
|
||||||
"version": "1.3.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/xmlrpc/-/xmlrpc-1.3.2.tgz",
|
|
||||||
"integrity": "sha512-jQf5gbrP6wvzN71fgkcPPkF4bF/Wyovd7Xdff8d6/ihxYmgETQYSuTc+Hl+tsh/jmgPLro/Aro48LMFlIyEKKQ==",
|
|
||||||
"requires": {
|
|
||||||
"sax": "1.2.x",
|
|
||||||
"xmlbuilder": "8.2.x"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "node-red-contrib-gamedig",
|
"name": "node-red-contrib-gamedig",
|
||||||
"version": "2.2.1",
|
"version": "3.0.0",
|
||||||
"description": "Query for the status of any game server using node-red",
|
"description": "Query for the status of any game server using node-red",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -23,6 +23,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"gamedig": "^4.0.7"
|
"gamedig": "^5.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
name: { value: '' },
|
name: { value: '' },
|
||||||
server_type: { value: '' },
|
server_type: { value: '' },
|
||||||
host: { value: '' },
|
host: { value: '' },
|
||||||
|
address: { value: '' },
|
||||||
port: { value: '' },
|
port: { value: '' },
|
||||||
halt_if: { value: '' },
|
halt_if: { value: '' },
|
||||||
max_attempts: { value: '' },
|
max_attempts: { value: '' },
|
||||||
@ -14,6 +15,7 @@
|
|||||||
given_port_only: { value: '' },
|
given_port_only: { value: '' },
|
||||||
ip_family: { value: '0' },
|
ip_family: { value: '0' },
|
||||||
debug: { value: '' },
|
debug: { value: '' },
|
||||||
|
strip_colors: { type: "checkbox", value: true },
|
||||||
request_rules: { value: '' },
|
request_rules: { value: '' },
|
||||||
output_options: { value: '' }
|
output_options: { value: '' }
|
||||||
},
|
},
|
||||||
@ -26,14 +28,19 @@
|
|||||||
return this.name;
|
return this.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.host) {
|
if(this.host || this.address) {
|
||||||
return (this.server_type ? this.server_type : 'Query') + ': ' + this.host + (this.port ? ":" + this.port : '');
|
return (this.server_type ? this.server_type : 'Query') + ': ' + (this.host || this.address) + (this.port ? ":" + this.port : '');
|
||||||
}
|
}
|
||||||
|
|
||||||
return 'Query Game Server';
|
return 'Query Game Server';
|
||||||
},
|
},
|
||||||
oneditprepare: function() {
|
oneditprepare: function() {
|
||||||
let server_types = null;
|
let server_types = null;
|
||||||
|
console.log("THIS:", this);
|
||||||
|
if(typeof this.strip_colors === "undefined") {
|
||||||
|
this.strip_colors = true;
|
||||||
|
$("#node-input-strip_colors").prop('checked', true);
|
||||||
|
}
|
||||||
|
|
||||||
$.getJSON('/gamedig/types', function(data) {
|
$.getJSON('/gamedig/types', function(data) {
|
||||||
if(data.result !== 'ok' || !data.hasOwnProperty("server_types"))
|
if(data.result !== 'ok' || !data.hasOwnProperty("server_types"))
|
||||||
@ -54,7 +61,7 @@
|
|||||||
if (
|
if (
|
||||||
v.name.toLowerCase().indexOf(val.toLowerCase()) > -1 ||
|
v.name.toLowerCase().indexOf(val.toLowerCase()) > -1 ||
|
||||||
v.type.toLowerCase().indexOf(val.toLowerCase()) > -1 ||
|
v.type.toLowerCase().indexOf(val.toLowerCase()) > -1 ||
|
||||||
v.protocol.toLowerCase().indexOf(val.toLowerCase()) > -1
|
v.options.protocol.toLowerCase().indexOf(val.toLowerCase()) > -1
|
||||||
) {
|
) {
|
||||||
matches.push({
|
matches.push({
|
||||||
value: v.type,
|
value: v.type,
|
||||||
@ -65,6 +72,20 @@
|
|||||||
});
|
});
|
||||||
return matches;
|
return matches;
|
||||||
}
|
}
|
||||||
|
}).on('change', function () {
|
||||||
|
if(!server_types) return;
|
||||||
|
|
||||||
|
let val = $(this).val();
|
||||||
|
server_types.forEach(server_type => {
|
||||||
|
if(server_type['type'] !== val) return;
|
||||||
|
let query_port = server_type.options.port_query || server_type.options.port || null;
|
||||||
|
|
||||||
|
if(query_port && server_type.options.port_query_offset) {
|
||||||
|
query_port += server_type.options.port_query_offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#node-input-port").val(query_port);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -101,6 +122,14 @@
|
|||||||
Host without port. Uses <code>msg.host</code> if left blank.
|
Host without port. Uses <code>msg.host</code> if left blank.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="form-row">
|
||||||
|
<label for="node-input-address"><i class="fa fa-server"></i> Address</label>
|
||||||
|
<input type="text" id="node-input-address" placeholder="msg.address" />
|
||||||
|
</div>
|
||||||
|
<div style="margin-left: 105px;width: 50%;margin-bottom: 10px;margin-top: -10px;">
|
||||||
|
Override the IP address of the server skipping DNS resolution. When set, host will not be resolved, instead address will be connected to. However, some protocols still use host for other reasons e.g. as part of the query. Uses <code>msg.address</code> if left blank.
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<label for="node-input-port"><i class="fa fa-server"></i> Port</label>
|
<label for="node-input-port"><i class="fa fa-server"></i> Port</label>
|
||||||
<input type="text" id="node-input-port" placeholder="msg.port" />
|
<input type="text" id="node-input-port" placeholder="msg.port" />
|
||||||
@ -171,6 +200,18 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="form-row">
|
||||||
|
<label for="node-input-strip_colors" style="vertical-align: top"><i class="fa fa-server"></i> Strip colors</label>
|
||||||
|
<div style="width: 50%;display: inline-block;">
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
id="node-input-strip_colors"
|
||||||
|
style="width: auto; vertical-align: top"
|
||||||
|
/>
|
||||||
|
for protocols that strips colors: unreal2, savage2, quake3, nadeo, gamespy2, doom3, armagetron.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<label for="node-input-request_rules" style="vertical-align: top"><i class="fa fa-server"></i> Request rules</label>
|
<label for="node-input-request_rules" style="vertical-align: top"><i class="fa fa-server"></i> Request rules</label>
|
||||||
<div style="width: 50%;display: inline-block;">
|
<div style="width: 50%;display: inline-block;">
|
||||||
@ -225,6 +266,11 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>Server IP/Hostname. Ignored if configured on the node.</dd>
|
<dd>Server IP/Hostname. Ignored if configured on the node.</dd>
|
||||||
|
|
||||||
|
<dt class="optional">
|
||||||
|
msg.address <span class="property-type">string | null</span>
|
||||||
|
</dt>
|
||||||
|
<dd>Override the IP address of the server skipping DNS resolution. When set, host will not be resolved, instead address will be connected to. However, some protocols still use host for other reasons e.g. as part of the query.</dd>
|
||||||
|
|
||||||
<dt class="optional">
|
<dt class="optional">
|
||||||
msg.port <span class="property-type">integer | null</span>
|
msg.port <span class="property-type">integer | null</span>
|
||||||
</dt>
|
</dt>
|
||||||
@ -296,7 +342,12 @@
|
|||||||
<dt>
|
<dt>
|
||||||
msg.host <span class="property-type">string</span>
|
msg.host <span class="property-type">string</span>
|
||||||
</dt>
|
</dt>
|
||||||
<dd>Server IP/Hostname. Ignored if configured on the node.</dd>
|
<dd>Server IP/Hostname.</dd>
|
||||||
|
|
||||||
|
<dt>
|
||||||
|
msg.address <span class="property-type">string</span>
|
||||||
|
</dt>
|
||||||
|
<dd>Server address used to query.</dd>
|
||||||
|
|
||||||
<dt>
|
<dt>
|
||||||
msg.port <span class="property-type">integer</span>
|
msg.port <span class="property-type">integer</span>
|
||||||
|
@ -1,34 +1,25 @@
|
|||||||
module.exports = function(RED) {
|
module.exports = function(RED) {
|
||||||
const gamedig = require('gamedig');
|
const { GameDig, games } = require('gamedig');
|
||||||
const fs = require('fs');
|
|
||||||
|
|
||||||
function QueryGameServer(config) {
|
function QueryGameServer(config) {
|
||||||
RED.nodes.createNode(this, config);
|
RED.nodes.createNode(this, config);
|
||||||
let node = this;
|
let node = this;
|
||||||
this.server_type = config.server_type;
|
|
||||||
this.host = config.host;
|
|
||||||
this.port = config.port;
|
|
||||||
this.halt_if = config.halt_if;
|
this.halt_if = config.halt_if;
|
||||||
this.max_attempts = config.max_attempts || 1;
|
|
||||||
this.socket_timeout = config.socket_timeout || 2000;
|
|
||||||
this.attempt_timeout = config.attempt_timeout || 10000;
|
|
||||||
this.given_port_only = config.given_port_only || false;
|
|
||||||
this.ip_family = config.ip_family || 0;
|
|
||||||
this.debug = config.debug || false;
|
|
||||||
this.request_rules = config.request_rules || false;
|
|
||||||
this.output_options = config.output_options || false;
|
this.output_options = config.output_options || false;
|
||||||
node.on('input', function(msg) {
|
node.on('input', function(msg) {
|
||||||
let options = {
|
let options = {
|
||||||
'type': node.server_type || msg.server_type || undefined,
|
'type': config.server_type || msg.server_type || undefined,
|
||||||
'host': node.host || msg.host || undefined,
|
'host': config.host || msg.host || undefined,
|
||||||
'port': node.port || msg.port || undefined,
|
'address': config.address || msg.address || undefined,
|
||||||
'maxAttempts': node.max_attempts || msg.max_attempts || undefined,
|
'port': config.port || msg.port || undefined,
|
||||||
'socketTimeout': node.socket_timeout || msg.socket_timeout || undefined,
|
'maxAttempts': config.max_attempts || msg.max_attempts || 1,
|
||||||
'attemptTimeout': node.attempt_timeout || msg.attempt_timeout || undefined,
|
'socketTimeout': config.socket_timeout || msg.socket_timeout || 2000,
|
||||||
'givenPortOnly': node.given_port_only || msg.given_port_only || undefined,
|
'attemptTimeout': config.attempt_timeout || msg.attempt_timeout || 10000,
|
||||||
'ipFamily': node.ip_family || msg.ip_family || undefined,
|
'givenPortOnly': config.given_port_only || msg.given_port_only || false,
|
||||||
'debug': node.debug || msg.config || undefined,
|
'ipFamily': config.ip_family || msg.ip_family || undefined,
|
||||||
'requestRules': node.request_rules || msg.request_rules || undefined
|
'debug': config.debug || msg.config || undefined,
|
||||||
|
'requestRules': config.request_rules || msg.request_rules || undefined,
|
||||||
|
'strip_colors': typeof config.strip_colors === "undefined" ? true : config.strip_colors
|
||||||
};
|
};
|
||||||
|
|
||||||
if(typeof msg.options === 'object' && msg.options)
|
if(typeof msg.options === 'object' && msg.options)
|
||||||
@ -38,15 +29,20 @@ module.exports = function(RED) {
|
|||||||
|
|
||||||
// set the things we want to return
|
// set the things we want to return
|
||||||
msg.server_type = options.type;
|
msg.server_type = options.type;
|
||||||
msg.host = options.host;
|
if(options.host) {
|
||||||
|
msg.host = options.host;
|
||||||
|
}
|
||||||
|
if(options.address) {
|
||||||
|
msg.address = options.address;
|
||||||
|
}
|
||||||
msg.port = options.port;
|
msg.port = options.port;
|
||||||
if(node.output_options)
|
if(node.output_options)
|
||||||
{
|
{
|
||||||
msg.options = options;
|
msg.options = options;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!options.host) {
|
if(!msg.host && !msg.address) {
|
||||||
node.error("host missing from input.");
|
node.error("host/address missing from input.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +51,7 @@ module.exports = function(RED) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
gamedig.query(options)
|
GameDig.query(options)
|
||||||
.then(function(state) {
|
.then(function(state) {
|
||||||
msg.payload = 'online';
|
msg.payload = 'online';
|
||||||
msg.data = state;
|
msg.data = state;
|
||||||
@ -81,39 +77,19 @@ module.exports = function(RED) {
|
|||||||
|
|
||||||
RED.httpAdmin.get(
|
RED.httpAdmin.get(
|
||||||
"/gamedig/types",
|
"/gamedig/types",
|
||||||
RED.auth.needsPermission('gamedig.types'),
|
RED.auth.needsPermission('flows.write'),
|
||||||
function(req, res) {
|
function(req, res) {
|
||||||
// gamedig has no way of listing available server types
|
console.log(games);
|
||||||
// so we just use regex to parse the info from the README
|
let server_types = Object.keys(games).map(gameKey => {
|
||||||
// this could break so we also reference the gamedig repo
|
let game = games[gameKey];
|
||||||
let availableTypesContent = fs.readFileSync(require.resolve("gamedig/games.txt"), 'utf-8')
|
game["type"] = gameKey;
|
||||||
server_types = [];
|
return game;
|
||||||
|
});
|
||||||
|
|
||||||
availableTypesContent
|
|
||||||
.split(/\r?\n/)
|
|
||||||
.forEach(line => {
|
|
||||||
if(
|
|
||||||
line.trim().length === 0
|
|
||||||
|| line.trim().length === 0
|
|
||||||
|| line.trim().startsWith('#')
|
|
||||||
) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// examples:
|
|
||||||
// avp2|Aliens versus Predator 2 (2001)|gamespy1|port=27888
|
|
||||||
// avp2010|Aliens vs. Predator (2010)|valve|port=27015
|
|
||||||
|
|
||||||
let [game_type, game_name, game_protocol] = line.split('|');
|
|
||||||
server_types.push({
|
|
||||||
'name': game_name,
|
|
||||||
'type': game_type,
|
|
||||||
'protocol': game_protocol
|
|
||||||
});
|
|
||||||
});
|
|
||||||
res.json({
|
res.json({
|
||||||
'result': 'ok',
|
'result': 'ok',
|
||||||
'server_types': server_types
|
'server_types': server_types
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
);
|
||||||
};
|
};
|
Loading…
x
Reference in New Issue
Block a user