ktvmanager/lib/checker.js
2021-09-14 13:05:07 +00:00

238 lines
9.3 KiB
JavaScript

let streamArrays = require('./streamArray.json')
let users = require('./logins.json')
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 } = require('../lib/Accounts')
const delay = ms => new Promise(res => setTimeout(res, ms));
async function buildURL(streamURL, username, password) {
let url = streamURL + "/player_api.php?username=" + username + "&password=" + password
return url
}
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 url = await buildURL(stream.streamURL, user.username, 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 = await buildURL(stream.streamURL, user.username, user.password)
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('en-GB')
process.stdout.write('\n')
console.log('Match - ' + user.username + ' - ' + stream.StreamURL + ' - ' + stream.StreamName + ' - Expires - ' + body.user_info.exp_date)
break
}
} catch (error) {
}
}
}
process.stdout.write('\nEnd Of Streams\n\n')
}
console.log('Finished')
}
async function newCheck() {
streamURLS = await getStreamsNew()
let userAccounts = await getAllUserAccounts()
userAccounts = userAccounts.map(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 newUserCheck(accountData) {
streamURLS = await getStreamsNew()
let userAccounts = await getUserAccountsCheck(accountData.userId)
userAccounts = userAccounts.map(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) {
}
}
}
}
}
return true
}
async function newSingleCheck(accountData) {
streamURLS = await getStreamsNew()
let userAccounts = await getUserAccountsCheck(accountData.userId)
userAccounts = userAccounts.map(user => {
user.passwordDecryped = decryptPassword(user.password)
return user
})
var result = userAccounts.filter(obj => {
return obj.username === accountData.username && obj.passwordDecryped === accountData.password && obj.stream === accountData.stream
})
for (let userAccount of result) {
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)
return true
}
} catch (error) {
}
}
}
removeAccountFromDB({
"user": userAccount.username,
"stream": userAccount.stream,
"userId": accountData.userId
})
return false
}
}
}
// async function newSingleCheck(userData) {
// streamURLS = await getStreamsNew()
// for (let streamURL of streamURLS) {
// process.stdout.write('.')
// let url = await buildURL(streamURL, userData.username, userData.password)
// // console.log(url)
// 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('en-GB')
// // process.stdout.write('\n')
// await updateStreamData(userAccount, streamURL, body.user_info.exp_date)
// console.log(`Match - ${username} - ${streamURL} - Expires - ${body.user_info.exp_date}`)
// return (`Match - ${username} - ${streamURL} - Expires - ${body.user_info.exp_date}`)
// // break
// }
// } catch (error) {
// }
// }
// }
// }
// // }
// main()
// singleCheck('Karl2903')
// newCheck()
// newSingleCheck('Karl1607', 'Ybkjqszr1z')
module.exports = {
newCheck,
singleCheck,
main,
newSingleCheck,
newUserCheck
}