Skip to content

Releases: DevilXD/TwitchDropsMiner

Development build

19 May 14:36
Compare
Choose a tag to compare
Development build Pre-release
Pre-release

This is an automatically generated in-development pre-release version of the application, that includes the latest master branch changes.
⚠️ This build is not stable and may end up terminating with a fatal error. ⚠️
Use at your own risk.

  • Last build date: 2024-05-27 11:14:14+00:00
  • Reference commit: 4ea6912

v15

25 Dec 10:42
Compare
Choose a tag to compare

⚠️ NOT STABLE since February 2023, use the latest master / pre-release version for now, while waiting for v16 to come out ⚠️

v16 progress tracker: #234


After a really long wait, v15 is finally here!

Changes:

  • New login method, using a SmartTV account linking process instead. Fixes #68.
  • Fixed an issue with campaign ACLs not being accounted for in some cases (#69).
  • Fixed an issue with the miner trying to mine an already completed campaign, if the campaing shares an ACL channel with a different one.
  • Fixed an issue with GQL service timeouts not being handled properly.
  • Fixed an issue with campaigns or drops with duration shorter than one hour, being missed due to the once-per-hour state reloading logic of the application.

UI changes:

  • Fixed an issue with the proxy input not saving after being cleared.
  • New Portuguese translation, update existing translations.
  • The inventory tab now dynamically updates campaign states when switching to the tab (Upcoming, Active, Expired).
  • The campaign progress section now shows the game being currently mined.
  • The output window now spans the entire window width, at the cost of the channel list being shorter.
  • The output window now includes timestamps to every line it prints.

Other changes include:

  • Improvements made to the development scripts, regarding setting up the development environment and building the executable.
  • Linux support (only as source code).
  • Python 3.11 support.
  • Better state changes logging capabilities.

Enjoy :)

EDIT: New executable 2h after initial release, because something broke and the version was still saying v15.dev. Now it properly says just v15.


⚠️ NOT STABLE since February 2023, use the latest master / pre-release version for now, while waiting for v16 to come out ⚠️

v16 progress tracker: #234

🛑 STOP. READ ABOVE. 🛑

Downloads were removed to prevent reports from this version, as it does not work anymore.

v14

27 Oct 16:08
Compare
Choose a tag to compare
v14

Important - read below!

Due to the recent events and anti-bot mechanics Twitch has implemented, everyone trying to use the v12 or any lower version, is recommended to stop immediately. Anyone upgrading to the v13 release MUST re-authenticate their account BEFORE continuing to use the application. To do this, simply delete the cookie file, then launch the application and login anew. Not doing so may end up in your account running into CAPTCHA and Twitch locking you out for ~24 (or more) hours, even if you delete the cookie file afterwards. This action is required when upgrading any previous version to v13 specifically, and is caused by the client ID change - any previous authentication version is tied to the old client ID and will trigger a CAPTCHA challenge that locks you out. You have been warned!

Changes in this version include:

  • Fix site down detection logic
  • Fix a rare crash related to a request timing out outside of the timeout-handling code section
  • Removed the integrity debug code, that could suppress errors when using an old cookie file

These changes are minor, and this release is here because I've kinda messed up the v13 one. Unless you're having issues (like #64), you don't need to upgrade.

v13

23 Oct 19:28
Compare
Choose a tag to compare
v13

Important - read below!

Due to the recent events and anti-bot mechanics Twitch has implemented, everyone trying to use the v12 or any lower version, is recommended to stop immediately. Anyone upgrading to the v13 release MUST re-authenticate their account BEFORE continuing to use the application. To do this, simply delete the cookie file, then launch the application and login anew. Not doing so may end up in your account running into CAPTCHA and Twitch locking you out for ~24 (or more) hours, even if you delete the cookie file afterwards. This action is required when upgrading any previous version to v13 specifically, and is caused by the client ID change - any previous authentication version is tied to the old client ID and will trigger a CAPTCHA challenge that locks you out. You have been warned!

Changes in this version include:

  • Workaround the entirety of the integrity system by using an unprotected Android app Client ID. This restores all application functionality to what it used to be.
  • Fixed some login flow strings not being translated.
  • Fixed an issue with the application window starting as minimized when opened directly.
  • Add an option to hide excluded games from the inventory view - this follows the "Excluded" list and "Priority Only" options.
  • Added Czech and German translations, by @nwvh and @ThisIsCyreX respectively.

v12

03 Sep 16:53
Compare
Choose a tag to compare
v12

Warning - do not use this!

Versions v12 and below have been locked out due to the Twitch's anti-bot change - trying to use them will end up with Twitch locking you out from using any newer versions which can workaround the issue.


It's finally here \o/ This release includes some QoL features, and of course bugfixes and improvements. Most notably:

• The application now includes a language translation option, and you can now change the language on the Settings tab of the application. Currently included translations: English (default) and Chinese (简体中文). Further translations can be added via a PR, by modifying the template "lang/English.json" file that should appear in the lang folder when the application is ran from source (dev mode). If you'd be lost on how to proceed with this, please open an issue and we can work something out.
• Fixed a bug with the Proxy URL field not saving from within application, after the application terminates - now it's saved when the application's window is closed.
• The application saves its state on every reload instead of just when closing, to avoid cases where settings wouldn't save or got lost in any other way.
• The application state is now gracefully saved during Windows shutdown sequence.
• The internal maintenance task now dynamically takes the campaign start and end times into account, and can schedule a reload earlier than one hour if a campaign starts or ends earlier than that - this is done to maximize the mining potential.
• New "Help" tab with useful links and information on what the application is, how it works and how to set it up properly.
• The request retry logic now no longer has an attempts limit - it will now just keep trying continuously until the request succeeds. There are messages displayed within the application window to inform the user when this happens.
• Various other bugfixes and performance improvements are included.

Inventory tab changes:

• It is now possible to filter the displayed campaigns based on some simple status criteria. Unchecking "Linked only" will show you all campaigns that are excluded from mining due to your account not being linked. Checking or unchecking "Expired" or "Upcoming" will show or hide campaigns with those respective statuses. Checking "Finished" will show campaigns that have been mined out fully already.
• Campaigns now show "Starts at:" timestamp when you mouse-over the "Ends at:" line of the campaign. Upcoming campaigns show "Starts at:" by default and "Ends at:" on mouse-over (reverse logic). Campaigns are now sorted by these start and end timestamps, with sooner ones near the top and later ones near the bottom.
• Drops with more than one benefit now show each benefit separately within one drop on the Inventory tab.

EDIT: Two more issues were fixed since release:

• Fixed an issue with the tray startup option not displaying the tray icon
• Fixed an issue with the tray icon delaying shutdown for much longer than necessary

v11

09 Apr 20:11
Compare
Choose a tag to compare
v11

This release is quite big. To support the added features, I've had to re-include the imaging library that was briefly introduced with v7, that has caused an extensive loading time and large executable size before, to be subsequently removed in v8 once I found a dirty workaround for it. This time however, I've managed to setup a new, perfectly clean environment specifically for the application, which somehow helped mitigate the problem and only increases the executable size to 12 MB, with only a slightly longer launch time. This is much better than the previous 50 MB and 10s of loading time v7 has faced, which I'm happy about. Hopefully you'll enjoy it too 🙂

Changes:

  • The application now features a new Settings tab, where you can:
    • Set excluded games (ones you don't want to mine).
    • Setup a priority list of games to mine - games higher on the list will get mined first, if possible.
    • Setup application autostart at system start, including autostart into tray. This closes #4.
    • The Priority only option turns the priority list into a whitelist, meaning that all games not included on it are automatically excluded.
    • Enter a proxy URL, if you happen to utilize one (closes #12).
  • Game Selector is 🦀 gone 🦀
  • Instead, the priority list now determines the games to mine drops for. This enables multi-game mining, including priority-switching channels if a channel comes online and plays a game that's higher on the priority list, than the one currently being watched. This change has been made to resolve the problem where a priority list would pick the first game to mine, but there would be no channels to use in the mining, and the application would just idle and not do anything, while it could be mining the second or any further game on the priority list. Now this is possible.
  • The application now features a new Inventory tab, where you can see Expired, Active and Upcoming campaigns, including the campaign's end time, a shortened ACL list (channels allowed to gain progress in the campaign), as well as a list of drops it contains and their status (claimed or percentage progress). This roughly mimics the Twitch's inventory page: https://www.twitch.tv/drops/inventory
  • The inventory refresh loop now lives in it's own separate task, meaning the application should now automatically pickup new campaigns, even if nothing is currently being watched. This closes #11. There's also a handy Reload button in the Settings tab that can be used to trigger a refresh manually.
  • Fixed an issue with not being able to exit the application during login flow.
  • Other bug fixes and optimizations are included.

Channel ordering note:

Because of the multi-game mining feature, the channel list ordering no longer dictates the channel switch ordering. It will still try to visually place channels playing higher priority games at the top, but since offline channels have no game information available, they'll always end up at the very bottom of the list (and possibly get trimmed away if over the channel limit). This doesn't affect the intended functionality in any way though, and is purely visual.

v10

16 Feb 12:31
Compare
Choose a tag to compare
v10

This release introduces a bunch of bugfixes, stability and performance improvements. Most notably:

  • Fixed a crash when a websocket tries to report to GUI it's topics count as zero (could occur after channels cleanup, also this closes #9).
  • Fixed a bug when only one drop would be claimed when two would become fully mined at the same time - this is related to Twitch's limitation that didn't account for this case. As a result, the entire inventory is now refreshed every hour (followed by a channels cleanup like before), resulting in the possibility of the Game Selector listing new games during mining (when their campaigns change status from UPCOMING to ACTIVE). There should be no significant issues as the result of this, so this is purely informational.
  • Fixed an issue with the watching channel switching (being lost) after cleanup - now it's preserved.
  • Fixed two rare crashes, both related to mistyped variables (this closes #6).
  • Fixed an issue with websocket not resubscribing to the topics after reconnecting - could theoretically result in the application stopping mining after prolonged usage.

Other changes:

  • Added a manual.txt file, listing possible command line arguments and their meaning / usage.
  • There's now a 🎁 column right after game name for each channel, indicating if it has drops enabled or not. Most (if not all) online channels should have a check mark there - no check mark means the channel won't be considered as a valid switch target, even if the game matches. This was enforced already, but now it should be more clear to the user about why a switch wouldn't work.
  • The application now starts in an IDLE state, where it'll wait for the user to select a game of choice, before it begins mining. Use the -g/--game command line argument to automatically pre-select a game on startup.
  • There's now an --exclude argument that can be used with one or more game names, to exclude them from being selected (automatically too) and being mined.
  • The application will now automatically begin mining if - after selecting a game - initially there was no applicable channel it could watch, but one has became available.
  • The application now properly handles a case when the CHANNEL_FETCH stage results in more channels than it can handle (over 398 at this time). Excessive channels that are non-prioritized, offline and have low viewer count, are dropped. The result of this is that the Channel List is now explicitly sorted by online status and viewer count, as well as it now always accurately matches the in-memory order representation (previously, channel cleanup could mess up that order).
  • Login flow no longer uses Twitch's password validator to try and protect you from mistyped passwords and CAPTCHA. There was a user who reported that the application incorrectly rejected their password despite it being correct - now it won't do that.
  • Request retry code has been streamlines to make it more consistent and resilient across the application.

v9

28 Jan 22:13
Compare
Choose a tag to compare
v9

Changed since the last version include:

• Automatic campaign discovery, so you don't need to "prime" a campaign anymore by watching a single minute of a channel for it to appear as "in progress" in your inventory. Any campaign that reports your account as "linked" can be started automatically by selecting it's game in the Game Selector.
• The application now supports campaign's Access Control Lists (ACLs), where a campaign can specify exactly which channels are able to progress it - watching any other channel won't progress such a campaign. For correct handling, channels included in ACLs are given priority over general livestreams, which is indicated by a priority checkmark in a new column that's been added to the Channel List. Priority channels are considered first when selecting a channel to watch, and furthermore, watching a non-priority channel while a priority one goes ONLINE will trigger a switch - this is to account for campaigns that have only a few channels in their ACLs (3 or less), progressing which could otherwise be missed. Priority channels are also exempt from cleanup, regardless of their status or game they stream - the application will still select only online channels which are streaming the selected game out of those, if there's any.
• A bunch of bugfixes, cleanup of internals and performance speedups, including better handling of internet connection issues, as well as error reporting. This is probably going to be the final release for now, unless more bugfixes or features will need to be implemented.

v8

14 Jan 16:07
Compare
Choose a tag to compare
v8

Changes:

  • Removed a not-so-necessary dependency introduced with the tray icon - this shrinks down the release size back to 10 MB and improves loading time two fold.
  • The tray icon now displays simple drop progress on mouse-over.
  • Added smart caching of the dynamic inventory attributes, should result in slightly improved performance.
  • Added a --tray argument, that causes the application to quietly start in tray. Remember that -g/--game can also be used to pre-select a game.
  • The application will now refuse to start if it's already running (prevents running two or more instances by accident).

v7

12 Jan 18:11
Compare
Choose a tag to compare
v7

This release includes a bunch of bugfixes, improvements and general code cleanup. Changes include:

  • There's now a Minimize to Tray button available in the top-right corner of the application, that'll turn it into a tray icon. The icon will display a notification when a new drop is mined. You can restore the application window either by left-clicking the tray icon, or right-clicking it and choosing the Show option from the menu. The Quit option works the same way as exiting the application via X in the top-right corner.
  • The drop campaigns and the drops themselves have had some of their attributes changed from being static to dynamic, which means they no longer require re-fetching inventory to be up-to-date. This fixes the "active search failed" issue.
  • Channel cleanup is now done automatically every hour, hence the Cleanup button has been removed.
  • Channel cleanup no longer switches the currently watched channel if it's not necessary.
  • Updated User Agent to the latest Chrome one.

Note

Due to the addition of a library that handles the tray icon, the application size has grew from 10 MB to 48 MB, and startup is now noticeably slower. Unfortunately, I can't really do much about that.

EDIT: I've found a way to get rid of a dependency, that will shrink the executable size back down to 10 MB and improve loading time. This will be available in the next version.