Page 1 of 2

Leaderboards - Simple leaderboard data extraction | Manialink by BigBang1112

Posted: 24 Dec 2019, 02:04
by BigBang1112
Image
Image

Welcome to Leaderboards!
Leaderboards is a manialink project focused on simple leaderboard data extraction.

As extracting leaderboard records without user's (extractor's) identity is nearly impossible, the manialink tries to solve this with ingame requests - those from official title packs where you can view or race against world records and such. The project is being developed by BigBang1112.

You may know this manialink name from the past. I made a prototype of Leaderboards back in August, but unfortunately, I was too busy with Challenge to continue. 4 months later though, I'm safe to say that this is THE leaderboards manialink I wanted to code back then.

The manialink is based in a folder environment.

Image

The manialink does everything for you. Just join any title pack, wait about half a minute, and the data is there! Look at all the Top 10s way quicker than in the title pack - you just wait once instead of waiting for every leaderboard.

For each Top 10 you view, you'll also download all of the ghosts in an asynchronous way (all at once) - all 10 ghosts in just a second! That allows not only instant replay saving but also reading record checkpoints.

Image

Just like old Leaderboards, at the top of each map, its world record can be seen right away. No more plain text, now with colors and actually cool font.

Image

The other features include:
  • Many additional fancy statistics about the leaderboards:
    • Players participated
    • Total records driven - for each campaign, each map group, and each map
    • Map worth in skillpoints
    • Percentage of finished players (who drove at least 1 campaign map)
  • Ranked checkpoints - see the track potential
  • Copyable records for easy sharing
  • Saveable replays if you're on the map
  • Replay browser for saving replays
  • Button to quickly find a leaderboard on a map you're currently on
  • Ranking of other zones than World
  • Specific player leaderboard information (aka opponent records)
What's about to come?
  • Saving replays of multiple ghosts at once
  • Customizable format of copy-to-clipboard
  • More checkpoint related stuff
Image

Image

Image

Image

The manialink is also alternatively available under worldrecords manialink code.

I never forget though
Good old leaderboards prototype is currently available under the manialink code leaderboards?old.

Leaderboards manialink is available open-source on GitHub. Contribute!

If you have any issues with the manialink, don't hesitate to post it here, DM me on any platform (I recommend Discord) or join my Discord server and discuss it there.



MERRY CHRISTMAS EVERYONE :3

Leaderboard Tracker - History tracking web tool for Leaderboards manialink

Posted: 24 Dec 2019, 02:04
by BigBang1112
Image

I think the most powerful thing about Leaderboards is its ability to send data to the Leaderboard Tracker. Leaderboard Tracker is a small web tool that catches leaderboard data into its own special location - as Maniaplanet doesn't support good permanent storage, this was the best solution I've found.
The leaderboard data can be then accessed by the manialink back throughout the same URL you define in the manialink. This allows history tracking and record comparisons.
To be able to use Leaderboard Tracker, you have to authorize with Leaderboards.

So, let's setup leaderboard history tracking! UPDATED ON 24.12.2019 13:55 due to security flaw.
  1. Download and setup any web server you like. I used XAMPP and it worked just good. Start at least a service that contains PHP server
  2. Download the Leaderboard Tracker tool here on GitHub by clicking on the Clone or download button and clicking Download ZIP
  3. Go to your web server's public folder (htdocs in XAMPP's case)
  4. Extract the downloaded ZIP there
  5. Construct your URL - if you extracted straight in the public folder, then the URL would be http://localhost/leaderboard-tracker-master. If you put the Leaderboard Tracker folder to a folder called tools that is located in the public folder, then the URL would be http://localhost/tools/leaderboard-tracker-master
  6. Paste your constructed URL into the Leaderboard Tracker URL here: Image
If you have a public IP address,
I highly recommend you to enable the secure mode.
  1. Go to the Tracker's settings.inc.php
  2. Set secure_mode to true
  3. Copy the secret key here: Image
  4. Paste the secret key into the secret_key variable value
That should be it. If you're not seeing a warning sign next to the URL, then you successfully managed to set up the Leaderboard Tracker! A new point of time should be tracked each time you visit the manialink.

If I broke any security rules, let me know about them as I'm still not fairly confident about my security knowledge. :D

Leaderboard Tracker, as already mentioned, is also available open-source on GitHub!

Oh hey, are you thinking the same? Automatic report of new world records?..
Not entirely yet, but it's in thought.

Re: Leaderboards - Simple leaderboard data extraction | Manialink by BigBang1112

Posted: 24 Dec 2019, 02:26
by ThaumicTom
nice

Re: Leaderboards - Simple leaderboard data extraction | Manialink by BigBang1112

Posted: 24 Dec 2019, 07:28
by Harest
I asked myself a few times how we could download the ghosts to analyze them more easily. I don't need to ask myself this question i guess :p. Nice ML, thx o/. I'm always impressed by your UI work also.

Re: Leaderboards - Simple leaderboard data extraction | Manialink by BigBang1112

Posted: 24 Dec 2019, 13:29
by Miss
Wow very nice work!! :thumbsup: :1010

Re: Leaderboards - Simple leaderboard data extraction | Manialink by BigBang1112

Posted: 24 Dec 2019, 21:29
by BigBang1112
ThaumicTom wrote: 24 Dec 2019, 02:26nice
Harest wrote: 24 Dec 2019, 07:28 I asked myself a few times how we could download the ghosts to analyze them more easily. I don't need to ask myself this question i guess :p. Nice ML, thx o/. I'm always impressed by your UI work also.
Miss wrote: 24 Dec 2019, 13:29 Wow very nice work!! :thumbsup: :1010
Thank you all :thx:

Re: Leaderboards - Simple leaderboard data extraction | Manialink by BigBang1112

Posted: 11 Apr 2020, 18:55
by BigBang1112
Today I pushed an update 2020-04-11a:

- Added "Go to map" button which directly throws you to the map!
- - Try it out in an official title pack. You won't be disappointed
- Updated Save replay button, which now shows proper replay browser!
- Replaced Copy to clipboard button in the map information to Save replay
- Each leaderboard now loads 100 records instead of 10!
- Map list now shows maps you have locked, and you can't visit those
- Added basic keyboard/pad navigation support (still a bit buggy), proper Escape support
- Added TM2U_Island@adamkooo, TrackMania_2_United@adamkooo, TM2UF@adamkooo, Platform@nadeolive, Nadeo_Envimix@bigbang1112 and Reunited@bigbang1112 to the map group color support
- Added an exit button
- Changes to the Title panel for upcoming features
- Improved some translations
- Fixed scrollbar bug if list contained exactly 13 elements
- Fixed records not showing ghost status when the download failed
- Fixed "Finished by" not updating on map with no records
- Fixed map skillpoint value when the map has no records
- Fixed some unpublished titles not showing title id


Re: Leaderboards - Simple leaderboard data extraction | Manialink by BigBang1112

Posted: 14 Apr 2020, 12:37
by Tona
:clap: :clap: :clap:

Re: Leaderboards - Simple leaderboard data extraction | Manialink by BigBang1112

Posted: 15 Apr 2020, 13:58
by w1lla
Really nice manialink

However when not in a title i get the following error:

Code: Select all

ERR [2373, 20] Invalid access to parameter (Null object or elem not found in array) : LoadedTitle>.TitleId
	bigbang1112::Main() [2373, 20]

Re: Leaderboards - Simple leaderboard data extraction | Manialink by BigBang1112

Posted: 15 Apr 2020, 14:54
by BigBang1112
w1lla wrote: 15 Apr 2020, 13:58 Really nice manialink

However when not in a title i get the following error:

Code: Select all

ERR [2373, 20] Invalid access to parameter (Null object or elem not found in array) : LoadedTitle>.TitleId
	bigbang1112::Main() [2373, 20]
Oh, I see, thanks for the report