JustArchiNET / ArchiSteamFarm

C# application with primary purpose of farming Steam cards from multiple accounts simultaneously.
Apache License 2.0
11.13k stars 1.05k forks source link

Add option to disable farming games with unmarketable cards #832

Closed Jackenmen closed 6 years ago

Jackenmen commented 6 years ago

Feature request

Purpose

It will allow to disable farming unmarketable cards, which are useless for people, who only want to sell those cards on market to get steam funds.

Solution

I would like an option in configuration of ASF, which would disable farming unmarketable cards. It would be even better, if it would be some kind of filter, so cards from these games would be farmed at the end.

Why currently available solutions are not sufficient?

For people who don't have ASF enabled 24/7, farming unmarketable cards is often waste of time.

Does your suggestion fall into ASF scope?

Yes, it definitely is ;D ### Is your suggestion abiding to Steam guidelines? No, it isn't, it just needs program to check if cards from the games are marketable.
JustArchi commented 6 years ago

The suggestion itself is totally alright and I'd probably even consider it if there was automatic way to detect unmarketable cards, there is no such way. The best ASF could do is check if the card that has just dropped in inventory is marketable and stop farming afterwards, but at this point it's already wasted effort and saving mere hour is totally pointless, on top of extra inventory request which I try to avoid at all cost as those requests are already pretty limited.

Maintaining global unmarketable games blacklist is not going to happen either, nobody has time neither willings to do it, and it's simply not worth it just to have an option to avoid farming those games. I'd rather suggest contacting with somebody who maintains such list of unmarketable games (barter.vg comes to mind) and asking kindly to maintain Blacklist for ASF to use, it's very simple to generate it based on existing data, but fetching that data and updating it is far above ASF scope.

If by any chance I missed some detail and you have an idea how to detect your game in automatic and programmatic way before even farming it, feel free to tell so I'll evaluate, or send appropriate PR. Most importantly - NOT relying on any third-party sites or APIs, we most definitely won't increase ASF's dependencies on third-party APIs for optional feature.

Thanks for valid suggestion.

Jackenmen commented 6 years ago

How about checking for all cards available for the game on market? Not sure, what are possibilities of Steam API, eventually you can just use scrapping. For example, at this page https://steamcommunity.com/market/search?category_753_Game[0]=tag_app_501690&category_753_item_class[0]=tag_item_class_2 you can see all the cards available for game Torch Cave (App ID 501690) and if you just check one (as far as I know, when one is unmarketable, all should be, but if not, you can also check every card) from the list, you will know, if the cards from the game are unmarketable. If these request are limited, you can do it before farming the actual game.

Edit: I also suggest adding such game to some list, so the games could be farmed after all the markatable games

JustArchi commented 6 years ago

Illegal according to Steam ToS, not going to happen.

Jackenmen commented 6 years ago

Scraping? Or what is illegal? :/

JustArchi commented 6 years ago

https://store.steampowered.com/subscriber_agreement

You may not use Cheats, automation software (bots), mods, hacks, or any other unauthorized third-party software, to modify or automate any Subscription Marketplace process.

An example of a Subscription Marketplace is the Steam Community Market.

Nothing to discuss.

Jackenmen commented 6 years ago

But you're not automating any Subscription Marketplace process - I don't want you to add automation of selling or buying cards on market.

JustArchi commented 6 years ago

ToS is not up to discussion, as stated in contributing guidelines that you've read.

Jackenmen commented 6 years ago

I'm not discussing ToS, I'm just saying that reading information from Steam Marketplace isn't automation of "any Subscription Marketplace process"... Sorry, if you still think I violated your contributing guidelines, this wasn't my intention, I didn't think of it as discussing ToS, my bad.

Pandiora commented 6 years ago

Maybe someone can confirm, that such games aren't listed here and here.

For the second API it seems there are no details for the chosen appid if the cards of the game can't be listed. Tested this with games like "Brilliant Bob" and "Blood of Old" now and compared them to "Barrier X".

JustArchi commented 6 years ago

I very much doubt that you can tell a difference between delisted game with marketable card drops and delisted game with unmarketable card drops using above APIs @Pandiora.

Pandiora commented 6 years ago

Grouped like: Gamename, Appid, List-Status, Result 1 link, Result 2 link, marketable

DiRT 3 Complete, [321040], delisted, true, false, true Blood of Old, [596440], delisted, false, false, false BarrierX, [463150], listed, true, true, true

Checked it with the 3 examples above. If I didn't make any mistake and the API is reliable, one would need 2 calls (gamelist is really large, but could be stored locally on a daily basis) and by using both API's it should be possible to find out if the Game is just delisted or banned from Steam.

If the game is not marketable success for appdetails will be false and the appid can't be found in the GetAppList.

Edith: Well it would be enough to check the gamelist then, so only one call, since ASF only farms game with cards anyway.

With result for Link # I mean the two links I posted above.

JustArchi commented 6 years ago

I must admit that this is better than I expected, I might indeed make use of that info, wishlist.

Jackenmen commented 6 years ago

Wow! So it actually happened! Thanks for adding that feature!

Pandiora commented 6 years ago

I don't see that this function can be of much use, since you can just wait until you get a full set of the unmarketable cards (booster-drops) and craft a badge on your main or bots. (on Steam Sale - they're even tradable btw) This way one could make some cents and it would be even better than turning all those cards into a hillarious small amount of gems.

It was just interesting for me how this feature could be achieved and I can make use of it too. Maybe this needs some more testing with different unmarketable sets. Glad to see it could be done, even if it is an uncommon way.

JustArchi commented 6 years ago

Making unmarketable cards skippable is pretty useless and stupid, but adding another farming order by marketable cards makes total sense and this is what got implemented - not a filter.

Pandiora commented 6 years ago

That's the information I was missing and now this makes sense for sure. :+1: