From c5130ed93f2b00dff75cefec94232fb8237f7bb9 Mon Sep 17 00:00:00 2001 From: "karl.hudgell" Date: Sat, 13 Feb 2021 13:14:15 +0000 Subject: [PATCH] updates --- .vscode/launch.json | 2 +- app.js | 10 ++++--- checker.js | 36 ----------------------- client/src/App.css | 70 +++++++++++++++++++++++++------------------- client/src/App.js | 28 +++++++++++------- docker-compose.yml | 16 +++++++--- lib/checker.js | 63 +++++++++++++++++++++++++++++++++++++++ lib/streamArray.json | 2 +- routes/postUser.js | 15 ++++++++++ 9 files changed, 156 insertions(+), 86 deletions(-) delete mode 100644 checker.js create mode 100644 lib/checker.js create mode 100644 routes/postUser.js diff --git a/.vscode/launch.json b/.vscode/launch.json index 7efac32..3b1da1c 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -18,7 +18,7 @@ "skipFiles": [ "/**" ], - "program": "${workspaceFolder}/app.js" + "program": "${workspaceFolder}/bin/www" }, { "type": "node", diff --git a/app.js b/app.js index 9ab1f9c..f4fd65b 100644 --- a/app.js +++ b/app.js @@ -5,7 +5,8 @@ var cookieParser = require('cookie-parser'); var logger = require('morgan'); var indexRouter = require('./routes/index'); -var usersRouter = require('./routes/getStreams'); +var streamsRouter = require('./routes/getStreams'); +var usersRouter = require('./routes/postUser') var app = express(); // const basicAuth = require('express-basic-auth') @@ -21,7 +22,8 @@ app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', indexRouter); -app.use('/getStreams', usersRouter); +app.use('/getStreams', streamsRouter); +app.use('/postUser', usersRouter); // app.use(basicAuth({ // users: { 'BBLBTV': 'BBLBTV' }, @@ -30,12 +32,12 @@ app.use('/getStreams', usersRouter); // })) // catch 404 and forward to error handler -app.use(function(req, res, next) { +app.use(function (req, res, next) { next(createError(404)); }); // error handler -app.use(function(err, req, res, next) { +app.use(function (err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; diff --git a/checker.js b/checker.js deleted file mode 100644 index eb27b9a..0000000 --- a/checker.js +++ /dev/null @@ -1,36 +0,0 @@ - -let streamArrays = require('./lib/streamArray.json') - -let users = require('./lib/logins.json') - -const { gotRequest } = require('./lib/gotRequest') - -const delay = ms => new Promise(res => setTimeout(res, ms)); - -async function main() { - for (let index = 0; index < users.length; index++) { - const user = users[index]; - console.log('Trying ' + user.username) - for (let index = 0; index < streamArrays.length; index++) { - await delay(500); - const stream = streamArrays[index]; - process.stdout.write('.') - let url = stream.StreamURL + "/player_api.php?username=" + user.username + "&password=" + user.password - let t = await gotRequest(url) - let body = t.body - if (t.statusCode == 200 && body !== "") { - body = JSON.parse(body) - if (body.user_info.auth) { - var date = new Date(body.user_info.exp_date * 1000).toLocaleDateString('en-GB') - process.stdout.write('\n') - console.log('Match - ' + user.username + ' - ' + stream.StreamURL + ' - ' + stream.StreamName + ' - Expires - ' + date) - break - } - } - } - process.stdout.write('\nEnd Of Streams\n\n') - } - console.log('Finished') -} - -main() \ No newline at end of file diff --git a/client/src/App.css b/client/src/App.css index 8fafcb2..009e526 100644 --- a/client/src/App.css +++ b/client/src/App.css @@ -1,43 +1,53 @@ -.App { +/* Pen-specific styles */ +* { + box-sizing: border-box; +} +body { + font-size: 1.25rem; + font-family: sans-serif; + line-height: 150%; + text-shadow: 0 2px 2px #1b1917; +} + +section { + color: #fff; text-align: center; } -.App-logo { - height: 40vmin; - pointer-events: none; +div { + height: 100%; } -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } +article { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: 100%; + padding: 20px; } -.App-h1 { - background-color: #282c34; - color: white; +h1 { + font-size: 1.75rem; + margin: 0 0 0.75rem 0; } -.App-header { - background-color: #282c34; - /* min-height: 100vh; */ - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; +/* Pattern styles */ +.container { + display: table; + width: 100%; } -.App-link { - color: #61dafb; +.left-half { + background-color: #060b4d9f; + position: absolute; + left: 0px; + width: 50%; } -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} +.right-half { + background-color: #060b4d9f; + position: absolute; + right: 0px; + width: 50%; +} \ No newline at end of file diff --git a/client/src/App.js b/client/src/App.js index 76cb9b9..b099eea 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -1,22 +1,30 @@ import React, { Component } from 'react'; import './App.css'; class App extends Component { - state = { users: [] } + state = { streams: [] } componentDidMount() { fetch('/getStreams') .then(res => res.json()) - .then(users => this.setState({ users })); + .then(streams => this.setState({ streams })); } render() { return ( -
-
-

Servers

- {this.state.users.map(user => -
{user.StreamName} - {user.StreamURL}
- )} -
-
+
+
+
+

Servers

+ {this.state.streams.map(stream => +
{stream.StreamName} - {stream.StreamURL}
+ )} +
+
+
+
+

Right Half

+

If your knees aren't green by the end of the day, you ought to seriously re-examine your life.

+
+
+
); } } diff --git a/docker-compose.yml b/docker-compose.yml index f4595a6..210009f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,7 @@ -version: '3' +version: "3" services: backend: - # env_file: - # "./backend/backend.env" build: context: . dockerfile: .dockerfile @@ -20,4 +18,14 @@ services: environment: - PORT=6969 links: - - "backend:be" \ No newline at end of file + - "backend:be" + db: + image: mariadb + restart: always + environment: + MYSQL_ROOT_PASSWORD: example + adminer: + image: adminer + restart: always + ports: + - 8080:8080 diff --git a/lib/checker.js b/lib/checker.js new file mode 100644 index 0000000..fcf921e --- /dev/null +++ b/lib/checker.js @@ -0,0 +1,63 @@ + +let streamArrays = require('./streamArray.json') + +let users = require('./logins.json') + +const { gotRequest } = require('./gotRequest') + +const delay = ms => new Promise(res => setTimeout(res, ms)); + +async function singleCheck(username) { + let user = users.find(user => user.username === username) + for (let index = 0; index < streamArrays.length; index++) { + await delay(500); + const stream = streamArrays[index]; + process.stdout.write('.') + let url = stream.StreamURL + "/player_api.php?username=" + user.username + "&password=" + user.password + let t = await gotRequest(url) + let body = t.body + if (t.statusCode == 200 && body !== "") { + body = JSON.parse(body) + if (body.user_info.auth) { + var date = new Date(body.user_info.exp_date * 1000) + process.stdout.write('\n') + console.log('Match - ' + user.username + ' - ' + stream.StreamURL + ' - ' + stream.StreamName + ' - Expires - ' + date) + stream.username = user.username + stream.expiaryDate = date.toLocaleDateString('en-GB') + return (stream) + } + } + } + process.stdout.write('\nEnd Of Streams\n\n') +} + +async function main() { + for (let index = 0; index < users.length; index++) { + const user = users[index]; + console.log('Trying ' + user.username) + for (let index = 0; index < streamArrays.length; index++) { + await delay(500); + const stream = streamArrays[index]; + process.stdout.write('.') + let url = stream.StreamURL + "/player_api.php?username=" + user.username + "&password=" + user.password + let t = await gotRequest(url) + let body = t.body + if (t.statusCode == 200 && body !== "") { + body = JSON.parse(body) + if (body.user_info.auth) { + var date = new Date(body.user_info.exp_date * 1000).toLocaleDateString('en-GB') + process.stdout.write('\n') + console.log('Match - ' + user.username + ' - ' + stream.StreamURL + ' - ' + stream.StreamName + ' - Expires - ' + date) + break + } + } + } + process.stdout.write('\nEnd Of Streams\n\n') + } + console.log('Finished') +} + +module.exports = { + singleCheck, + main +} \ No newline at end of file diff --git a/lib/streamArray.json b/lib/streamArray.json index e57e270..d76c536 100644 --- a/lib/streamArray.json +++ b/lib/streamArray.json @@ -1 +1 @@ -[{"StreamName":"Insanity","StreamURL":"https://trippy.pro:443"},{"StreamName":"PremPlus","StreamURL":"https://itty.in:443"},{"StreamName":"GunSlinger","StreamURL":"http://gunslingertv.org:8080"},{"StreamName":"VIP","StreamURL":"http://oven-cleaner.com:8080/"},{"StreamName":"Technoid","StreamURL":"http://capoisagod2021.org:8080"},{"StreamName":"Old Premium","StreamURL":"https://caporeds.online:443"},{"StreamName":"??","StreamURL":"http://screamstreams.info:8080"},{"StreamName":"Gold","StreamURL":"http://catenamode.cf:8090"},{"StreamName":"??","StreamURL":"http://sulu.xyz:2086"},{"StreamName":"??","StreamURL":"http://bigbox.me.uk:2086"},{"StreamName":"??","StreamURL":"http://beautifilm.xyz:8080"},{"StreamName":"??","StreamURL":"https://hulks.xyz:443"},{"StreamName":"??","StreamURL":"http://mytv.digital:8080/"},{"StreamName":"??","StreamURL":"http://theonlinemedia.network:2052"},{"StreamName":"Gold","StreamURL":"http://server1.jforbes.club:8090"},{"StreamName":"??","StreamURL":"http://ths.viewdns.net:8080"},{"StreamName":"??","StreamURL":"http://vpsuk.store:8080"},{"StreamName":"??","StreamURL":"http://ac.mustardsubs.tk:8880"},{"StreamName":"??","StreamURL":"http://g132.caporeds.online:8080/"},{"StreamName":"??","StreamURL":"http://theonlinemedia.network:2052"},{"StreamName":"??","StreamURL":"http://beautifilm.xyz:8080"},{"StreamName":"??","StreamURL":"http://pimptv.dnsabr.com:8080"},{"StreamName":"??","StreamURL":"http://tavaratv.xyz:2095"},{"StreamName":"??","StreamURL":"http://cms-tan.media:8880"},{"StreamName":"??","StreamURL":"http://streamknighttv.xyz:8080"},{"StreamName":"??","StreamURL":"http://covidsucks.xyz:8080"},{"StreamName":"??","StreamURL":"http://fckbrexit.link:8080"},{"StreamName":"??","StreamURL":"http://tv.realot.xyz:35001"},{"StreamName":"??","StreamURL":"http://www.tvxclnt.com:8080"},{"StreamName":"Gambler","StreamURL":"http://iptv.satplex.co.uk:8080"},{"StreamName":"??","StreamURL":"http://37723998.to:2052"},{"StreamName":"??","StreamURL":"http://apkdns.store:8080"},{"StreamName":"??","StreamURL":"http://opplex.tv:8080"}] \ No newline at end of file +[{"StreamName":"Insanity","StreamURL":"https://trippy.pro:443"},{"StreamName":"PremPlus","StreamURL":"https://itty.in:443"},{"StreamName":"GunSlinger","StreamURL":"http://gunslingertv.org:8080"},{"StreamName":"VIP","StreamURL":"http://oven-cleaner.com:8080/"},{"StreamName":"Technoid","StreamURL":"http://capoisagod2021.org:8080"},{"StreamName":"Old Premium","StreamURL":"https://caporeds.online:443","username":"Dazg3012","expiaryDate":"12/30/2021"},{"StreamName":"??","StreamURL":"http://screamstreams.info:8080"},{"StreamName":"Gold","StreamURL":"http://catenamode.cf:8090"},{"StreamName":"??","StreamURL":"http://sulu.xyz:2086"},{"StreamName":"??","StreamURL":"http://bigbox.me.uk:2086"},{"StreamName":"??","StreamURL":"http://beautifilm.xyz:8080"},{"StreamName":"??","StreamURL":"https://hulks.xyz:443"},{"StreamName":"??","StreamURL":"http://mytv.digital:8080/"},{"StreamName":"??","StreamURL":"http://theonlinemedia.network:2052"},{"StreamName":"Gold","StreamURL":"http://server1.jforbes.club:8090"},{"StreamName":"??","StreamURL":"http://ths.viewdns.net:8080"},{"StreamName":"??","StreamURL":"http://vpsuk.store:8080"},{"StreamName":"??","StreamURL":"http://ac.mustardsubs.tk:8880"},{"StreamName":"??","StreamURL":"http://faithhosting.xyz:25461"},{"StreamName":"??","StreamURL":"http://g132.caporeds.online:8080/"},{"StreamName":"??","StreamURL":"http://theonlinemedia.network:2052"},{"StreamName":"??","StreamURL":"http://beautifilm.xyz:8080"},{"StreamName":"??","StreamURL":"http://pimptv.dnsabr.com:8080"},{"StreamName":"??","StreamURL":"http://tavaratv.xyz:2095"},{"StreamName":"??","StreamURL":"http://cms-tan.media:8880"},{"StreamName":"??","StreamURL":"http://streamknighttv.xyz:8080"},{"StreamName":"??","StreamURL":"http://covidsucks.xyz:8080"},{"StreamName":"??","StreamURL":"http://fckbrexit.link:8080"},{"StreamName":"??","StreamURL":"http://tv.realot.xyz:35001"},{"StreamName":"Gambler","StreamURL":"http://www.tvxclnt.com:8080"},{"StreamName":"??","StreamURL":"http://iptv.satplex.co.uk:8080"},{"StreamName":"??","StreamURL":"http://37723998.to:2052"},{"StreamName":"??","StreamURL":"http://apkdns.store:8080"}] \ No newline at end of file diff --git a/routes/postUser.js b/routes/postUser.js new file mode 100644 index 0000000..8db653f --- /dev/null +++ b/routes/postUser.js @@ -0,0 +1,15 @@ +var express = require('express'); +var router = express.Router(); + +const { singleCheck } = require('../lib/checker') + +/* POST postUser page. */ +router.post('/', async function (req, res, next) { + let postedUsername = req.body.username + + let data = await singleCheck(postedUsername) + + res.send(data); +}); + +module.exports = router;