A Touhou character sorter, based on charasort. Unlike charasort, which runs a bottom-up merge sort, tohorank assigns a numerical rating to each character using the Glicko-2 rating system.
Technically supports other series as well, but some features, like the PC-98 flags, are hardcoded in.
![](https://private-user-images.githubusercontent.com/105645765/324161753-736da729-6432-453a-ae50-09d6b5db010f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxMjczMzYsIm5iZiI6MTcyNjEyNzAzNiwicGF0aCI6Ii8xMDU2NDU3NjUvMzI0MTYxNzUzLTczNmRhNzI5LTY0MzItNDUzYS1hZTUwLTA5ZDZiNWRiMDEwZi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkxMlQwNzQzNTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yOWY0MjA1YWMzMGZkZjhkZmEyZTMyMzI4YmJiMDFhMTYxNTdjNDUyZjBkMGQ5ZjRiZTNjZGEyOWEyNzY2MDQ2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.Wo1P7KxCPOICKRFDWdW3aGoUF7Ov8XL3KD9uBLW33wU)
- Precise numerical ratings: can't stop picking ties like the indecisive shopper in front of a shelf? Now you get to know precisely how much you love [insert name here].
![](https://private-user-images.githubusercontent.com/105645765/324162069-c6a06c33-07d3-4106-b347-84160f76d6d2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxMjczMzYsIm5iZiI6MTcyNjEyNzAzNiwicGF0aCI6Ii8xMDU2NDU3NjUvMzI0MTYyMDY5LWM2YTA2YzMzLTA3ZDMtNDEwNi1iMzQ3LTg0MTYwZjc2ZDZkMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkxMlQwNzQzNTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zNjZjNTQ3OGI0Njg1NTcxMWVhMmM0NWRjNGNhMTRiYmYzNjMyYzE4YzM2MmUzMTdjZGZmZDA3OGEwMWY3MTNlJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.MHV_DnCPkJVqj3jG1v6QnYO8qppH-UYSqnLhLhyvfeo)
- Incremental updates: ratings update after every session, which can be as long or short as you like, and you can check your ranking at any time.
Note that, like tohosort, it still takes a while to get representative results, so don't set aside your tea/coffee (Theoretically, tohosort is O(n log n) and as fast as it gets)
-
More options: Don't know either of the characters or just plain dislike them? You can just say both sides lose instead of being forced to pick ties.
-
Detailed stat tracking: see where every character stands in various works, historical stats, and more
![](https://private-user-images.githubusercontent.com/105645765/324161904-4b19fe59-89c9-478c-94ea-088bb94066c2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxMjczMzYsIm5iZiI6MTcyNjEyNzAzNiwicGF0aCI6Ii8xMDU2NDU3NjUvMzI0MTYxOTA0LTRiMTlmZTU5LTg5YzktNDc4Yy05NGVhLTA4OGJiOTQwNjZjMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkxMlQwNzQzNTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMDk2NjQ3Y2Y4YTFjYmVkZDMyZjBmMTFlZWQ2N2FkOWM5NmI4NWZjNGViY2RmNDdhYTAyN2M0Y2E5NTZhNzQ5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.NJxrsFqE-yrBPYfVw6RgcKy4wnmvId33yccg8xLz5P8)
- Filters: include or exclude any works or stages from your sessions
- Clone the repo:
git clone https://github.com/randomtwdude/tohorank
and cdcd tohorank
The install.sh
script does the following for you:
- compile
cargo build --release
- the binary is located at:
./target/release/tohorank
, move it wherever you like. The install script chooses/usr/bin/tohorank
, which requiressudo
. - IMPORTANT Move the stock character list at
./src/touhous.txt
to$HOME/.tohorank/touhous.txt
⚠️ Warning:$HOME/.tohorank/touhous.txt
must exists or tohorank will panic on startup!
If everything goes well you should get the lobby.
- Type 'start' to start a new sorting session.
- Type 'list' to see the current ranking.
- Type 'stat [name]' to see stats of a character (stat! for more stats)
You can specify filters after either start
or list
. List optionally also takes a number (only show the top-n) and name.
- to only include characters appearing in Touhou 06 - Koumakyou ~ The Embodiment of Scarlet Devil,
eosd
orth06
. - to exclude them instead, prepend a minus sign in front of the tag, like
-eosd
. - to specify stages, use
st1
~st6
andex
- to enable PC-98 duplicates (
pc98
), enable non-girls (notgirl
), or disable nameless characters (-nameless
) - multiple tags are separated by spaces
![](https://private-user-images.githubusercontent.com/105645765/324162203-846b9856-89dd-4c3b-9d0b-726df545f93a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYxMjczMzYsIm5iZiI6MTcyNjEyNzAzNiwicGF0aCI6Ii8xMDU2NDU3NjUvMzI0MTYyMjAzLTg0NmI5ODU2LTg5ZGQtNGMzYi05ZDBiLTcyNmRmNTQ1ZjkzYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTEyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkxMlQwNzQzNTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1kNjM0ZDE3YzgyMzQ5NjQ4MTI1ZDE3N2RhMzIyMzQxMWNkODI0NmQwNTYyYjhlOWJhYjM4MWUyODBiNzA5OTM5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.phee8Vj_hUQIwnRIMAkFeJ0KHcrEIFPWScrktllmp68)
start in gfw -st4
: only characters from Imperishable Night and Great Fairy Wars, but none from Stage 4.
list st4 p
: list only characters from Stage 4, with "p" in their name.