Archisteamfarm: [Feature Request] Option to not farm refundable games.

Created on 2 Apr 2017  路  7Comments  路  Source: JustArchiNET/ArchiSteamFarm

As I'm sure that you know, Steam allows you to ask for a refund for games that you played for less than two hours. If ASF is running on your system it will start farming these games as well, using up your refund period. Careless user may end up "stuck" with a game because of that.

It is possible to avoid that by manually adding these games to the blacklist but I believe that the above mentioned case is conman enough to warrant a separate option.

I suggest adding an option (probably turned off by default) that would check each game before farming it. If the game was purchased from steam in the last 14 days and its play time is under 2 hours, it should not be farmed.

Enhancement Help welcome On hold Wishlist

Most helpful comment

Not sure if it helps (reverse engineering?), in the official steam client, console mode, there are two commands that can be used to get license info: licenses_print and licenses_for_app <app_id>

licenses_print shows all activated licenses, here's a selected sample of my list:

License packageID 144451:
- State : Active( flags 0 ) - Purchased : Mon Mar 20 23:18:07 2017 in "GR", Wallet
- Apps : 569970, (1 in total)
- Depots : 569971, (1 in total)
License packageID 161693:
- State : Active( flags 0 ) - Purchased : Thu Mar 30 21:42:08 2017 in "GR", CD Key
- Apps : 498320, (1 in total)
- Depots : 498321, (1 in total)
License packageID 157697:
- State : Active( flags 0 ) - Purchased : Sat Apr 01 00:58:41 2017 in "GR", Complimentary
- Apps : 600420, (1 in total)
- Depots : 600421, (1 in total)

All 7 comments

I'm putting it on hold since I'm not interested in doing that at all, and there is a lot of work connected with it. Don't expect it to happen anytime soon, unless somebody sends a PR for it.

There is no easy way to determine when you bought certain appID, as even if you parsed your entire licenses/packages tied to your account available here or here then you still wouldn't be able to always determine if given base game is contained e.g. in GOTY package you bought, or likewise. I'm not even 100% sure if what you're asking for is possible - it can definitely work for simple cases, but probably wouldn't work at all for the entire packages/subs mess that Steam operates on, and I'm not interested in having an option that works 50% of time.

On hold for now.

Steam have some way to get purchase date, it shown in library on game page, but probably it requires reverse-engineering to find out how to get it, I don't know about any public api with such information.

That's a good catch @Ryzhehvost, indeed - I didn't think about that. I might look into it later and determine if what I'm looking for is impossible from licenses that Steam network sends to ASF client, if yes, this could be added much more easily, and maybe even I could implement it rather sooner than later.

Not sure if it helps (reverse engineering?), in the official steam client, console mode, there are two commands that can be used to get license info: licenses_print and licenses_for_app <app_id>

licenses_print shows all activated licenses, here's a selected sample of my list:

License packageID 144451:
- State : Active( flags 0 ) - Purchased : Mon Mar 20 23:18:07 2017 in "GR", Wallet
- Apps : 569970, (1 in total)
- Depots : 569971, (1 in total)
License packageID 161693:
- State : Active( flags 0 ) - Purchased : Thu Mar 30 21:42:08 2017 in "GR", CD Key
- Apps : 498320, (1 in total)
- Depots : 498321, (1 in total)
License packageID 157697:
- State : Active( flags 0 ) - Purchased : Sat Apr 01 00:58:41 2017 in "GR", Complimentary
- Apps : 600420, (1 in total)
- Depots : 600421, (1 in total)

Another thing that helps is to only look for games purchased on steam or steam gifts, so exclude CD keys.
Also, I found this in Enhanced Steam:

// Display purchase date for owned games
function display_purchase_date() {
    storage.get(function(settings) {
        if (settings.purchase_dates === undefined) { settings.purchase_dates = true; storage.set({'purchase_dates': settings.purchase_dates}); }
        if (settings.purchase_dates && $(".game_area_already_owned").length) {
            var appname = replace_symbols($(".apphub_AppName").text().replace(":", "")).trim();

            $.when(purchase_dates_promise(language, appname)).done(function(purchaseDate) {
                if (purchaseDate) {
                    $(".game_area_already_owned:first .already_in_library").append(" " + localized_strings.purchase_date.replace("__date__", purchaseDate));
                }
            });
        }
    });
}

However they get the purchase_dates data from the /account/licenses page, which is unreliable, as app name is not always sub name.

You may use http://steamcommunity.com/profiles/xxxxxxxxxxxxxxxxxxxx/ajaxgetusernews/
then fetch the "next_request" links 15 times to check games bought through Steam (for each precedent day).

Thanks a lot for releasing this feature, it's really helpful!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

undefo picture undefo  路  4Comments

jat001 picture jat001  路  4Comments

Sirogabober picture Sirogabober  路  4Comments

JustArchi picture JustArchi  路  4Comments

NanoAi picture NanoAi  路  3Comments