#==============================================================================
............................/%&@@@@@@@@@@@@@@@@&%\,............................
....................../&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%,......................
.................#@@@@@@@@@@@@&%#(***********)@@@@@@@@@@@@@@@*.................
.............,&@@@@@@@&*.........................&@@@@@@@@@@@@@&...............
...........&@@@@@&.............._/$%##%###*\..........%@@@@@@@@@@@/............
.........&@@@@&.............,/%&#/.......\#%##\...........(@@@@@@@@@@\.........
........@@@@&............./%#&/............|&%##\.............(@@@@@@@@@#......
...&@@@@@@@(............................../%##%&|...............*@@@@@@@@@,....
....(@@@@@#............................../###&/..................@@@@@@@@@@&...
................................__/#&##%#%*/......................@@@@@@@@@@%..
............................../%*#%#%/............................&@@@@@@@@@...
.........................../(###%*%(............./#.............*@@@@@@@@@@*...
........................./%####%$$###%%#####%&&%#&.........&@@@@@@@@@@@........
.......................................................#@@@@@@@@@@@@@..........
...............$$$*@@@@@&/......................(&@@@@@@@@@@@@@@@@%............
..................,&@@@@@@@@@@@@@@@........@@@@@@@@@@@@@@@@@@@.................
........................*#&@@@@@@@@@@@@@@@@@@@@@@@@@@@@&/......................
..................................,@@@@@@@@@@@/................................
%&&% /\ %#%%/ /%%%%%%%%%(
%%% *%%( %#%%( /%%% *%/ ,%%%
%%% .......,%%% ///(%%#, #%%% %%. #&% %%%.
/%%% %%## %#%% %#(/ %%## ##%
%##( #((( (((( *(#%*+ %/((((/%((#%( %***++++*(#%(*
===============================================================================
Made (in part) as a "fun" exercise to teach myself how to scrape and parse webpages in Julia for an academic project.
Dedicated to Defection.
- May 10th, 2022: Well, with the death of the Bungie-era archives in 2021, this script will never work again - unless someone adapts it to work with the archive.org backup.
- June 3rd, 2020: Calculates percentage of games played together, and reports date & time of first and last games. Used
OrderedCollections.jl
to do so. - May 27th, 2020: Now the date and time of each game is grabbed and written to the output as well.
- May 20th, 2020: Okay, that wasn't too bad. The old version should still work under Julia 0.7, but the latest version has been updated to the standards of Julia 1.0. I also fixed the Guest bug (needed two escape
\
for a string + regex combo). - May 19th, 2020: It looks like everything about Julia changed since I wrote this! The Requests package I used has been depreciated in favor of HTTP. In addition, some basic Julia syntax (like
readline(STDIN)
) has changed as well, breaking... everything. It may take some time to retrofit this... - March 21st, 2018: Original Release
To see if, when, and how many times you played Halo 2 on Xbox Live with someone else, by searching the legacy Game Viewer for both of your gamertags and exporting a list of games (with links to the viewer pages).
- Input gamertag 1 (i.e. yours).
- Input gamertag 2 (i.e. your friends').
- The script will load the primary gamertag's Game Viewer page.
- It counts the number of pages to search through, and calculates search duration based on the delay.
- For each page, it opens every game listed sequentially.
- It then searches the game for the secondary gamertag.
- If found, it makes a note of the game ID number.
- It returns a text file of the results, including a count of how many games resulted and links to the viewer pages!
- Julia 1.0 or higher
- Developed and ran using both macOS X 10.13 and Windows 10
- Internet access to connect to Halo.Bungie.Net.
Julia Packages:
- The
sleepTime
variable exists because the Halo.Bungie.Net website will occasionally time out requests that are too rapid in succession. While the0.5
setting (a half-second delay) was sufficient to resolve this for me, you may need to increase this value if you are seeing this issue frequently.
Next steps:
-
Update to Julia 1.0 syntax changes -
Fix Guest searching -
Tiny ASCII boot logo -
Parse timestamp of each game -
Get date info for each game - Add a "verbose" toggle for the
.
and*
display -
Report additional game stats (i.e. % of games, first/last game,win:loss)
Time estimate things:
- Grab the current time and give finish time estimate
(133)
- Implement a loading bar
(121)
- Report actual time elapsed
(199)
Anders Ohman
andy.ohman@gmail.com