working
This commit is contained in:
parent
d4a025fadd
commit
bd5e0fd4f8
194
lib/checker.js
194
lib/checker.js
@ -2,18 +2,24 @@ const { getStreamsNew } = require('../routes/getStreams')
|
||||
|
||||
const { updateStreamData } = require('./updateStreams')
|
||||
|
||||
const { gotRequest } = require('./gotRequest')
|
||||
|
||||
const { decryptPassword } = require('./password')
|
||||
|
||||
const { getAllUserAccounts, getUserAccountsCheck } = require('./getUser')
|
||||
|
||||
const { setExpired } = require('./setExpired')
|
||||
|
||||
const { removeAccountFromDB, storeAccountToDB } = require('../lib/Accounts')
|
||||
|
||||
const axios = require('axios')
|
||||
axios.defaults.timeout = 10000;
|
||||
const { wrapper } = require('axios-cookiejar-support')
|
||||
// import { wrapper } from 'axios-cookiejar-support';
|
||||
const { CookieJar } = require('tough-cookie')
|
||||
// import { CookieJar } from 'tough-cookie';
|
||||
|
||||
const jar = new CookieJar();
|
||||
const client = wrapper(axios.create({ jar }));
|
||||
|
||||
// axios.defaults.timeout = 5000;
|
||||
|
||||
const delay = ms => new Promise(res => setTimeout(res, ms));
|
||||
|
||||
@ -101,63 +107,95 @@ async function userCheck(accountData) {
|
||||
|
||||
await Promise.all(urlList.map(async (url) => {
|
||||
try {
|
||||
const response = await axios.get(url)
|
||||
// console.log(url)
|
||||
const response = await axios({
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'User-Agent': 'PostmanRuntime/7.28.4',
|
||||
'Accept': '*/*'
|
||||
},
|
||||
url: url,
|
||||
})
|
||||
console.log(url)
|
||||
if (response.status == 200 && response.data !== "") {
|
||||
try {
|
||||
let data = response.data
|
||||
if (data.user_info.auth) {
|
||||
console.log(url)
|
||||
updateAccounts(userAccounts, data, url)
|
||||
return true
|
||||
} else {
|
||||
return true
|
||||
return false
|
||||
}
|
||||
} catch (error) {
|
||||
// return true
|
||||
console.log(error)
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
return true
|
||||
return false
|
||||
}
|
||||
} catch {
|
||||
// return true
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
return false
|
||||
}
|
||||
}))
|
||||
return true
|
||||
})).then((values) => {
|
||||
console.log(values)
|
||||
if (values.includes(true)) {
|
||||
let count = values.filter(function (value) {
|
||||
return value === true;
|
||||
}).length
|
||||
let count2 = values.filter(function (value) {
|
||||
return value === false;
|
||||
}).length
|
||||
console.log('true ' + count)
|
||||
console.log('fail ' + count2)
|
||||
t = count + count2
|
||||
console.log(t)
|
||||
endresponse = true
|
||||
} else {
|
||||
console.log('true ' + count)
|
||||
console.log('fail ' + count2)
|
||||
t = count + count2
|
||||
console.log(t)
|
||||
endresponse = false
|
||||
}
|
||||
});
|
||||
return endresponse
|
||||
}
|
||||
|
||||
async function newCheck() {
|
||||
streamURLS = await getStreamsNew()
|
||||
let userAccounts = await getAllUserAccounts()
|
||||
userAccounts = userAccounts.map(async user => {
|
||||
user.passwordDecryped = decryptPassword(user.password)
|
||||
return user
|
||||
})
|
||||
for (let userAccount of userAccounts) {
|
||||
if (userAccount.expiaryDate != 123 && Math.round(Date.now() / 1000) > userAccount.expiaryDate) {
|
||||
setExpired(userAccount)
|
||||
} else {
|
||||
for (let streamURL of streamURLS) {
|
||||
process.stdout.write('.')
|
||||
let url = await buildURL(streamURL, userAccount.username, userAccount.passwordDecryped)
|
||||
let t = await gotRequest(url)
|
||||
let body = t.body
|
||||
if (t.statusCode == 200 && body !== "") {
|
||||
try {
|
||||
body = JSON.parse(body)
|
||||
if (body.user_info.auth) {
|
||||
var date = new Date(body.user_info.exp_date * 1000).toLocaleDateString(undefined, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })
|
||||
// process.stdout.write('\n')
|
||||
console.log(`${userAccount.username} - ${userAccount.stream} - ${streamURL} - Expires ${date}.`)
|
||||
await updateStreamData(userAccount, streamURL, body.user_info.exp_date)
|
||||
break
|
||||
}
|
||||
} catch (error) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// async function newCheck() {
|
||||
// streamURLS = await getStreamsNew()
|
||||
// let userAccounts = await getAllUserAccounts()
|
||||
// userAccounts = userAccounts.map(async user => {
|
||||
// user.passwordDecryped = decryptPassword(user.password)
|
||||
// return user
|
||||
// })
|
||||
// for (let userAccount of userAccounts) {
|
||||
// if (userAccount.expiaryDate != 123 && Math.round(Date.now() / 1000) > userAccount.expiaryDate) {
|
||||
// setExpired(userAccount)
|
||||
// } else {
|
||||
// for (let streamURL of streamURLS) {
|
||||
// process.stdout.write('.')
|
||||
// let url = await buildURL(streamURL, userAccount.username, userAccount.passwordDecryped)
|
||||
// let t = await gotRequest(url)
|
||||
// let body = t.body
|
||||
// if (t.statusCode == 200 && body !== "") {
|
||||
// try {
|
||||
// body = JSON.parse(body)
|
||||
// if (body.user_info.auth) {
|
||||
// var date = new Date(body.user_info.exp_date * 1000).toLocaleDateString(undefined, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })
|
||||
// // process.stdout.write('\n')
|
||||
// console.log(`${userAccount.username} - ${userAccount.stream} - ${streamURL} - Expires ${date}.`)
|
||||
// await updateStreamData(userAccount, streamURL, body.user_info.exp_date)
|
||||
// break
|
||||
// }
|
||||
// } catch (error) {
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// async function updateAccountDNS(userAccount, streamURLS) {
|
||||
@ -214,39 +252,39 @@ async function newCheck() {
|
||||
|
||||
|
||||
|
||||
async function singleCheck(accountData) {
|
||||
streamURLS = await getStreamsNew()
|
||||
let userAccounts = await getUserAccountsCheck(accountData.userId)
|
||||
userAccounts = userAccounts.map(user => {
|
||||
user.userId = accountData.userId
|
||||
user.passwordDecryped = decryptPassword(user.password)
|
||||
return user
|
||||
})
|
||||
userAccounts = userAccounts.filter(obj => {
|
||||
return obj.username === accountData.username && obj.passwordDecryped === accountData.password && obj.stream === accountData.stream
|
||||
})
|
||||
// async function singleCheck(accountData) {
|
||||
// streamURLS = await getStreamsNew()
|
||||
// let userAccounts = await getUserAccountsCheck(accountData.userId)
|
||||
// userAccounts = userAccounts.map(user => {
|
||||
// user.userId = accountData.userId
|
||||
// user.passwordDecryped = decryptPassword(user.password)
|
||||
// return user
|
||||
// })
|
||||
// userAccounts = userAccounts.filter(obj => {
|
||||
// return obj.username === accountData.username && obj.passwordDecryped === accountData.password && obj.stream === accountData.stream
|
||||
// })
|
||||
|
||||
try {
|
||||
for (let i = 0; i < userAccounts.length; ++i) {
|
||||
const userAccount = userAccounts[i];
|
||||
if (userAccount.expiaryDate != 123 && Math.round(Date.now() / 1000) > userAccount.expiaryDate) {
|
||||
setExpired(userAccount)
|
||||
} else {
|
||||
await updateAccounts(userAccount, streamURLS)
|
||||
}
|
||||
}
|
||||
console.log(Date.now())
|
||||
return true
|
||||
} catch (userAccount) {
|
||||
console.log('notfoundincatch')
|
||||
// console.error(error);
|
||||
removeAccountFromDB({
|
||||
"user": userAccount.username,
|
||||
"stream": userAccount.stream,
|
||||
"userId": accountData.userId
|
||||
})
|
||||
}
|
||||
}
|
||||
// try {
|
||||
// for (let i = 0; i < userAccounts.length; ++i) {
|
||||
// const userAccount = userAccounts[i];
|
||||
// if (userAccount.expiaryDate != 123 && Math.round(Date.now() / 1000) > userAccount.expiaryDate) {
|
||||
// setExpired(userAccount)
|
||||
// } else {
|
||||
// await updateAccounts(userAccount, streamURLS)
|
||||
// }
|
||||
// }
|
||||
// console.log(Date.now())
|
||||
// return true
|
||||
// } catch (userAccount) {
|
||||
// console.log('notfoundincatch')
|
||||
// // console.error(error);
|
||||
// removeAccountFromDB({
|
||||
// "user": userAccount.username,
|
||||
// "stream": userAccount.stream,
|
||||
// "userId": accountData.userId
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
async function singleAccountCheck(accountData) {
|
||||
@ -292,8 +330,6 @@ async function singleAccountCheck(accountData) {
|
||||
|
||||
|
||||
module.exports = {
|
||||
newCheck,
|
||||
singleCheck,
|
||||
userCheck,
|
||||
singleAccountCheck
|
||||
}
|
49
package-lock.json
generated
49
package-lock.json
generated
@ -183,6 +183,14 @@
|
||||
"follow-redirects": "^1.14.0"
|
||||
}
|
||||
},
|
||||
"axios-cookiejar-support": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/axios-cookiejar-support/-/axios-cookiejar-support-2.0.0.tgz",
|
||||
"integrity": "sha512-z3q8j0h051jkLtNRohfAXBTtFEMxWDTTADy8sb4cRl2g0Zmk1/613ioorV132FiSSIHjj3XQnG66ow77qHCrDg==",
|
||||
"requires": {
|
||||
"http-cookie-agent": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"babel-runtime": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||
@ -374,6 +382,11 @@
|
||||
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
|
||||
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
|
||||
},
|
||||
"cookie": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
|
||||
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
|
||||
},
|
||||
"cookie-signature": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||
@ -714,6 +727,15 @@
|
||||
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
|
||||
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
|
||||
},
|
||||
"http-cookie-agent": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/http-cookie-agent/-/http-cookie-agent-1.0.1.tgz",
|
||||
"integrity": "sha512-gde0TzbcynnVRYG38YKBOzJTIZat97FLBJCETHVhwBDe9A5WJS5iKwnHqj3Z+EerRwdADd05ukAT4JBt7XV4BA==",
|
||||
"requires": {
|
||||
"agent-base": "^6.0.2",
|
||||
"cookie": "^0.4.1"
|
||||
}
|
||||
},
|
||||
"http-errors": {
|
||||
"version": "1.6.3",
|
||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
|
||||
@ -1170,6 +1192,17 @@
|
||||
"tough-cookie": "~2.5.0",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.3.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"tough-cookie": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
||||
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
|
||||
"requires": {
|
||||
"psl": "^1.1.28",
|
||||
"punycode": "^2.1.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"resolve-alpn": {
|
||||
@ -1359,12 +1392,13 @@
|
||||
}
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
||||
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
|
||||
"integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
|
||||
"requires": {
|
||||
"psl": "^1.1.28",
|
||||
"punycode": "^2.1.1"
|
||||
"psl": "^1.1.33",
|
||||
"punycode": "^2.1.1",
|
||||
"universalify": "^0.1.2"
|
||||
}
|
||||
},
|
||||
"tunnel-agent": {
|
||||
@ -1394,6 +1428,11 @@
|
||||
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
|
||||
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
|
||||
},
|
||||
"universalify": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
|
||||
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
|
||||
},
|
||||
"unpipe": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||
|
@ -7,6 +7,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"axios": "^0.21.4",
|
||||
"axios-cookiejar-support": "^2.0.0",
|
||||
"bcrypt": "^5.0.0",
|
||||
"cryptr": "^6.0.2",
|
||||
"express": "~4.16.1",
|
||||
@ -14,6 +15,7 @@
|
||||
"got": "^11.8.1",
|
||||
"http-errors": "~1.6.3",
|
||||
"request": "^2.88.2",
|
||||
"sync-mysql": "^3.0.1"
|
||||
"sync-mysql": "^3.0.1",
|
||||
"tough-cookie": "^4.0.0"
|
||||
}
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ router.post('/', async function (req, res, next) {
|
||||
let result = await removeAccountFromDB(postData)
|
||||
console.log(result)
|
||||
if (result.affectedRows < 1) {
|
||||
res.send('Adding account failed')
|
||||
res.sendStatus(500)
|
||||
} else {
|
||||
res.send('Account ' + postData.username + ' Deleted from ' + userName)
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
var express = require('express');
|
||||
var router = express.Router();
|
||||
|
||||
const { storeAccountToDB } = require('../lib/Accounts')
|
||||
const { getUserId } = require('../lib/getUser')
|
||||
const { userCheck } = require('../lib/checker')
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user