2017-10-21 13 views
1

Google 캘린더를 사용하여 재생 시간/기록을 추적하려고합니다.스팀 재생 시간 추적 (웹 API에서)

enter image description here

:

내가 정확히 내가 나에게 몇 가지 흥미로운 데이터를 제공하는 GetRecentlyPlayedGames 엔드 포인트를 제외하고, 무엇을 연주 할 때에 대한 자세한 정보를 얻을 수있는 방법을 찾을 수있는 Steam Web API입니다

이론적으로 나는 playtime_forever 필드를 저장할 수 있으며 5 분마다 cron이 올라가는지 확인하고 2 회 연속 동일하다면이 세션을 중단하고 일정에 기록 할 수 있음을 의미합니다.

이 문제는 이론적으로 해결되었지만 대신 다른 API를 사용할 수 있는지 궁금 해서요. 더 정확한 데이터를 제공 할 수 있습니까? 아니면 이것이 내가 가지고있는 최상의 옵션입니까?

나에게 정확한 시간을 알려주지 않기 때문에 YouTube에 관해서도 같은 방법을 사용합니다. 예를 들어 넷플 릭스가 그렇기 때문에 더 간단합니다. 어떤 종류의 데이터도 관리 할 필요가 없습니다. 나는 이미 달력에 보냈다.)

+0

이것은 매우 흥미 롭습니다. 이 부분이 제품 또는 프로젝트의 일부입니까? –

+0

@ JoseGômez는 제품을 만들 때 부담없이 내 시간을 추적하기 때문에 내 자신의 프로젝트 일뿐입니다. – Amit

답변

0

나는 이것을 얻기위한 최근의 역사 이외의 방법을 찾지 못했고, 그래서 내가하고있는 일이다.

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)); 
}