No-Bling / DOTA

winter is coming..
MIT License
206 stars 28 forks source link

Is it possible to open a website within client? #39

Closed BPhatti closed 4 years ago

BPhatti commented 4 years ago

Sorry if this is not the place to ask this.

After a game of Dota I sometimes check the match on Dotabuff, Opendota, or Stratz. Each website uses a known URL that contains the matchid. Is it possible to grab the last matchid and open the generated URL using a script?

I looked at the in-client web browser using the Panorama Debugger and it appears to be a DOTAPageWebBrowser object. I can manually change the URL and it will load the website. Can I create/open this object with my generated URL using a coreinit.lua script?

AveYo commented 4 years ago

Scripts for the client-side lua are isolated from panorama js, so you most likely cannot.

It's possible to hijack an existing panorama xml / js but that requires recompiling and repackaging in a vpk.
Such thing would go way too much in a gray area so I will not delve into that.

My unreleased work-in-progress mmr changes vscript on the other hand is able to get last matchid by parsing a binary resource, and then write data to disk as a csv/tabular/html file with links.
I could add a command to open that generated file in the default browser application,
or just set it manually as the homepage for the in-game steam browser.

Why is not published yet?!
Because a cmd window flashing briefly from inside DOTA might scare users / Valve :)
The script needs to know Steam installpath - it fails if not a predictable (default) path. Will probably release a .bat/.sh installation script to generate the vscript locally instead. Won't make any promises anymore regarding ETA.. github will notify you if / when :)

BPhatti commented 4 years ago

That sounds like a great solution as it would be easy to use. Here are the URL formats I mentioned:

www.dotabuff.com/matches/MATCHID www.opendota.com/matches/MATCHID www.stratz.com/en-us/match/MATCHID

Thanks