zaarrg / dropbot Goto Github PK
View Code? Open in Web Editor NEWDrop Bot. Automaticlly Farms every Drop available like Rust for ya and now also your Custom Channel's
Drop Bot. Automaticlly Farms every Drop available like Rust for ya and now also your Custom Channel's
Bug: Sometimes the Drop is already claimed but the Bot doesn't recognize it.
Also see here #21
The following happens:
Will be fixed in a future release.
There seems to be an issue when you already have the drop. I have 1.3.2.2 Hot Fix 2
It doesn't seem to scan for drops you already have and only channel up currently is ArikaSaki. When it watches it seems to finally decide I must already have the drop. however then just completely fails to find another channel and crashes as below.
Watching https://www.twitch.tv/AriaSaki...
Current Progress: - % | Try: 1
Current Progress: - % | Try: 2
Failed to get a valid Drop to progress on this Channel or it is already claimed... Looking for a new one...
Checking for Live Channels
Going to Starting Channel...
(node:20552) UnhandledPromiseRejectionWarning: Error: Protocol error (Page.navigate): Invalid parameters Failed to deserialize params.url - BINDINGS: mandatory field missing at position 49
at S:\Downloads\TTVDropBot\node_modules\puppeteer\lib\cjs\puppeteer\common\Connection.js:208:63
at new Promise ()
at CDPSession.send (S:\Downloads\TTVDropBot\node_modules\puppeteer\lib\cjs\puppeteer\common\Connection.js:207:16)
at next (S:\Downloads\TTVDropBot\node_modules\puppeteer-extra-plugin-stealth\evasions\sourceurl\index.js:30:43)
at CDPSession.send (S:\Downloads\TTVDropBot\node_modules\puppeteer-extra-plugin-stealth\evasions\sourceurl\index.js:46:18)
at navigate (S:\Downloads\TTVDropBot\node_modules\puppeteer\lib\cjs\puppeteer\common\FrameManager.js:108:47)
at FrameManager.navigateFrame (S:\Downloads\TTVDropBot\node_modules\puppeteer\lib\cjs\puppeteer\common\FrameManager.js:91:13)
at Frame.goto (S:\Downloads\TTVDropBot\node_modules\puppeteer\lib\cjs\puppeteer\common\FrameManager.js:416:41)
at Page.goto (S:\Downloads\TTVDropBot\node_modules\puppeteer\lib\cjs\puppeteer\common\Page.js:789:53)
at StreamPage (S:\Downloads\TTVDropBot\src\Pages\StreamPage.js:26:24)
(Use TTVDropBot --trace-warnings ...
to show where the warning was created)
(node:20552) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict
(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:20552) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
That is, leave it running and start the channel search cycle until it appears.
Currently the compiled files are placed under the package
directory, and each took up >50MB of size. The whole repo was 476.65 MiB making cloning the repo under low bandwidth environment slow.
root@instance-prod:~# git clone https://github.com/Zaarrg/TTVDropBot
Cloning into 'TTVDropBot'...
remote: Enumerating objects: 906, done.
remote: Counting objects: 100% (51/51), done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 906 (delta 16), reused 51 (delta 16), pack-reused 855
Receiving objects: 100% (906/906), 476.65 MiB | 12.04 MiB/s, done.
Resolving deltas: 100% (535/535), done.
Updating files: 100% (44/44), done.
Consider moving the compiled files to a separate branch or use Release. You can always do pre-releases and alpha versions.
If the stream you are "watching" goes offline you are stuck in the watching loop.
Makes the whole script useless when you want to idle while sleeping.
TTVDropBot is a nice work. I deployed it on server and it saved me a lot of trouble. Appreciate it!
Some games like warframe, the drop is only active from every Thursday to Sunday. The bot removes games without active drop campaigns from prioritylist at startup, so I'll have to manually restart the bot sometimes to let it watch warframe.
Will it be better if the bot can monitor the drop status from prioritylist and start watching when it's active instead of just removing the games?
I run a bunch of stuff like this with docker-compose
So I would love official support/instructions for docker/docker-compose
(node:7904) UnhandledPromiseRejectionWarning: Error: Failed to launch the browser process! spawn C:\Program Files (x86)\Google\Chrome\Application ENOENT
TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md
at onClose (C:\Users\yujis\Downloads\Compressed\TTVDropBot_2\node_modules\puppeteer\lib\cjs\puppeteer\node\BrowserRunner.js:193:20)
at ChildProcess.<anonymous> (C:\Users\yujis\Downloads\Compressed\TTVDropBot_2\node_modules\puppeteer\lib\cjs\puppeteer\node\BrowserRunner.js:185:85)
at ChildProcess.emit (events.js:315:20)
at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
at onErrorNT (internal/child_process.js:465:16)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
(Use TTVDropBot --trace-warnings ...
to show where the warning was created)
(node:7904) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict
(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:7904) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Tested on mine and friends PC now, and when adding the profile path after adding the chrome.exe path, the program just closes.
However editing the settings file and manually adding the path to that works fine.
Not sure what causes it to auto close during setup.
if I start the program while the streams is offline, when he go online, the program automatically start watching? or, I need do something for he do that?
next stream is not starting because of auto claim
Hey,
would be a cool feature if you make an linux version for it,
easy to make (I guess?!) since many people got a little linux server to run a few things its cool to run the script there so you dont need your pc to be online.
with kind regards
I tried reinstalling and running as admin but it’s stuck at current progress. I opened chrome to
Watch the streamer and made sure progress was being counted but on the app its stuck.
Watching (twitch link here)
Reached 100 %... Looking for new Channel...
Checking for Live Channels
Going to Starting Channel...
(node:5276) UnhandledPromiseRejectionWarning: Error: Protocol error (Page.navigate): Invalid parameters Failed to deserialize params.url - BINDINGS: mandatory field missing at position 49
at C:\Users\OneDrive\Desktop\node_modules\puppeteer\lib\cjs\puppeteer\common\Connection.js:208:63
at new Promise ()
at CDPSession.send (C:\Users\OneDrive\Desktop\node_modules\puppeteer\lib\cjs\puppeteer\common\Connection.js:207:16)
at next (C:\Users\OneDrive\Desktop\node_modules\puppeteer-extra-plugin-stealth\evasions\sourceurl\index.js:30:43)
at CDPSession.send (C:\Users\OneDrive\Desktop\node_modules\puppeteer-extra-plugin-stealth\evasions\sourceurl\index.js:46:18)
at navigate (C:\Users\OneDrive\Desktop\node_modules\puppeteer\lib\cjs\puppeteer\common\FrameManager.js:108:47)
at FrameManager.navigateFrame (C:\Users\OneDrive\Desktop\node_modules\puppeteer\lib\cjs\puppeteer\common\FrameManager.js:91:13)
at Frame.goto (C:\Users\OneDrive\Desktop\node_modules\puppeteer\lib\cjs\puppeteer\common\FrameManager.js:416:41)
at Page.goto (C:\Users\OneDrive\Desktop\node_modules\puppeteer\lib\cjs\puppeteer\common\Page.js:789:53)
at StreamPage (C:\Users\OneDrive\Desktop\src\Pages\StreamPage.js:31:24)
(Use TTVDropBot --trace-warnings ...
to show where the warning was created)
(node:5276) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict
(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:5276) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
git clone https://github.com/Zaarrg/TTVDropBot
cd TTVDropBot
yarn install
yarn start:production
Select custom channel - Warframe
Enter url: https://twitch.tv/warframe
>> Please provide a Valid URL...
Similarly, yesterday while Warframe was live, the current dev channel cannot be auto-watched correctly (Select Warframe Campaign - Prime Time xxx) - it returns an error similar to #50, I recall it was something to do with the GAMEID, but I've lost my log due to a restart. Other channels/campaigns seemed to be fine.
No Custom Channels Found...
? Do you wanna add a Custom Channel? Yes
? Please provide a Name for this Custom Channel: r6
? Please provide the Twitch Url: https://twitch.tv/rainbow6
>> Please provide a Valid URL...
Usually there is only 9 drops. But this time there is 11. https://twitch.facepunch.com/
It seems your program stops checking at 9, so is missing Cyr and Sonii off the streamer list. Possibly needs to be amended to check for larger streamer lists for these instances.
Getting all Drops and other Details
https://www.twitch.tv/Myth | Myth Assault Rifle | Live
https://www.twitch.tv/Voyboy | Voyboy Hammer | Offline
https://www.twitch.tv/xQcOW | xQc SAR | Offline
https://www.twitch.tv/AriaSaki | Ariasaki Hammer | Live
https://www.twitch.tv/Sykkuno | Sykkuno Assault Rifle | Offline
https://www.twitch.tv/ludwig | Ludwig Sleeping Bag | Offline
https://www.twitch.tv/pokimane | Pokimane Painted Garage Door | Offline
https://www.twitch.tv/Trainwreckstv | Trainwreckstv Combat Knife | Offline
https://www.twitch.tv/Account%20Not%20Found | WillNeff Burlap Headwrap | Offline
Checking for Live Channels
at the end of each session it would be necessary to check all the channels to see who is live because the bot does not do it at the moment, and it would be necessary to put the user at the first session to mark the completed drops so the bot does not watch the channel with the completed drop
In case someone loses connection, retry every like 10 seconds and try to connect again.
At the moment the bot just kills itself.
Hello, I couldn't find if there was a Docker env variable for this, so I figured I'd ask. I'm currently using TTVDropBot to watch one specific game for drops. However, when I've collected all drops for that game, it will randomly pick another game to watch. This is really cluttering up my drops inventory within Twitch, and I'd like to stop that.
Can I make it so that TTVDropBot is always afking one specific game, even after all drops have been collected for that week?
Currently having a problem with the latest build. Can't login properly ever since the last twitch drop using the program... Can you please check this issue out? I use 2FA so i hope that doesn't cause issues.
So I tried to use this software on MacOS the chrome login stuff is all doing well but after i start watching an error occurred
`Watching` https://www.twitch.tv/rainbow6latam...
/Users/songboyao/Downloads/TTVDropBot-main/src/Pages/StreamCustomPage.js:267
const Pointscontent = await Points.getProperty('textContent')
^
TypeError: Cannot read property 'getProperty' of undefined
at farmpoint (/Users/songboyao/Downloads/TTVDropBot-main/src/Pages/StreamCustomPage.js:267:40)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async /Users/songboyao/Downloads/TTVDropBot-main/src/Pages/StreamCustomPage.js:111:13
at async /Users/songboyao/Downloads/TTVDropBot-main/src/Pages/StreamCustomPage.js:80:9
at async CurrentProgressEvent (/Users/songboyao/Downloads/TTVDropBot-main/src/Pages/StreamCustomPage.js:78:5)
at async StreamCustomPage (/Users/songboyao/Downloads/TTVDropBot-main/src/Pages/StreamCustomPage.js:67:5)
at async /Users/songboyao/Downloads/TTVDropBot-main/src/Pages/WatchingPage.js:44:17
at async /Users/songboyao/Downloads/TTVDropBot-main/src/Pages/WatchingPage.js:37:9
at async Watch (/Users/songboyao/Downloads/TTVDropBot-main/src/Pages/WatchingPage.js:23:5)
Hello. Love using the bot!
Would be nice if you made it so that it sets all the streams to 160p or the lowest available resolution an also made it mute all channels automatically.
I've also encountered an issue with channels who have made their stream inappropriate to younger viewers. it will just stay stuck there not watching the stream until i click the button.
While leaving the script in a remote machine to run, it returned the below lengthy error message after around 6-7 hours of watching
It said it returned a 400 code (Bad Request)
The remote machine has 500Mbps of bandwidth, not excellent, but due to the nature of ISP/DC network, it's meant to be more reliable than home network. And the ping looked more than fine.
root@instance-prod:~# speedtest-cli
Retrieving speedtest.net configuration...
Testing from Oracle Cloud (xxx)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Jump Networks Ltd (London) [39.19 km]: 4.22 ms
Testing download speed................................................................................
Download: 494.91 Mbit/s
Testing upload speed......................................................................................................
Upload: 289.71 Mbit/s
root@instance-prod:~# ping twitch.tv
PING twitch.tv (151.101.194.167) 56(84) bytes of data.
64 bytes from 151.101.194.167 (151.101.194.167): icmp_seq=1 ttl=58 time=1.20 ms
64 bytes from 151.101.194.167 (151.101.194.167): icmp_seq=2 ttl=58 time=1.22 ms
64 bytes from 151.101.194.167 (151.101.194.167): icmp_seq=3 ttl=58 time=1.22 ms
64 bytes from 151.101.194.167 (151.101.194.167): icmp_seq=4 ttl=58 time=1.22 ms
64 bytes from 151.101.194.167 (151.101.194.167): icmp_seq=5 ttl=58 time=1.25 ms
^C
--- twitch.tv ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 1.200/1.222/1.247/0.014 ms
Due to the nature of this error is potentially unknown, is it possible to add two features:
Currently it's impossible to run and forget, as eventually it will run into some issue that needs mannual operations. Thanks.
Below are the error messages:
Watching rainbow6 | Points: 55615
Current Progress: 0 % | Watched 0/240 Minutes | Drop 1/2 | Status Active | isClaimed true
Current Progress: 74.58 % | Watched 179/240 Minutes | Drop 2/2 | Status Active | isClaimed false
ERROR: Could not load https://www.twitch.tv... Check your connection...
Unhandled Rejection at: Promise {
<rejected> Error: Request failed with status code 400
at createError (/root/TTVDropBot/node_modules/axios/lib/core/createError.js:16:15)
at settle (/root/TTVDropBot/node_modules/axios/lib/core/settle.js:17:12)
at IncomingMessage.handleStreamEnd (/root/TTVDropBot/node_modules/axios/lib/adapters/http.js:322:11)
at IncomingMessage.emit (node:events:538:35)
at endReadableNT (node:internal/streams/readable:1345:12)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
[stack]: 'Error: Request failed with status code 400\n' +
' at createError (/root/TTVDropBot/node_modules/axios/lib/core/createError.js:16:15)\n' +
' at settle (/root/TTVDropBot/node_modules/axios/lib/core/settle.js:17:12)\n' +
' at IncomingMessage.handleStreamEnd (/root/TTVDropBot/node_modules/axios/lib/adapters/http.js:322:11)\n' +
' at IncomingMessage.emit (node:events:538:35)\n' +
' at endReadableNT (node:internal/streams/readable:1345:12)\n' +
' at processTicksAndRejections (node:internal/process/task_queues:83:21)',
[message]: 'Request failed with status code 400',
config: {
transitional: {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
},
adapter: <ref *1> [Function: httpAdapter] {
[length]: 1,
[name]: 'httpAdapter',
[prototype]: { [constructor]: [Circular *1] }
},
transformRequest: [
[Function: transformRequest] {
[length]: 2,
[name]: 'transformRequest',
[prototype]: [Object]
},
[length]: 1
],
transformResponse: [
[Function: transformResponse] {
[length]: 1,
[name]: 'transformResponse',
[prototype]: [Object]
},
[length]: 1
],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
validateStatus: <ref *2> [Function: validateStatus] {
[length]: 1,
[name]: 'validateStatus',
[prototype]: { [constructor]: [Circular *2] }
},
headers: {
Accept: 'application/json, text/plain, */*',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0',
encoding: 'utf8',
'Client-Id': 'kimne78kx3ncx6brgo4mv6wki5h1ko',
Authorization: ''
},
raxConfig: {
retry: 3,
noResponseRetries: 3,
retryDelay: 60000,
statusCodesToRetry: [ [Array], [Array], [Array], [length]: 3 ],
httpMethodsToRetry: [
'GET',
'HEAD',
'OPTIONS',
'DELETE',
'PUT',
'POST',
[length]: 6
],
onRetryAttempt: [Function: onRetryAttempt] {
[length]: 1,
[name]: 'onRetryAttempt'
},
backoffType: 'static',
currentRetryAttempt: 0,
instance: <ref *3> [Function: wrap] {
[length]: 0,
[name]: 'wrap',
[prototype]: [Object],
request: [Function],
getUri: [Function],
delete: [Function],
get: [Function],
head: [Function],
options: [Function],
post: [Function],
put: [Function],
patch: [Function],
defaults: [Object],
interceptors: [Object],
create: [Function],
Axios: [Function],
Cancel: [Function],
CancelToken: [Function],
isCancel: [Function],
VERSION: '0.26.1',
all: [Function],
spread: [Function],
isAxiosError: [Function],
default: [Circular *3]
},
checkRetryAfter: true,
maxRetryAfter: 300000
},
method: 'get',
url: 'https://www.twitch.tv/rainbow6',
data: undefined
},
request: <ref *5> ClientRequest {
_events: [Object: null prototype] {
abort: [Function (anonymous)] {
[length]: 3,
[name]: '',
[arguments]: null,
[caller]: null,
[prototype]: [Object]
},
aborted: [Function (anonymous)] {
[length]: 3,
[name]: '',
[arguments]: null,
[caller]: null,
[prototype]: [Object]
},
connect: [Function (anonymous)] {
[length]: 3,
[name]: '',
[arguments]: null,
[caller]: null,
[prototype]: [Object]
},
error: [Function (anonymous)] {
[length]: 3,
[name]: '',
[arguments]: null,
[caller]: null,
[prototype]: [Object]
},
socket: [Function (anonymous)] {
[length]: 3,
[name]: '',
[arguments]: null,
[caller]: null,
[prototype]: [Object]
},
timeout: [Function (anonymous)] {
[length]: 3,
[name]: '',
[arguments]: null,
[caller]: null,
[prototype]: [Object]
},
prefinish: [Function: requestOnPrefinish] {
[length]: 0,
[name]: 'requestOnPrefinish',
[prototype]: [Object]
}
},
_eventsCount: 7,
_maxListeners: undefined,
outputData: [ [length]: 0 ],
outputSize: 0,
writable: true,
destroyed: false,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
maxRequestsOnConnectionReached: false,
_defaultKeepAlive: true,
useChunkedEncodingByDefault: false,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: 0,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
_closed: false,
socket: <ref *4> TLSSocket {
_tlsOptions: {
allowHalfOpen: undefined,
pipe: false,
secureContext: [SecureContext],
isServer: false,
requestCert: true,
rejectUnauthorized: true,
session: <Buffer 30 82 07 a3 02 01 01 02 02 03 04 04 02 13 02 04 20 f3 54 06 fa 86 9a 1a f1 0c bd 9b ff 0a 35 d1 92 9c 10 e7 97 2a 9a ff 32 63 72 c1 81 02 af 9b c5 04 ... 1909 more bytes>,
ALPNProtocols: undefined,
requestOCSP: undefined,
enableTrace: undefined,
pskCallback: undefined,
highWaterMark: undefined,
onread: undefined,
signal: undefined
},
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
secureConnecting: false,
_SNICallback: null,
servername: 'www.twitch.tv',
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object: null prototype] {
close: [Array],
end: [Function],
newListener: [Function],
secure: [Function],
session: [Function],
free: [Function],
timeout: [Function],
agentRemove: [Function],
error: [Function],
finish: [Function]
},
_eventsCount: 10,
connecting: false,
_hadError: false,
_parent: null,
_host: 'www.twitch.tv',
_readableState: ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: [Array],
flowing: true,
ended: false,
endEmitted: false,
reading: true,
constructed: true,
sync: false,
needReadable: true,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
errorEmitted: false,
emitClose: false,
autoDestroy: true,
destroyed: false,
errored: null,
closed: false,
closeEmitted: false,
defaultEncoding: 'utf8',
awaitDrainWriters: null,
multiAwaitDrain: false,
readingMore: false,
dataEmitted: true,
decoder: null,
encoding: null,
[Symbol(kPaused)]: false,
[pipesCount]: [Getter],
[paused]: [Getter/Setter]
},
_maxListeners: undefined,
_writableState: WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: true,
needDrain: false,
ending: true,
ended: true,
finished: false,
destroyed: false,
decodeStrings: false,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: 0,
sync: false,
bufferProcessing: false,
onwrite: [Function],
writecb: null,
writelen: 0,
afterWriteTickInfo: null,
buffered: [Array],
bufferedIndex: 0,
allBuffers: true,
allNoop: true,
pendingcb: 1,
constructed: true,
prefinished: false,
errorEmitted: false,
emitClose: false,
autoDestroy: true,
errored: null,
closed: false,
closeEmitted: false,
[Symbol(kOnFinished)]: [Array],
[bufferedRequestCount]: [Getter]
},
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: TLSWrap {
_parent: [TCP],
_parentWrap: undefined,
_secureContext: [SecureContext],
reading: true,
onkeylog: [Function],
onhandshakestart: [Object],
onhandshakedone: [Function],
onocspresponse: [Function],
onnewsession: [Function],
onerror: [Function],
[Symbol(owner_symbol)]: [Circular *4],
writeQueueSize: [Getter],
[fd]: [Getter],
[_externalStream]: [Getter],
[bytesRead]: [Getter],
[bytesWritten]: [Getter],
isStreamBase: true
},
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Circular *5],
[Symbol(res)]: TLSWrap {
_parent: [TCP],
_parentWrap: undefined,
_secureContext: [SecureContext],
reading: true,
onkeylog: [Function],
onhandshakestart: [Object],
onhandshakedone: [Function],
onocspresponse: [Function],
onnewsession: [Function],
onerror: [Function],
[Symbol(owner_symbol)]: [Circular *4],
writeQueueSize: [Getter],
[fd]: [Getter],
[_externalStream]: [Getter],
[bytesRead]: [Getter],
[bytesWritten]: [Getter],
isStreamBase: true
},
[Symbol(verified)]: true,
[Symbol(pendingSession)]: null,
[Symbol(async_id_symbol)]: 277678,
[Symbol(kHandle)]: TLSWrap {
_parent: [TCP],
_parentWrap: undefined,
_secureContext: [SecureContext],
reading: true,
onkeylog: [Function],
onhandshakestart: [Object],
onhandshakedone: [Function],
onocspresponse: [Function],
onnewsession: [Function],
onerror: [Function],
[Symbol(owner_symbol)]: [Circular *4],
writeQueueSize: [Getter],
[fd]: [Getter],
[_externalStream]: [Getter],
[bytesRead]: [Getter],
[bytesWritten]: [Getter],
isStreamBase: true
},
[Symbol(kSetNoDelay)]: false,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBuffer)]: null,
[Symbol(kBufferCb)]: null,
[Symbol(kBufferGen)]: null,
[Symbol(kCapture)]: false,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0,
[Symbol(connect-options)]: {
rejectUnauthorized: true,
ciphers: 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA',
checkServerIdentity: [Function],
minDHSize: 1024,
session: <Buffer 30 82 07 a3 02 01 01 02 02 03 04 04 02 13 02 04 20 f3 54 06 fa 86 9a 1a f1 0c bd 9b ff 0a 35 d1 92 9c 10 e7 97 2a 9a ff 32 63 72 c1 81 02 af 9b c5 04 ... 1909 more bytes>,
maxRedirects: 21,
maxBodyLength: 10485760,
protocol: 'https:',
path: null,
method: 'GET',
headers: [Object],
agent: undefined,
agents: [Object],
auth: undefined,
hostname: 'www.twitch.tv',
port: 443,
nativeProtocols: [Object],
pathname: '/rainbow6',
_defaultAgent: [Agent],
host: 'www.twitch.tv',
servername: 'www.twitch.tv',
_agentKey: 'www.twitch.tv:443:::::::::::::::::::::',
encoding: null,
singleUse: true
},
[Symbol(RequestTimeout)]: undefined,
[_connecting]: [Getter],
[pending]: [Getter],
[readyState]: [Getter],
[bufferSize]: [Getter],
bytesRead: [Getter],
remoteAddress: [Getter],
remoteFamily: [Getter],
remotePort: [Getter],
localAddress: [Getter],
localPort: [Getter],
_bytesDispatched: [Getter],
bytesWritten: [Getter],
[_handle]: [Getter/Setter],
[Symbol(kUpdateTimer)]: [Getter],
[writable]: [Getter/Setter],
[writableHighWaterMark]: [Getter],
[writableObjectMode]: [Getter],
[writableBuffer]: [Getter],
[writableLength]: [Getter],
[writableFinished]: [Getter],
[writableCorked]: [Getter],
[writableEnded]: [Getter],
[writableNeedDrain]: [Getter],
[destroyed]: [Getter/Setter]
},
_header: 'GET /rainbow6 HTTP/1.1\r\n' +
'Accept: application/json, text/plain, */*\r\n' +
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0\r\n' +
'encoding: utf8\r\n' +
'Client-Id: kimne78kx3ncx6brgo4mv6wki5h1ko\r\n' +
'Authorization: ' +
'Host: www.twitch.tv\r\n' +
'Connection: close\r\n' +
'\r\n',
_keepAliveTimeout: 0,
_onPendingData: [Function: nop] { [length]: 0, [name]: 'nop' },
agent: Agent {
_events: [Object: null prototype] {
free: [Function],
newListener: [Function]
},
_eventsCount: 2,
_maxListeners: undefined,
defaultPort: 443,
protocol: 'https:',
options: [Object: null prototype] { path: null },
requests: [Object: null prototype] {},
sockets: [Object: null prototype] {
'www.twitch.tv:443:::::::::::::::::::::': [Array]
},
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: 'lifo',
maxTotalSockets: Infinity,
totalSocketCount: 1,
maxCachedSessions: 100,
_sessionCache: { map: [Object], list: [Array] },
[Symbol(kCapture)]: false
},
socketPath: undefined,
method: 'GET',
maxHeaderSize: undefined,
insecureHTTPParser: undefined,
path: '/rainbow6',
_ended: true,
res: IncomingMessage {
_readableState: ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: [Array],
flowing: true,
ended: true,
endEmitted: true,
reading: false,
constructed: true,
sync: false,
needReadable: false,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
destroyed: true,
errored: null,
closed: true,
closeEmitted: true,
defaultEncoding: 'utf8',
awaitDrainWriters: null,
multiAwaitDrain: false,
readingMore: false,
dataEmitted: true,
decoder: null,
encoding: null,
[Symbol(kPaused)]: false,
[pipesCount]: [Getter],
[paused]: [Getter/Setter]
},
_events: [Object: null prototype] {
end: [Array],
data: [Function],
aborted: [Function],
error: [Function]
},
_eventsCount: 4,
_maxListeners: undefined,
socket: <ref *4> TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
secureConnecting: false,
_SNICallback: null,
servername: 'www.twitch.tv',
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object: null prototype],
_eventsCount: 10,
connecting: false,
_hadError: false,
_parent: null,
_host: 'www.twitch.tv',
_readableState: [ReadableState],
_maxListeners: undefined,
_writableState: [WritableState],
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: [TLSWrap],
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Circular *5],
[Symbol(res)]: [TLSWrap],
[Symbol(verified)]: true,
[Symbol(pendingSession)]: null,
[Symbol(async_id_symbol)]: 277678,
[Symbol(kHandle)]: [TLSWrap],
[Symbol(kSetNoDelay)]: false,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBuffer)]: null,
[Symbol(kBufferCb)]: null,
[Symbol(kBufferGen)]: null,
[Symbol(kCapture)]: false,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0,
[Symbol(connect-options)]: [Object],
[Symbol(RequestTimeout)]: undefined,
[_connecting]: [Getter],
[pending]: [Getter],
[readyState]: [Getter],
[bufferSize]: [Getter],
bytesRead: [Getter],
remoteAddress: [Getter],
remoteFamily: [Getter],
remotePort: [Getter],
localAddress: [Getter],
localPort: [Getter],
_bytesDispatched: [Getter],
bytesWritten: [Getter],
[_handle]: [Getter/Setter],
[Symbol(kUpdateTimer)]: [Getter],
[writable]: [Getter/Setter],
[writableHighWaterMark]: [Getter],
[writableObjectMode]: [Getter],
[writableBuffer]: [Getter],
[writableLength]: [Getter],
[writableFinished]: [Getter],
[writableCorked]: [Getter],
[writableEnded]: [Getter],
[writableNeedDrain]: [Getter],
[destroyed]: [Getter/Setter]
},
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
rawHeaders: [
'Connection',
'close',
'Content-Type',
'application/xml',
'Date',
'Mon, 25 Apr 2022 22:09:52 GMT',
'Set-Cookie',
'twitch.lohp.countryCode=GB; domain=.twitch.tv; expires=Sat, 20 May 2023 22:09:52 GMT;',
'transfer-encoding',
'chunked',
[length]: 10
],
rawTrailers: [ [length]: 0 ],
aborted: false,
upgrade: false,
url: '',
method: null,
statusCode: 400,
statusMessage: 'Bad Request',
client: <ref *4> TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
secureConnecting: false,
_SNICallback: null,
servername: 'www.twitch.tv',
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object: null prototype],
_eventsCount: 10,
connecting: false,
_hadError: false,
_parent: null,
_host: 'www.twitch.tv',
_readableState: [ReadableState],
_maxListeners: undefined,
_writableState: [WritableState],
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: [TLSWrap],
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Circular *5],
[Symbol(res)]: [TLSWrap],
[Symbol(verified)]: true,
[Symbol(pendingSession)]: null,
[Symbol(async_id_symbol)]: 277678,
[Symbol(kHandle)]: [TLSWrap],
[Symbol(kSetNoDelay)]: false,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBuffer)]: null,
[Symbol(kBufferCb)]: null,
[Symbol(kBufferGen)]: null,
[Symbol(kCapture)]: false,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0,
[Symbol(connect-options)]: [Object],
[Symbol(RequestTimeout)]: undefined,
[_connecting]: [Getter],
[pending]: [Getter],
[readyState]: [Getter],
[bufferSize]: [Getter],
bytesRead: [Getter],
remoteAddress: [Getter],
remoteFamily: [Getter],
remotePort: [Getter],
localAddress: [Getter],
localPort: [Getter],
_bytesDispatched: [Getter],
bytesWritten: [Getter],
[_handle]: [Getter/Setter],
[Symbol(kUpdateTimer)]: [Getter],
[writable]: [Getter/Setter],
[writableHighWaterMark]: [Getter],
[writableObjectMode]: [Getter],
[writableBuffer]: [Getter],
[writableLength]: [Getter],
[writableFinished]: [Getter],
[writableCorked]: [Getter],
[writableEnded]: [Getter],
[writableNeedDrain]: [Getter],
[destroyed]: [Getter/Setter]
},
_consuming: true,
_dumped: false,
req: [Circular *5],
responseUrl: 'https://www.twitch.tv/rainbow6',
redirects: [ [length]: 0 ],
[Symbol(kCapture)]: false,
[Symbol(kHeaders)]: {
connection: 'close',
'content-type': 'application/xml',
date: 'Mon, 25 Apr 2022 22:09:52 GMT',
'set-cookie': [Array],
'transfer-encoding': 'chunked'
},
[Symbol(kHeadersCount)]: 10,
[Symbol(kTrailers)]: null,
[Symbol(kTrailersCount)]: 0,
[Symbol(RequestTimeout)]: undefined,
[connection]: [Getter/Setter],
[headers]: [Getter/Setter],
[trailers]: [Getter/Setter],
[readable]: [Getter/Setter],
[readableDidRead]: [Getter],
[readableAborted]: [Getter],
[readableHighWaterMark]: [Getter],
[readableBuffer]: [Getter],
[readableFlowing]: [Getter/Setter],
[readableLength]: [Getter],
[readableObjectMode]: [Getter],
[readableEncoding]: [Getter],
[destroyed]: [Getter/Setter],
[readableEnded]: [Getter]
},
aborted: false,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
reusedSocket: false,
host: 'www.twitch.tv',
protocol: 'https:',
_redirectable: Writable {
_writableState: WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: false,
needDrain: false,
ending: false,
ended: false,
finished: false,
destroyed: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: 0,
sync: true,
bufferProcessing: false,
onwrite: [Function],
writecb: null,
writelen: 0,
afterWriteTickInfo: null,
buffered: [Array],
bufferedIndex: 0,
allBuffers: true,
allNoop: true,
pendingcb: 0,
constructed: true,
prefinished: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
errored: null,
closed: false,
closeEmitted: false,
[Symbol(kOnFinished)]: [Array],
[bufferedRequestCount]: [Getter]
},
_events: [Object: null prototype] {
response: [Function],
error: [Function],
socket: [Function]
},
_eventsCount: 3,
_maxListeners: undefined,
_options: {
maxRedirects: 21,
maxBodyLength: 10485760,
protocol: 'https:',
path: '/rainbow6',
method: 'GET',
headers: [Object],
agent: undefined,
agents: [Object],
auth: undefined,
hostname: 'www.twitch.tv',
port: null,
nativeProtocols: [Object],
pathname: '/rainbow6'
},
_ended: true,
_ending: true,
_redirectCount: 0,
_redirects: [ [length]: 0 ],
_requestBodyLength: 0,
_requestBodyBuffers: [ [length]: 0 ],
_onNativeResponse: [Function (anonymous)] {
[length]: 1,
[name]: '',
[arguments]: null,
[caller]: null,
[prototype]: [Object]
},
_currentRequest: [Circular *5],
_currentUrl: 'https://www.twitch.tv/rainbow6',
[Symbol(kCapture)]: false,
[aborted]: [Getter],
[connection]: [Getter],
[socket]: [Getter],
_writev: null,
[destroyed]: [Getter/Setter],
[writable]: [Getter/Setter],
[writableFinished]: [Getter],
[writableObjectMode]: [Getter],
[writableBuffer]: [Getter],
[writableEnded]: [Getter],
[writableNeedDrain]: [Getter],
[writableHighWaterMark]: [Getter],
[writableCorked]: [Getter],
[writableLength]: [Getter]
},
[Symbol(kCapture)]: false,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kOutHeaders)]: [Object: null prototype] {
accept: [ 'Accept', 'application/json, text/plain, */*', [length]: 2 ],
'user-agent': [
'User-Agent',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0',
[length]: 2
],
encoding: [ 'encoding', 'utf8', [length]: 2 ],
'client-id': [ 'Client-Id', 'kimne78kx3ncx6brgo4mv6wki5h1ko', [length]: 2 ],
authorization: [
'Authorization',
'',
[length]: 2
],
host: [ 'Host', 'www.twitch.tv', [length]: 2 ]
},
[writableFinished]: [Getter],
[writableObjectMode]: [Getter],
[writableLength]: [Getter],
[writableHighWaterMark]: [Getter],
[writableCorked]: [Getter],
[_headers]: [Getter/Setter],
[connection]: [Getter/Setter],
[_headerNames]: [Getter/Setter],
headersSent: [Getter],
[writableEnded]: [Getter],
[writableNeedDrain]: [Getter]
},
response: {
status: 400,
statusText: 'Bad Request',
headers: {
connection: 'close',
'content-type': 'application/xml',
date: 'Mon, 25 Apr 2022 22:09:52 GMT',
'set-cookie': [
'twitch.lohp.countryCode=GB; domain=.twitch.tv; expires=Sat, 20 May 2023 22:09:52 GMT;',
[length]: 1
],
'transfer-encoding': 'chunked'
},
config: {
transitional: {
silentJSONParsing: true,
forcedJSONParsing: true,
clarifyTimeoutError: false
},
adapter: <ref *1> [Function: httpAdapter] {
[length]: 1,
[name]: 'httpAdapter',
[prototype]: [Object]
},
transformRequest: [ [Function], [length]: 1 ],
transformResponse: [ [Function], [length]: 1 ],
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
maxBodyLength: -1,
validateStatus: <ref *2> [Function: validateStatus] {
[length]: 1,
[name]: 'validateStatus',
[prototype]: [Object]
},
headers: {
Accept: 'application/json, text/plain, */*',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0',
encoding: 'utf8',
'Client-Id': 'kimne78kx3ncx6brgo4mv6wki5h1ko',
Authorization: ''
},
raxConfig: {
retry: 3,
noResponseRetries: 3,
retryDelay: 60000,
statusCodesToRetry: [Array],
httpMethodsToRetry: [Array],
onRetryAttempt: [Function],
backoffType: 'static',
currentRetryAttempt: 0,
instance: [Function],
checkRetryAfter: true,
maxRetryAfter: 300000
},
method: 'get',
url: 'https://www.twitch.tv/rainbow6',
data: undefined
},
request: <ref *5> ClientRequest {
_events: [Object: null prototype] {
abort: [Function],
aborted: [Function],
connect: [Function],
error: [Function],
socket: [Function],
timeout: [Function],
prefinish: [Function]
},
_eventsCount: 7,
_maxListeners: undefined,
outputData: [ [length]: 0 ],
outputSize: 0,
writable: true,
destroyed: false,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
maxRequestsOnConnectionReached: false,
_defaultKeepAlive: true,
useChunkedEncodingByDefault: false,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: 0,
_hasBody: true,
_trailer: '',
finished: true,
_headerSent: true,
_closed: false,
socket: <ref *4> TLSSocket {
_tlsOptions: [Object],
_secureEstablished: true,
_securePending: false,
_newSessionPending: false,
_controlReleased: true,
secureConnecting: false,
_SNICallback: null,
servername: 'www.twitch.tv',
alpnProtocol: false,
authorized: true,
authorizationError: null,
encrypted: true,
_events: [Object: null prototype],
_eventsCount: 10,
connecting: false,
_hadError: false,
_parent: null,
_host: 'www.twitch.tv',
_readableState: [ReadableState],
_maxListeners: undefined,
_writableState: [WritableState],
allowHalfOpen: false,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: undefined,
_server: null,
ssl: [TLSWrap],
_requestCert: true,
_rejectUnauthorized: true,
parser: null,
_httpMessage: [Circular *5],
[Symbol(res)]: [TLSWrap],
[Symbol(verified)]: true,
[Symbol(pendingSession)]: null,
[Symbol(async_id_symbol)]: 277678,
[Symbol(kHandle)]: [TLSWrap],
[Symbol(kSetNoDelay)]: false,
[Symbol(lastWriteQueueSize)]: 0,
[Symbol(timeout)]: null,
[Symbol(kBuffer)]: null,
[Symbol(kBufferCb)]: null,
[Symbol(kBufferGen)]: null,
[Symbol(kCapture)]: false,
[Symbol(kBytesRead)]: 0,
[Symbol(kBytesWritten)]: 0,
[Symbol(connect-options)]: [Object],
[Symbol(RequestTimeout)]: undefined,
[_connecting]: [Getter],
[pending]: [Getter],
[readyState]: [Getter],
[bufferSize]: [Getter],
bytesRead: [Getter],
remoteAddress: [Getter],
remoteFamily: [Getter],
remotePort: [Getter],
localAddress: [Getter],
localPort: [Getter],
_bytesDispatched: [Getter],
bytesWritten: [Getter],
[_handle]: [Getter/Setter],
[Symbol(kUpdateTimer)]: [Getter],
[writable]: [Getter/Setter],
[writableHighWaterMark]: [Getter],
[writableObjectMode]: [Getter],
[writableBuffer]: [Getter],
[writableLength]: [Getter],
[writableFinished]: [Getter],
[writableCorked]: [Getter],
[writableEnded]: [Getter],
[writableNeedDrain]: [Getter],
[destroyed]: [Getter/Setter]
},
_header: 'GET /rainbow6 HTTP/1.1\r\n' +
'Accept: application/json, text/plain, */*\r\n' +
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0\r\n' +
'encoding: utf8\r\n' +
'Client-Id: kimne78kx3ncx6brgo4mv6wki5h1ko\r\n' +
'Authorization: ' +
'Host: www.twitch.tv\r\n' +
'Connection: close\r\n' +
'\r\n',
_keepAliveTimeout: 0,
_onPendingData: [Function: nop] { [length]: 0, [name]: 'nop' },
agent: Agent {
_events: [Object: null prototype],
_eventsCount: 2,
_maxListeners: undefined,
defaultPort: 443,
protocol: 'https:',
options: [Object: null prototype],
requests: [Object: null prototype] {},
sockets: [Object: null prototype],
freeSockets: [Object: null prototype] {},
keepAliveMsecs: 1000,
keepAlive: false,
maxSockets: Infinity,
maxFreeSockets: 256,
scheduling: 'lifo',
maxTotalSockets: Infinity,
totalSocketCount: 1,
maxCachedSessions: 100,
_sessionCache: [Object],
[Symbol(kCapture)]: false
},
socketPath: undefined,
method: 'GET',
maxHeaderSize: undefined,
insecureHTTPParser: undefined,
path: '/rainbow6',
_ended: true,
res: IncomingMessage {
_readableState: [ReadableState],
_events: [Object: null prototype],
_eventsCount: 4,
_maxListeners: undefined,
socket: [TLSSocket],
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
rawHeaders: [Array],
rawTrailers: [Array],
aborted: false,
upgrade: false,
url: '',
method: null,
statusCode: 400,
statusMessage: 'Bad Request',
client: [TLSSocket],
_consuming: true,
_dumped: false,
req: [Circular *5],
responseUrl: 'https://www.twitch.tv/rainbow6',
redirects: [Array],
[Symbol(kCapture)]: false,
[Symbol(kHeaders)]: [Object],
[Symbol(kHeadersCount)]: 10,
[Symbol(kTrailers)]: null,
[Symbol(kTrailersCount)]: 0,
[Symbol(RequestTimeout)]: undefined,
[connection]: [Getter/Setter],
[headers]: [Getter/Setter],
[trailers]: [Getter/Setter],
[readable]: [Getter/Setter],
[readableDidRead]: [Getter],
[readableAborted]: [Getter],
[readableHighWaterMark]: [Getter],
[readableBuffer]: [Getter],
[readableFlowing]: [Getter/Setter],
[readableLength]: [Getter],
[readableObjectMode]: [Getter],
[readableEncoding]: [Getter],
[destroyed]: [Getter/Setter],
[readableEnded]: [Getter]
},
aborted: false,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
reusedSocket: false,
host: 'www.twitch.tv',
protocol: 'https:',
_redirectable: Writable {
_writableState: [WritableState],
_events: [Object: null prototype],
_eventsCount: 3,
_maxListeners: undefined,
_options: [Object],
_ended: true,
_ending: true,
_redirectCount: 0,
_redirects: [Array],
_requestBodyLength: 0,
_requestBodyBuffers: [Array],
_onNativeResponse: [Function],
_currentRequest: [Circular *5],
_currentUrl: 'https://www.twitch.tv/rainbow6',
[Symbol(kCapture)]: false,
[aborted]: [Getter],
[connection]: [Getter],
[socket]: [Getter],
_writev: null,
[destroyed]: [Getter/Setter],
[writable]: [Getter/Setter],
[writableFinished]: [Getter],
[writableObjectMode]: [Getter],
[writableBuffer]: [Getter],
[writableEnded]: [Getter],
[writableNeedDrain]: [Getter],
[writableHighWaterMark]: [Getter],
[writableCorked]: [Getter],
[writableLength]: [Getter]
},
[Symbol(kCapture)]: false,
[Symbol(kNeedDrain)]: false,
[Symbol(corked)]: 0,
[Symbol(kOutHeaders)]: [Object: null prototype] {
accept: [Array],
'user-agent': [Array],
encoding: [Array],
'client-id': [Array],
authorization: [Array],
host: [Array]
},
[writableFinished]: [Getter],
[writableObjectMode]: [Getter],
[writableLength]: [Getter],
[writableHighWaterMark]: [Getter],
[writableCorked]: [Getter],
[_headers]: [Getter/Setter],
[connection]: [Getter/Setter],
[_headerNames]: [Getter/Setter],
headersSent: [Getter],
[writableEnded]: [Getter],
[writableNeedDrain]: [Getter]
},
data: '<?xml version="1.0" encoding="UTF-8"?>\n' +
'<Error></Error>'
},
isAxiosError: true,
toJSON: <ref *6> [Function: toJSON] {
[length]: 0,
[name]: 'toJSON',
[prototype]: { [constructor]: [Circular *6] }
}
}
}
Unhandled Rejection Reason: Error: Request failed with status code 400
root@instance-prod:~/TTVDropBot# client_loop: send disconnect: Connection reset
Hi !
Just wanted to report an issue.
What:
`TypeError: Cannot read property 'name' of null
More Details can be found in the error Log...
Closing Bot...`
That's what i have in my discord webhook error message.
it closes CMD window too.
When:
It seems to happen in long session like 2hrs+.
And when there are no drop available for too long.
Thank you.
Can you add a feature to random selection that selects only linked games accounts?
I think this be better for everyone.
EDIT: I saw it on the to-do list. Sorry..
Rust changed the Site Layout, neans the current xpaths dont match with the new ones.
I just updated to 1.3.3 and opened it to continue watching Sykkuno (had 12%) and after selecting him the bot gives me All live channels claimed... Almost... All but sykkuno's drop are claimed. Maybe it can't differentiate from sykkuno's old drop (that i have indeed claimed) and his new drop (that is at 12%). Check the photo
not able to get current progress and after 2 try it reset
Hello Zarrag,
Is this bot something that could get your account banned/disabled on twitch?
Just wondering if it is within the sites policies
Dont farm drops i already farmed
I know this is how it is intended to work but I think changing it so it watches something random as long as noone can be watched from the prioritylist or allowing an option that does that would be a great feature.
Version 1.3.2.1
Crash during the night
(node:1856) UnhandledPromiseRejectionWarning: Error: Protocol error (Page.reload): Session closed. Most likely the page has been closed.
at CDPSession.send (C:\Users\virtual\Desktop\TTVDropBot\node_modules\puppeteer\lib\cjs\puppeteer\common\Connection.js:195:35)
at next (C:\Users\virtual\Desktop\TTVDropBot\node_modules\puppeteer-extra-plugin-stealth\evasions\sourceurl\index.js:30:43)
at CDPSession.send (C:\Users\virtual\Desktop\TTVDropBot\node_modules\puppeteer-extra-plugin-stealth\evasions\sourceurl\index.js:33:18)
at Page.reload (C:\Users\virtual\Desktop\TTVDropBot\node_modules\puppeteer\lib\cjs\puppeteer\common\Page.js:794:26)
at MapDrops (C:\Users\virtual\Desktop\TTVDropBot\src\functions\MapDrops.js:5:21)
at CheckProgressCurrentPage (C:\Users\virtual\Desktop\TTVDropBot\src\Checks\CheckProgressCurrentPage.js:13:11)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async C:\Users\virtual\Desktop\TTVDropBot\src\Pages\StreamPage.js:64:9
at async CurrentProgressEvent (C:\Users\virtual\Desktop\TTVDropBot\src\Pages\StreamPage.js:62:5)
(Use `TTVDropBot --trace-warnings ...` to show where the warning was created)
(node:1856) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:1856) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Starting it again it doesn't find any drops (Checking for Live Channels is empty because all are offline except for iiTzTimmy where I got the drop already). If pressing enter at "Select Twitch Channel to start Watching?" it crashes to another error (I expected it will wait for someone to come online)
(node:11172) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'value' of undefined
at ListPrompt.getCurrentValue (C:\Users\virtual\Desktop\TTVDropBot\node_modules\inquirer\lib\prompts\list.js:148:53)
at MapSubscriber._next (C:\Users\virtual\Desktop\TTVDropBot\node_modules\rxjs\internal\operators\map.js:49:35)
at MapSubscriber.Subscriber.next (C:\Users\virtual\Desktop\TTVDropBot\node_modules\rxjs\internal\Subscriber.js:66:18)
at TakeSubscriber._next (C:\Users\virtual\Desktop\TTVDropBot\node_modules\rxjs\internal\operators\take.js:54:30)
at TakeSubscriber.Subscriber.next (C:\Users\virtual\Desktop\TTVDropBot\node_modules\rxjs\internal\Subscriber.js:66:18)
at Interface.handler (C:\Users\virtual\Desktop\TTVDropBot\node_modules\rxjs\internal\observable\fromEvent.js:22:28)
at Interface.emit (events.js:327:22)
at Interface._onLine (readline.js:337:10)
at Interface._line (readline.js:666:8)
at Interface._ttyWrite (readline.js:1010:14)
(Use `TTVDropBot --trace-warnings ...` to show where the warning was created)
(node:11172) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:11172) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
The program seems to switch streams after 3 failures. It seems to get a failure to check every 3-5 attempts. This eventually causes it to switch streams even when the stream is still up.
In my opinion it should only switch if it is " 3 failures in a row" not "3 failures total"
I assume resetting the try count on a successful check, would be a quick way to fix this.
To add a suggestion to this. it would be useful to be able to add a list of streamers I already have drops for so it does not check them anymore. As it takes a long time to get 3 trys on a stream I already have the drop for.
Possibly automatically log streams the tool has got 100% for or detected 100% for too.
Report Bugs on the Discord Server, im way more active on discord.
So i created a Discord Server, if you have any questions, suggestions or bug reports please join the discord and report it there. Im way more active on Discord and can answer mostly instanly, if im online...
Discord Server
Invite Link:
https://discord.gg/rV26FZ2upF
Also if you want information about "Can this can get someone banned" take a look at this question #47
When i paste the path for the chrome profile, the program exits instantly.
I even tried to put it in settings manually, but i got like 10 rows of errors.
Is this a known issue, or am I messing up something?
? What is your Password? [hidden]
Something went wrong...
Login failed for an unknown reason...
The Reason is probably:
Unhandled Rejection at: Promise {
<rejected> TypeError: Cannot read property 'error_code' of undefined
at /snapshot/TTVDropBot-v2/build/functions/login/defaultlogin.js:221:95
at Generator.next (<anonymous>)
at /snapshot/TTVDropBot-v2/build/functions/login/defaultlogin.js:8:71
at new Promise (<anonymous>)
at /snapshot/TTVDropBot-v2/build/functions/login/defaultlogin.js:4:12
at /snapshot/TTVDropBot-v2/build/functions/login/defaultlogin.js:160:20
at processTicksAndRejections (internal/process/task_queues.js:95:5) {
[stack]: "TypeError: Cannot read property 'error_code' of undefined\n" +
' at /snapshot/TTVDropBot-v2/build/functions/login/defaultlogin.js:221:95\n' +
' at Generator.next (<anonymous>)\n' +
' at /snapshot/TTVDropBot-v2/build/functions/login/defaultlogin.js:8:71\n' +
' at new Promise (<anonymous>)\n' +
' at /snapshot/TTVDropBot-v2/build/functions/login/defaultlogin.js:4:12\n' +
' at /snapshot/TTVDropBot-v2/build/functions/login/defaultlogin.js:160:20\n' +
' at processTicksAndRejections (internal/process/task_queues.js:95:5)',
[message]: "Cannot read property 'error_code' of undefined"
}
}
Unhandled Rejection Reason: TypeError: Cannot read property 'error_code' of undefined
I entering current information, buy getting this
When I log in, it always shows "Failed axios Request... Retrying in 60 seconds... Try: 1/3 Error: read ECONNRESET"
Firstly thanks and great work getting the issues fixed so quickly.
However currently 1.3.3 seems to be broken for me at least. Once you choose the channel to watch it gets below error, I have tried the npm and .exe compiled versions and they both do the same thing :
Setting Video Settings like Quality and Volume...
Watching https://www.twitch.tv/Sykkuno...
(node:35920) UnhandledPromiseRejectionWarning: Error: Evaluation failed: TypeError: Cannot read property 'startsWith' of undefined
at :57:33
at Array.filter ()
at :56:39
at ExecutionContext._evaluateInternal (S:\RustDropBot\node_modules\puppeteer\lib\cjs\puppeteer\common\ExecutionContext.js:218:19)
at runMicrotasks ()
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async ExecutionContext.evaluate (S:\RustDropBot\node_modules\puppeteer\lib\cjs\puppeteer\common\ExecutionContext.js:107:16)
at async MapDrops (S:\RustDropBot\src\functions\MapDrops.js:89:5)
at async CheckProgressCurrentPage (S:\RustDropBot\src\Checks\CheckProgressCurrentPage.js:14:5)
at async S:\RustDropBot\src\Pages\StreamPage.js:68:9
at async CurrentProgressEvent (S:\RustDropBot\src\Pages\StreamPage.js:66:5)
at async StreamPage (S:\RustDropBot\src\Pages\StreamPage.js:54:5)
at async intrust (S:\RustDropBot\src\Pages\WatchingPage.js:79:13)
(Use TTVDropBot --trace-warnings ...
to show where the warning was created)
(node:35920) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict
(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:35920) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
it doesnt work. i tested latese pre patch and relase before it.
Starting...
Executable Path provided...
? Do you wanna use a custom UserDataDirectory? No
Successfully Saved Settings...
Starting Login Page...
Please Login with you Account...
Success Login...
Saving Cookies...
Closing Browser and Moving on...
Successfully Saved Cookies...
? Do you wanna watch a Custom Channel? No
Getting all Drops and other Details
(node:3528) UnhandledPromiseRejectionWarning: TimeoutError: Navigation timeout of 30000 ms exceeded
at C:\Users\cagda\OneDrive\Masaüstü\titit\node_modules\puppeteer\lib\cjs\puppeteer\common\LifecycleWatcher.js:106:111
(Use TTVDropBot --trace-warnings ...
to show where the warning was created)
(node:3528) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict
(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:3528) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.