A high-efficiency, asynchronous network crawler designed to algorithmically brute-force, validate, and catalog official Ragnarok Online client installers, regional patches, and setup binaries.
Finding official client files for Ragnarok Online across different regional distributors (kRO, twRO, jRO) is a major challenge due to unindexed directories and rotating filenames. RO-Setup-Finder automates link validation by generating multi-format date permutations over historical ranges, executing low-overhead async requests, and committing validated endpoints directly into a structured live database.
| 📅 Not Default Pattern Valid Links |
|---|
| http://rofull.gnjoy.com/KR_RO1_Live_20251001_122947.tar |
The scanning engine avoids sequential execution bottlenecks by deploying an asynchronous HTTP pool handled via aiohttp and structured coroutines.
- Rate-Limit Guard: Includes a
0.15sartificial thread cooldown combined with a strict concurrency bottleneck restriction (asyncio.Semaphore(6)). This prevents target Content Delivery Networks (CDNs) from flagging the runtime environment as a malicious DoS vector. - Date Mask Parsing: Automatically rolls dates sequentially starting from
January 1st, 2020up through the execution timestamp, mapping strings into alternating short-year masks (%y%m%d->d6) and full-century masks (%Y%m%d->d8).
The pattern matrix targets official distribution nodes, mapping formats across servers for varying environments:
| Regional Publisher / Tag | Core Domain Endpoint | Formats Searched | Target Infrastructure |
|---|---|---|---|
| Gravity kRO / Zero | rofull.gnjoy.com |
.exe, .zip, .bin |
Main live clients, Sakray test beds, and Zero nodes. |
| Gravity Game Taiwan | twcdn.gnjoy.com.tw |
.exe |
Taiwanese localized setups (RO_Install, RAGNAROK). |
| GungHo Japan (jRO) | patch2.gungho.jp |
.tar |
Full client tarballs (JP_Live). |
The scanner handles automated collection tasks independently via standard CI/CD pipelines.
The built-in GitHub Actions workflow (.github/workflows/main.yml) uses a cron trigger configured for the 1st day of every month (0 0 1 * *). It performs clean dependencies setup, executes the multi-threaded network check, compares output deltas, and automatically commits fresh results to links_validos.md using isolated runner tokens.
- Python
3.9+(Tested on3.12) - Network access to target domains
- Clone the repository:
git clone https://github.com/AoShinRO/RO-Setup-Finder.git
cd RO-Setup-Finder- Install the necessary network hooks:
pip install aiohttp- Run the generator:
python3 rosetupfinder.py- Check the results in the newly compiled file:
links_validos.md
This tool is designed strictly for research, digital preservation, and educational archiving purposes. RO-Setup-Finder does not pull down or store the actual game binaries — it issues connection requests to identify active download links. All checked links resolve to official, unmodified distribution systems owned by Gravity Co., Ltd. and their associated regional operational partners.
This project is open-source and licensed under the terms of the GNU General Public License v3.0.