yume-taishikan/README.md

62 lines
2.9 KiB
Markdown
Raw Permalink Normal View History

# Misskey Instances List
A misskey instances listings generator compliant with the official Misskey Hub data format with adjusted score loadings and a focus on growing a diverse and healthy fediverse based on open-source software.
The following is a draft and WIP and has not been implemented yet.
## Differences
- Currently we will use the official Web UI but we may work on a custom one in the future.
- Language detection now uses [lingua](https://crates.io/crates/lingua).
- We respect no-bot tags when accessing instance and user history.
- All instances with a misskey API will be considered a misskey instance. If the instance advertises "misskey" or other popular forks in the software field, it will be considered a misskey instance.
Additionally, there are some fuzzy matching: we will probe `/api/endpoints` to check if it has the necessary endpoints to be considered if:
- software field has "misskey" as substring
- software field starts with "miss"
- software field ends with "key" or "ski" or "fish"
- `misskey.io` is no longer the "root" instance, instead we will use a list of instances whose owners has agreed to share their federation data with us. PRs are welcome to add your instance to the list if you found your instance or fediverse circle is not listed.
Requests per minute is customizable on a per-instance basis and we will not increase the limit without additional confirmation from the instance owner.
- Instances that satisfy any of these conditions will be excluded:
- Not advertising a valid source code repository (either the official Misskey repository or an URL pointing to a Git URL that we will clone). If the source repository is not the official Misskey repository, we must be able to clone it (skipping blobs) within 1 minute.
- Instances with an `/api/charts/notes` not consistent with `/api/stats`.
- `originalUsersCount` is greater than `originalNotesCount`.
- Any of `originalUsersCount`, `originalNotesCount` is not positive.
- The source repository has not been committed for more than 6 months or if the official Misskey repository is presented, the advertised version is NOT EXACTLY one within the last 6 months.
## Loadings (testing)
We redesigned the loadings for `value` (ranking) field to give small, growing and well-maintained instances a better chance to be listed.
The new formula is:
Base score (sum):
- log10(originalUsersCount)
- log2(originalNotesCount / originalUsersCount)
- log2(npd15)
- 2 * openRegistrations
- 0.4 * emailRequiredForSignUp
- 5 * (serverRules.length > 0)
Adjustments (multipliers):
- 0.75 if (!icon)
- 0.5 if (lastUpdated < -45 days since last Misskey official release) (any push on source repository will count as an update)
## Running
You need:
- Nightly Rust Toolchain
- Firejail with the usually-included "git" profile
- Git with filtered cloning support (should be included in most distributions)