跟踪Steam播放时间(来自网络API)

时间:2017-10-21 11:44:39

标签: steam steam-web-api

我正在尝试使用Google日历跟踪我的播放时间/历史记录。

这是Steam Web API我无法找到一种方法来获取有关我何时正在播放内容的详细信息,但GetRecentlyPlayedGames端点除外,它为我提供了一些有趣的数据:

enter image description here

理论上,我可以存储playtime_forever字段,并且每隔5分钟存储一次cron以查看它是否上升,如果连续2次相同,则表示我停止播放此会话,我可以将其记录在日历中。

所以这个问题在理论上已经解决了,但是我想知道是否还有其他可以使用的API可以提供更准确的数据,或者这是我的最佳选择?

我对YouTube采取同样的方式,因为他们没有给我确切的时间,但是例如Netflix这样做更简单,我不必管理任何类型的数据(我已发送到日历的除外)

1 个答案:

答案 0 :(得分:1)

我发现除了最近的历史之外没有办法得到这个,所以这就是我正在做的事情。

getPlaytime(request, response) {
  return this._getRecentHistory()
    .then(response => response.games)
    .then(games => {
      response.json(games);
      return Promise.all(games.map((game) => {
        const appRef = this.ref.child('steam').child(game.appid);
        return appRef.once('value').then(snapshot => {
          if (snapshot.exists()) {
            const value = snapshot.val();

            if (game.playtime_forever > value.playtime) {
              const sessionPlaytime = game.playtime_forever - value.playtime;
              console.log("sessionPlaytime", game.name, sessionPlaytime, "minutes");

              const endDate = new Date();
              const startDate = new Date(endDate.getTime() - sessionPlaytime * 60 * 1000);

              this.calendar.createEvent("games", game.name, startDate, endDate);

              return appRef.update({playtime: game.playtime_forever});
            }

            return Promise.resolve();
          } else {
            return appRef.set({
              name: game.name,
              playtime: game.playtime_forever
            });
          }
        });
      }));
    })
    .catch((e) => console.error(e));
}