Get notifications of Dclone progress! Apps & Bots powered by the d2io API:
Twitter Dclone Notifier - Bot that tweets Dclone status updates, by Spaghetti_Master_192iOS app for tracking and notifcations - iOS app from official App Store for tracking progress with custom push notifications, by wez-cz.
Android App - by ArmlessWunder, an Android phone app which sends you notifications when Dclone's progress increases
Dclone Hunters Discord Bot - by Dizzo, the original Dclone hunters discord now has a bot with role-based notifications for different tracking modes
Dclone Status on request - by Synse, the first Discord bot made with the d2io API. Pull requests welcome!
Discord Tracker Bot - by Klimpton, public Discord bot you can install on your own server, provides progress summary and notifications, channel setting etc.
DIY Discord Bot - by FredericoJordan, a public Discord chat bot providing progress status updates as a summary
Telegram Bot - by zeleboba, a Telegram chat bot providing progress status updates as a summary
Telegram Bot 2 - by FredericoJordan, another Telegram bot providing progress status updates.
Python Beeper - by 4p0, a script written in Python that beeps to notify you of progress updates.
DCTracker- by elmagnificogi, a Chinese language dclone tracker written in C#
Chrome Plugin - Dclone progress tracker statuses as a Google Chrome browser extension
Node JS Beeper - Dclone beeper with status commands written in Node.js
Progress tracker for Windows - Track dclone progress on Windows (written in C#)
Introduction:
After launching the Diablo Clone Progress Tracker, many asked if I could build a simple API for querying the progress database, so that others can build Discord bots, applications, notifiers etc. and make use of the data contributed by the community here to extend its functionality to further facilitate the hunt for Diablo Clone:
So I have made a barebones API for the tracker that lets you query the database with URL parameters and spits out a JSON object accordingly. It is very basic at the moment seeing as I have other pressing matters to attend to IRL and with the site. You can use this JSON output to power your apps and bots as you like - but please take a moment to read the 'fair use' section below.
Base URL:
https://diablo2.io/dclone_api.php
Parameters with examples:
region
can be 1
(Americas), 2
(Europe), or 3
(Asia). Example https://diablo2.io/dclone_api.php?region=2
will generate results for only modes in the Europe region.ladder
can be 1
(Ladder), or 2
(Non-Ladder). Example https://diablo2.io/dclone_api.php?region=3&ladder=2
will generate results for only modes in the Asia region that are Non-Ladder.hc
can be 1
(Hardcore), 2
(Softcore). Example https://diablo2.io/dclone_api.php?region=1&ladder=1&hc=2
will generate results for the Americas region, that are Ladder, and are also Hardcore.You will note that no results are produced for Non-Expansion - decided to remove this mode since it is of so little importance/reward to players and clutters the tracker data needlessly.
To sort or 'order' results, use the
sk
Key with any of the following values: p
(Progress) r
(Region) l
(Ladder) h
(Hardcore) t
(Timestamp of last report). The additional sd
param is used to decide sort direction - d
is the value for Descending, a
is the value for Ascending. Example https://diablo2.io/dclone_api.php?region=2&sk=t&sd=d
will sort the results by most recently updated timestamp in the descending direction. The default/unassigned pair for sorting is always to sort by Progress, Descending direction. It will of course change if you use the params above ^.
Example output combining some parameters...
Using example URL:
https://diablo2.io/dclone_api.php?hc=2&ladder=2
, the API will spit out a JSON object with nested objects for each row returned. In this case, we're querying all regions, softcore, non-ladder. Since we didn't provide params for sorting order/direction, it uses the defaults. The result looks like this:Code: Select all
[
{"progress":"3","region":"1","ladder":"2","hc":"2","timestamped":"1650826711"},
{"progress":"5","region":"2","ladder":"2","hc":"2","timestamped":"1650861924"},
{"progress":"2","region":"3","ladder":"2","hc":"2","timestamped":"1650862741"}
]
The value for the Key 'timestamped' represents the UNIX timestamp of when the last report was made for this mode. You will have to convert this into your desired date/time format on your end.
Fair usage:
I have decided not to gate access to this API, just to make things easier for developers to get on board. I will however still monitor my analytics for this endpoint carefully; some things to bear in mind:
- You must include the copy 'Data courtesy of diablo2.io', linking the text
diablo2.io
to the site's home page or the dclone tracker. If you use this data without crediting the source like this, your access will be revoked. Not hidden away, not in the readme, has to be in the app itself and in a reasonably prominent position with relation to the component of your app using the data. - The data should be used to extend what the tracker already offers, not to duplicate or copy it. That means if you were to use this data to try and reconstruct the clone tracker I built here, and host it on your own domain etc with the same/or similar functionality, I would revoke access. Ask yourself the question - what am I actually adding in terms of value here that d2io doesn't already serve?
- Things that extend its functionality are Discord notifier bots, push notification servers, supplementing datasets that are related, mini site widgets etc. Basically, anything that makes D2 player's lives easier and doesn't straight-up plagiarise the tracker page.
- Timings between API requests from your app should never be less than 60 seconds apart. Obviously whilst developing you'll be making tonnes of requests (no problem), but if your final production code is making automated requests more often than this, you will have your access revoked.
- I would prefer if you could contact me before you start building using this data, so that I am aware of who the consumers are and what is being done with the data. That way you also have a direct line with me in case you want to ask me to build new stuff into the API
- I am not asking for much in return guys - please respect the community tracking effort that is coordinated here by adhering to the above points if you plan on using the API data.
- Notifications, whether email, webpush, or otherwise. People have asked for configurable notifications, so as to filter out modes/progress levels they are not interested in. This is the one thing people want the most right now.
- Discord summary bots - People have asked for this on the various Discords, where they can type !uberdiablo or something and get the data from the tracker printed out for them, or for a bot to automatically print progress levels at set time intervals in a channel etc.
As I said before, this is just a barebones thing for now - it's all I have time for before Ladder. Future development will allow people to also send progress reports via the API urls to enrich data here. In this way, I hope that someone savvy can write a bot that cycles through each tracked mode, enters games, checks /uberdiablo, then submits this through the API totally automated. Be aware of the ToS if you do want to attempt this - I think it might be a bannable offence. A log of all individual reports with the same Key/value pairs will be available but later on (the db exists and is populated, just haven't built a way to visualise it yet).
Hope this brings some cool new features/apps etc. to the Dclone hunting world and helps players everywhere.
Your boy, Teebling.
Teebling
6870
Admin