Automatic Imp Maps Downloader

Skylark

Super Gay Developer
aa
Aug 9, 2018
163
373
ImpMapsDownloader_2020-04-13_02-52-43.png




My internet isn't very fast so when changing maps during the imp I end up joining a minute later than everyone else, with this automatic imp maps downloader it will download and unzip all of the maps in the queue and keep it up to date so there's no more waiting for it to download when everyone else is trying to download.
This also solves the issue of being told a map is missing.

I hope this helps other people, I'm planning on absorbing this into a much larger application later but I needed this now.

Readme: https://github.com/teenangst/aimd_next
Download: https://github.com/teenangst/aimd_next/releases/tag/v1.1

Key features:
  • Automatically download imp maps as they are queued, no more waiting while in the imp.
  • Subscribe to lists of curated maps, by default you will be subscribed to a collection of maps for contests, gamedays, and featured maps. Make your own lists with AIMDGameDayGenerator.exe.
  • Get notified when an imp is going to begin and see if a server is active, servers are customisable and you can add your favourite servers to be told when there are lots of people online. (If you do not want this inside config.json at the bottom there is the key
    "askToJoinImp", set the true to false)

Github project: https://github.com/teenangst/Imp-Maps-Downloader
Download here: https://github.com/teenangst/Imp-Maps-Downloader/releases
 
Last edited:

Skylark

Super Gay Developer
aa
Aug 9, 2018
163
373
A3

- If there is a recommended config change you will be prompted to accept or deny the change.
Earlier today the location of where maps were stored changed from `https://cdn.tf2maps.net/maps/` to `https://redirect.tf2maps.net/maps/` and you had to know about config.json and also the change to fix this, now you just need to press the y key

AIMD A3.png
 

Skylark

Super Gay Developer
aa
Aug 9, 2018
163
373
A4

AIMD A4.png


Rewrote and refactored the whole application to add the ability to download a list of maps.
Any list of maps can be grouped up and shared, give someone a link to the index and they can subscribe to a number of lists; the default index everyone has access to https://pastebin.com/0UZZJkR0 will be updated with contest, gameday, and jam maps - when a new list is available you will be asked if you would like to subscribe or not (if you change your mind go into config.json and change the value of `subscribed`.
To create a list use the AIMDGameDayGenerator.exe which takes in a path to a file with a list of maps, or a path to a folder of maps; a name; and an expiry date (people can still subscribe after this date but they won't be notified). You will receive a JSON file correctly formatted, this can be uploaded anywhere including Pastebin (allows for editing), and Discord (doesn't allow editing).
To add a new index go into your config.json and under `gamedayindexendpoint` add a new URL (make sure there is a comma at the end of lines). If the resource caches but you don't want it, add an `*` to the end of the URL (do not do this to resources that don't update, i.e. don't use it for Discord URLs).
When editing an index you can either regenerate an index from a file or folder, or edit the JSON manually and then passing the path to the JSON into AIMDGameDayGenerator.exe which will recalculate the hash.

https://github.com/teenangst/Imp-Maps-Downloader/releases/tag/A4b


 
Last edited:

Skylark

Super Gay Developer
aa
Aug 9, 2018
163
373

Skylark

Super Gay Developer
aa
Aug 9, 2018
163
373
A5

ImpMapsDownloader_2020-06-14_16-05-35.png

aimd A5.png


Get notified when imps start and kept up to date if they are still alive through the title which will cycle through active servers.
You can add other servers to watch, just copy one of the other servers in config.json and edit the ip and name (don't forget the commas between servers)
To disable this feature set `askToJoinImp` to `false`, you can also disable config changes by setting `checkChanges`to `false`.

Error 5 shouldn't appear until there's actually a problem this time.

Do not use an older config.json with A5 as this will cause issues.

Also this is step 1 towards implementing a queue system to make joining imps a lot fairer, first come first served, no more spamming retry

Video guide on adding custom servers to get pinged for

https://github.com/teenangst/Imp-Maps-Downloader/releases/tag/A5
 
Last edited:

Skylark

Super Gay Developer
aa
Aug 9, 2018
163
373
A6

Now that my maplist API is stable I have removed web scraping from this project. I have also made `askToJoinImp` default to `false` because it was probably annoying to most people, enable it in config.json.

Fixed an issue where AIMDGameDayGenerator was fetching the whole map to check that it existed, it now only requests the header so it will verify maps exist faster.

Also refactored types so this functional program is more functional.

`config.json` format has been updated but it is not necessary to generate a new one.

https://github.com/teenangst/Imp-Maps-Downloader/releases/tag/A6
 

Skylark

Super Gay Developer
aa
Aug 9, 2018
163
373
A7

I made a much improved maplist API and have added it to AIMD, and as such the server is not nearly at risk of being overloaded. Previous response times were a terrible mid 3000ms, and now it is as fast as 120ms, AIMD users will probably not even notice if not told however AIMD can afford to update maps faster - minimum refresh time has been reduced from 5 minutes to 1 minute if you so wish.
New Gamedays will also be scheduled to be offered before downloading maps, I can't remember why I put it around that way because it used to be like this before.

Gameday generator also no longer requires maps to exist, however before releasing the gameday you should ensure that the maps do exist, this change allows for gamedays to be generated ahead of time to be released when ready. Remember that gamedays can be generated and shared on Discord, users can copy the link to the file and add it to their config to get access to the gameday.

This new API is also a prerequisite for a fancier AIMD in the planning stages, although a command line version will always be available and supported.

Download: https://github.com/teenangst/Imp-Maps-Downloader/releases/tag/A7
 

Skylark

Super Gay Developer
aa
Aug 9, 2018
163
373

AIMD:Next v1​

After AIMD suffered API issues I remade a much simpler version that just looks at the current and next map

Simply run the exe and it shouldn't require any configuring, however if you want to change how often checks are made you can use -i or --interval to change the interval, for instance aimd_next.exe -i 60 to check once a minute

Readme: https://github.com/teenangst/aimd_next
Download: https://github.com/teenangst/aimd_next/releases/tag/v1

1693671437528.png
 
Last edited: