

Player/match caching: We cache matches in Redis in order to reduce DB lookups on repeated loads.When an error occurs or the job finishes, it either displays the error or redirects to the match page. The client uses AJAX to poll the server.This reads the match data from the steam API, then uses operations.insertMatchProgress in order to force waiting for the parse to finish. Request: Requests are processed from the Request page.Sequential: We read a match from the Steam API that either has leagueid>0 or contains a player in the trackedPlayer set.Pipeline: Generally parses come in one of two ways:.
DOTA REPLAY PLAYER FULL

parseManager: This reads Redis to find the currently available list of parse workers.The schema for the current parsed_data structure can be found in utility.getParseSchema.The parser emits a newline-delimited JSON stream of events, which is picked up and combined into a monolithic JSON object sent back to the client as the response.Each parser maintains a copy of the current heroes, which is used to map combat log names ("npc_dota_hero.") to hero_id, which can be used to match the combat log units to a player.dem.bz2 at this location, which it downloads, streams through bunzip2, and then through the compiled parser. parser: This is a standalone HTTP server that accepts a URL param url.Currently, this involves re-queueing currently active tasks on restart, and rebuilding the sets of tracked players, donated players, rating players, etc. worker: Takes care of background tasks.This is used in order to determine the list of users that have added a tracker as a friend.Accessing it without any params returns a list of the registered Steam accounts, and a hash mapping friends of those accounts to the Steam account.retriever: This is a standalone HTTP server that accepts URL params match_id and account_id, and interfaces with the Steam GC in order to return match details/account profile.

DOTA REPLAY PLAYER HOW TO
If on Debian/Ubuntu: sudo bash init.sh Otherwise, you're responsible for figuring out how to install dependencies yourself.
DOTA REPLAY PLAYER CODE
Open Source: All code is publicly available for feedback and contributions from the Dota 2 developer community.Scalable: Designed to scale to thousands of users.Modular: Microservice architecture, with pieces that can be used independently.Rating Tracker: Keep track of MMR by adding a Steam account as a friend.Comparison Tool: Computes a percentile for a player against all users.
DOTA REPLAY PLAYER PRO
