TwitchDropsMiner
TwitchDropsMiner copied to clipboard
Rust campaigns: Waiting for an ONLINE channel (channel tags are not being updated)
Im unable to switch streamers during the current rust campain. i have 5 i can switch to and the rest (about 60 of them) i can not switch to all of them are online and playing rust right now...i can watch and clain in twitch but not through the miner
Same issue here. Seemed to have started with the Rust drops...
I'm facing the same issue
Hello o/
The condition for switching to a particular channel is the same as for channel auto-selection - it has to be a valid mining target. And that means, besides being ONLINE and other things, that it needs to have the drops enabled. From the picture, only the currently selected channel qualifies:
If the streamer adds the tag more than 2 minutes after the stream begins, the miner might miss on that happening. Assuming that's what happened, reloading the miner manually will fix the issue. If the streamer went online but didn't add the tag at all (yet), progressing the drop will be impossible, either the normal way or through the miner - this is a streamer error, not the miner's.
As far as fixing the possibility of missing on the tag being added, it'd require adding another event topic to subscribe to via the websocket, which means the channel tracking capacity of the miner would reduce by 33%, from 199 to 132. There's some optimizations I could make regarding this, like only subbing the topic once the channel goes online, as that's the only time we should care about the tags being updated, which would allow for tracking between 132-199 channels, but that introduced a dynamic channels range that'd need extra logic to allow "pruning" the channels due to needing more sub topics. I can't find the time to handle any of the other remaining issues, yet alone implement something bigger like this one is, so for now, you'll need to either rely on auto-reload which will pickup on the tag changes after an hour, or manually reloading the miner.
This issue can remain open to track this feature being added in the future, hopefully.
Hello o/
The condition for switching to a particular channel is the same as for channel auto-selection - it has to be a valid mining target. And that means, besides being ONLINE and other things, that it needs to have the drops enabled. From the picture, only the currently selected channel qualifies:
If the streamer adds the tag more than 2 minutes after the stream begins, the miner might miss on that happening. Assuming that's what happened, reloading the miner manually will fix the issue. If the streamer went online but didn't add the tag at all (yet), progressing the drop will be impossible, either the normal way or through the miner - this is a streamer error, not the miner's.
As far as fixing the possibility of missing on the tag being added, it'd require adding another event topic to subscribe to via the websocket, which means the channel tracking capacity of the miner would reduce by 33%, from 199 to 132. There's some optimizations I could make regarding this, like only subbing the topic once the channel goes online, as that's the only time we should care about the tags being updated, which would allow for tracking between 132-199 channels, but that introduced a dynamic channels range that'd need extra logic to allow "pruning" the channels due to needing more sub topics. I can't find the time to handle any of the other remaining issues, yet alone implement something bigger like this one is, so for now, you'll need to either rely on auto-reload which will pickup on the tag changes after an hour, or manually reloading the miner.
This issue can remain open to track this feature being added in the future, hopefully.
I've tried restarting and reloading, but it still isn't working. Strangely, manual farming works fine.
same problem here, I left it running overnight to mine Rust drops it mined 7 drops then stopped, currently displaying this message:
No available channels to watch. Waiting for an ONLINE channel...
I think the problem is it's not correctly marking channels with drops enabled
reloading didn't work --- the weird thing is it only marked a channel called "sleepy" as drop enabled and they're playing a different game
Hmm, that's strange then. I've seen a while ago that Twitch has updated it's tags system a bit, where it now allows "free form" tags to be added to streams. It seems problematic though, considering the "drops enabled" option being enabled for a stream can no longer be deduced from a particular channel's tags. Anyone can add a fake "Drops Enabled" tag and trick the miner (and viewers too), and also one can just enable the option but don't add the tag. At least that's has far I was able to see it works.
I'll try to find some time to dig into this matter further, and see if I can help it a little.
I see! I think they list the participating channels for each drop in the https://www.twitch.tv/drops/campaigns page, maybe we could pull it from there? either way take your time and thanks for quick response!
That list is already pulled from there, That's not the issue. The issue is, for a drop to be progressed by watching a particular channel, all of these have to be true:
- A campaign has to be in the "Active" state.
- If defined, the campaign's channels ACL (that list you've just mentioned) has to include the particular channel.
- The particular channel has to be ONLINE.
- The particular channel has to have the drops enabled in the streamer dashboard (this is the part that doesn't work).
So far, determining this "drops enabled" setting was done via a channel tag, that each channel had automatically added if they enabled the drops for the channel. This is done via the streamer dashboard, per the FAQ:
https://help.twitch.tv/s/article/mission-based-drops
https://dashboard.twitch.tv/drops
Now, it seems that the tag is no longer added, so the miner cannot determine if a channel has that option enabled or not. As far as I understand it, users can now manually add a fake "Drops Enabled" tag to let the users (who were familiar with the old system already) know the drops are enabled, but it's no longer something that can be used to determine if that option is enabled or not, and I need to find another way. The interesting thing is that the channel search used for finding livestreams with drops enabled, which also uses this old tag to do the search, still works as before. There should be a way to determine that information with the new tags system, but as I said, I haven't had the time to really look into it yet.
The simplest "fix" for now would be to just skip checking for the drops enabled tag. The miner might end up trying to watch a channel with the drops being disabled because of that (and thus get stuck not progressing any drops), but at least it'll work with Rust. A temporary fix is better than nothing.
I'm at work, but this is the best I can do for now: https://github.com/DevilXD/TwitchDropsMiner/commit/1df916f91ea233f94dd9d045cd8a0d9dcebb665c
Please try the latest master branch.
the temporary fix works, thank you!
I'm at work, but this is the best I can do for now: 1df916f
Please try the latest master branch.
We appreciate it <3
Thank you @DevilXD this is working well for this particular Rust campaign. The miner is correctly switching to channels and getting the drops.
Even now, checking for the tag at https://twitch.tv/directory/game/RUST?tl=c2542d6d-cd10-4532-919b-3d19f30a768b shows only five streamers using the correct "Drops Enabled" tag. Many streamers seem to be using a typed tag, specifically "DropsEnabled" or "DropsActivated."
Perhaps an option to toggle the specific tag versus a custom tag at the risk of the miner accidentally watching a troll stream instead of a valid drop stream? Thank you again for your time and efforts.
Perhaps an option to toggle the specific tag versus a custom tag at the risk of the miner accidentally watching a troll stream instead of a valid drop stream? Thank you again for your time and efforts.
This "typed tag" is not reliable, as far as I understand it. It's added manually by the streamers, meaning that one can simply not add it at all but still have drops enabled, or misleadingly add it without enabling the drops, and neither us nor the miner would know it. Please correct me if I'm wrong about this.
A different, more reliable solution needs to be figured out long-term. Worst case scenario, a system that'll "try out" a channel for ~5-10 minutes to see if it can progress a drop will need to be implemented. But it only complicates the already complicated internal miner machinery that's already there.
i think there is a problem with the rust drop also, from about 4 hours not works also from browser
Guys to have the bot fully working you need to compile the source code.
Now download the zip of the source code from the main page of the project.
Extract the main folder and put in your desktop
Install git and python (Must install them in order to proceed)
Open CMD with admin
In the CMD type: cd C:\Users\YOURNAME\Desktop\TwitchDropsMiner-master
Now in the CMD type: setup_env.bat
and wait for it to finish
When it finish type: build.bat
When this finish in the bot folder you previously extracted a dist folder should be created and you'll have the exe updated with the latest fix to switch channel
Guys to have the bot fully working you need to compile the source code. Now download the zip of the source code from the main page of the project. Extract the main folder and put in your desktop Install git and python (Must install them in order to proceed) Open CMD with admin In the CMD type:
cd C:\Users\YOURNAME\Desktop\TwitchDropsMiner-master
Now in the CMD type:setup_env.bat
and wait for it to finish When it finish type:build.bat
When this finish in the desktop folder a dist folder will be created and you'll have the exe updated with the latest fix to switch channel
Can you compile for us?
Guys to have the bot fully working you need to compile the source code. Now download the zip of the source code from the main page of the project. Extract the main folder and put in your desktop Install git and python (Must install them in order to proceed) Open CMD with admin In the CMD type:
cd C:\Users\YOURNAME\Desktop\TwitchDropsMiner-master
Now in the CMD type:setup_env.bat
and wait for it to finish When it finish type:build.bat
When this finish in the desktop folder a dist folder will be created and you'll have the exe updated with the latest fix to switch channelCan you compile for us?
https://drive.google.com/file/d/1hQCzWNmbJ3gWqRNNWT6YxyAexx8tyfvg/view?usp=share_link
No problem
Guys to have the bot fully working you need to compile the source code. Now download the zip of the source code from the main page of the project. Extract the main folder and put in your desktop Install git and python (Must install them in order to proceed) Open CMD with admin In the CMD type:
cd C:\Users\YOURNAME\Desktop\TwitchDropsMiner-master
Now in the CMD type:setup_env.bat
and wait for it to finish When it finish type:build.bat
When this finish in the desktop folder a dist folder will be created and you'll have the exe updated with the latest fix to switch channelCan you compile for us?
Really thanks, it works now
This "typed tag" is not reliable, as far as I understand it. It's added manually by the streamers, meaning that one can simply not add it at all but still have drops enabled, or misleadingly add it without enabling the drops, and neither us nor the miner would know it. Please correct me if I'm wrong about this.
How about a custom tag list. I know this also isn't a great long term solution either, but the user would be able to maintain it themselves in this case. Feed it with the most common ones and let the user decide what else to add.
How about a custom tag list. I know this also isn't a great long term solution either, but the user would be able to maintain it themselves in this case. Feed it with the most common ones and let the user decide what else to add.
That does not solve the issue of the "free form tags" being entirely dissociated with the actual setting state. The tag's existence, or lack thereof, isn't indicative here. It can't be relied on, at least entirely. It can be taken as something that's added "in good faith" of the tag's existence potentially confirming the setting is enabled, but at that point I'd rather create a system where all channels start as ones that have the drops enabled, and if the miner does not receive any drop progression from a particular channel, then it considers it's drops option is disabled and switches to a different one.
Unfortunately, with the Twitch API being so unreliable about the drop progression reporting, it'd most likely run into constant false-positives. I'm not sure until I'd attempt to add such system and test it of course, but that's my expectation. The miner currently has three (3) different ways of trying to make sense of how Twitch returns drop progress, those being "the usual way" of waiting for a websocket event, "the hard way" of asking GQL about the currently mined drop (if websocket doesn't respond), and if even that fails, then finally "the probably way" of scanning the entire inventory for drops that could potentially be earned on the channel it's currently watching, sorting them by descending progress percentage, and artificially advancing the top drop's progress by 1 minute, literally hoping that drop is the one being progressed. Usually this works fine. Before https://github.com/DevilXD/TwitchDropsMiner/commit/14b02591c673a88092499973b7e99b97c6113119, it could even "fake" a drop being progressed on a random game, that wasn't even added to the priority list.
I have very little personal time to properly sit down and think of a solution here. If you want to help and you're going to suggest anything, please start with what Twitch returns out of it's responses first - hopefully something there can be used to determine the setting state. If we can't figure out anything useful, then this "testing channels" approach I've explained above will remain as a last resort good option for doing this.
ok so i have tried everything that my tiny little pee brain who doesn't understand code can try to do I cant quite comprehend exactly what needs to be done to access the new code you put in i tried that google drive link that didn't work i tried the new master branch download that and i don't see a program that can be run in the files i tried figuring out the command prompt section and cant figure out that whole thing. any help would be greatly appreciated. i would like to add thank you for all your time and dedication to this as i can see it is just a helpful program you created and you do have a life outside of creating this one specific thing. so from a grateful user thank you for any time you are putting towards this thing at all it is much appreciated,.
ok so i have tried everything that my tiny little pee brain who doesn't understand code can try to do I cant quite comprehend exactly what needs to be done to access the new code you put in i tried that google drive link that didn't work i tried the new master branch download that and i don't see a program that can be run in the files i tried figuring out the command prompt section and cant figure out that whole thing. any help would be greatly appreciated. i would like to add thank you for all your time and dedication to this as i can see it is just a helpful program you created and you do have a life outside of creating this one specific thing. so from a grateful user thank you for any time you are putting towards this thing at all it is much appreciated,.
@TinyNStrong just find the twitch.py file in your previous install and put a hash symbol in front of line 1166 (or not channel.drops_enabled # drops aren't enabled). The hash symbol stops anything after it on that line from being run as code. Normally used for comments. In this case it just disables the check for if drops are enabled, until DevilXD figures out a more permanent solution.
ok so i have tried everything that my tiny little pee brain who doesn't understand code can try to do I cant quite comprehend exactly what needs to be done to access the new code you put in i tried that google drive link that didn't work i tried the new master branch download that and i don't see a program that can be run in the files i tried figuring out the command prompt section and cant figure out that whole thing. any help would be greatly appreciated. i would like to add thank you for all your time and dedication to this as i can see it is just a helpful program you created and you do have a life outside of creating this one specific thing. so from a grateful user thank you for any time you are putting towards this thing at all it is much appreciated,.
@TinyNStrong just find the twitch.py file in your previous install and put a hash symbol in front of line 1166 (or not channel.drops_enabled # drops aren't enabled). The hash symbol stops anything after it on that line from being run as code. Normally used for comments. In this case it just disables the check for if drops are enabled, until DevilXD figures out a more permanent solution.
when opening the folder the only things that appear are cache cookies manual settings and the program itself. i apologize in advance as im not too knowledgeable on any of this
ok so i have tried everything that my tiny little pee brain who doesn't understand code can try to do I cant quite comprehend exactly what needs to be done to access the new code you put in i tried that google drive link that didn't work i tried the new master branch download that and i don't see a program that can be run in the files i tried figuring out the command prompt section and cant figure out that whole thing. any help would be greatly appreciated. i would like to add thank you for all your time and dedication to this as i can see it is just a helpful program you created and you do have a life outside of creating this one specific thing. so from a grateful user thank you for any time you are putting towards this thing at all it is much appreciated,.
@TinyNStrong just find the twitch.py file in your previous install and put a hash symbol in front of line 1166 (or not channel.drops_enabled # drops aren't enabled). The hash symbol stops anything after it on that line from being run as code. Normally used for comments. In this case it just disables the check for if drops are enabled, until DevilXD figures out a more permanent solution.
when opening the folder the only things that appear are cache cookies manual settings and the program itself. i apologize in advance as im not too knowledgeable on any of this
Download this: https://github.com/DevilXD/TwitchDropsMiner/archive/refs/heads/master.zip (THIS IS SOURCE CODE)
And follow this:
Guys to have the bot fully working you need to compile the source code.
Now download the zip of the source code from the main page of the project.
Extract the main folder and put in your desktop
Install git and python (Must install them in order to proceed)
Open CMD with admin
In the CMD type: cd C:\Users\YOURNAME\Desktop\TwitchDropsMiner-master
Now in the CMD type: setup_env.bat
and wait for it to finish
When it finish type: build.bat
When this finish in the bot folder you previously extracted a dist folder should be created and you'll have the exe updated with the latest fix to switch channel
This is the exe i obtained as result: https://drive.google.com/file/d/1hQCzWNmbJ3gWqRNNWT6YxyAexx8tyfvg/view?usp=share_link
You can use it, i mean you can compile yourself folowing the instructions or u can download the file from my drive and use that which is compiled by me
I want to remind that there's a building guide detailing everything here: https://github.com/DevilXD/TwitchDropsMiner/wiki/Setting-up-the-environment,-building-and-running
I tried to make it as user-friendly as possible.
I want to remind that there's a building guide detailing everything here: https://github.com/DevilXD/TwitchDropsMiner/wiki/Setting-up-the-environment,-building-and-running
I tried to make it as user-friendly as possible.
A little tip, at first instance i found the compiling process difficult, later i got i should not launch the .bat from the file itself but from CMD, u could specify that for novices
later i got i should not launch the .bat from the file itself but from CMD
Hmm, not sure what you mean here. Which ".bat" file? There's one for setting up the environment, one for building and one from running the development version from source. All three of them should only need a simple double-click to work, provided Python and Git are installed already.
Running admin privilege with both git and python installed, when i double clicked the env bat, i got error stating it could not not found directory and didn't know the command python. So i navigate the folder with CMD and it executed from there, idk but i see other ppl were struggling to compile
Oh, that's way than more accounted for already then. The reason what you're saying may happen is because you've either forgot to tick the PATH option while installing Python, or haven't followed the final note from the installation guide: https://github.com/DevilXD/TwitchDropsMiner/wiki/Python-Installation#final-note
This part is there for a reason.
Oh, that's way than more accounted for already then. The reason what you're saying may happen is because you've either forgot to tick the PATH option while installing Python, or haven't followed the final note from the installation guide: https://github.com/DevilXD/TwitchDropsMiner/wiki/Python-Installation#final-note
This part is there for a reason.
yeah it surely is, i read that and did not applied the patch