Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Miss drops due to randoming changing what part of the hour check for campaign. #428

Open
Techwolf opened this issue Jan 31, 2024 · 3 comments
Labels
Help / Issue General or specific issues that just require some additional assistance to solve

Comments

@Techwolf
Copy link

When first starting the program, it will check for active campaigns every 60 minutes three seconds.

If the campaign starts at the top of the hour and only lasts 45 minutes and the drop happens after 15 minutes of watching, it will be missed if the check happens at 55 minutes( five minutes before the top of the hour.)

The only way to set this is to start the program at 5 minutes after the hour. But this get messed up after watching a campaign and goes back into wait mode.

In my case, I started the program at 5 after the hour. After a couple campaigns, it now checking at :51. Not desired due to now is missing the short campaigns.

@Techwolf Techwolf changed the title Miss drops due to randoming changing what part of the hour check for campains. Miss drops due to randoming changing what part of the hour check for campaign. Jan 31, 2024
@DevilXD DevilXD added the Help / Issue General or specific issues that just require some additional assistance to solve label Jan 31, 2024
@DevilXD
Copy link
Owner

DevilXD commented Jan 31, 2024

Hello o/

When first starting the program, it will check for active campaigns every 60 minutes three seconds.

Correct, the maintenance task will automatically reload the application every up to 60 minutes. The reload period can be shorter, if the miner deems necessary. The "three seconds" you're seeing is how long the logic takes to process the reload order.

If the campaign starts at the top of the hour and only lasts 45 minutes and the drop happens after 15 minutes of watching, it will be missed if the check happens at 55 minutes( five minutes before the top of the hour.)

The maintenance task uses an internal list of time triggers, to decide when to perform a reload. If no campaigns become active within the next hour, the wait time is 60 minutes. If a campaign becomes active in the "last 15 minutes" of those 60 minutes, the wait time is 45 minutes, after which a reload is performed for every campaign that starts.

In order for the miner to know that a campaign starts in 45 minutes though, it has to be added to the Twitch drops system at least an hour before it starts. If the game developer adds the campaign 15 minutes before it's supposed to start, the miner won't know such a campaign even existed (because it didn't exist on the last reload), and won't do anything until after 60 minutes pass and a normal reload is performed. Only then it'll learn there's a new campaign that's already active, and pick it up as a mining target.

There's nothing the miner can do to fix this - if the developer won't add the campaign beforehand, there's no way to predict when one will be added. Checking more often than 60 minutes is not an option, that's done to avoid bothering Twitch too often. A "barrage" of ~40-80 requests every hour is already more than an average user will achieve during normal website usage.

If the above doesn't happen though, then as long as the campaign is added at least an hour before it starts, then the miner should pick it up automatically right after it starts, without missing anything.

@hiroweeb
Copy link

hiroweeb commented Mar 6, 2024

Hi, same thing happens to me for Warframe's drops.
Their current drop campaign is on a span of two days with a first stream on the 6th at 9pm local time, and the main event on the 8th at midnight local time.

If the above doesn't happen though, then as long as the campaign is added at least an hour before it starts, then the miner should pick it up automatically right after it starts, without missing anything.

Here's the output.

12:42:03: No active campaigns to mine drops for. Waiting for an active campaign...
13:42:05: No active campaigns to mine drops for. Waiting for an active campaign...
14:42:07: No active campaigns to mine drops for. Waiting for an active campaign...
15:42:10: No active campaigns to mine drops for. Waiting for an active campaign...
16:42:12: No active campaigns to mine drops for. Waiting for an active campaign...
17:42:16: No active campaigns to mine drops for. Waiting for an active campaign...
18:42:18: No active campaigns to mine drops for. Waiting for an active campaign...
19:00:00: No active campaigns to mine drops for. Waiting for an active campaign...
19:42:21: No active campaigns to mine drops for. Waiting for an active campaign...
20:42:24: No active campaigns to mine drops for. Waiting for an active campaign...
21:42:30: Watching: WarframeInternational
22:09:58: WarframeInternational goes OFFLINE, switching...
22:42:32: No available channels to watch. Waiting for an ONLINE channel...

Wasn't at home all day so didn't see if they turned on drops less than an hour before the first stream started, which is probably why the miner didn't pick it up.

But changing the reload time to happen exactly at the top of the hour would imply a traffic spike on Twitch's side, which could be potentially flagged. (but still forced a reload at 7pm?)

@DevilXD
Copy link
Owner

DevilXD commented Mar 7, 2024

A reload that happens more often would help resolve this. A partial reload flow was brought up and is tracked by in #301.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Help / Issue General or specific issues that just require some additional assistance to solve
Projects
None yet
Development

No branches or pull requests

3 participants