# FilterChecker V2
The most powerful unblocked link checker, supporting these filters:
* Lightspeed Systems
* Palo Alto Systems
* FortiGuard
Also comes with **many** QoL (quality of life) features, including:
* Ability to be used as a User App for even better convenience
* Built-In API that can be enabled (pass `--web `, default port is 10000)
* Check all filters, or just a single filter
* Made in TypeScript, not Python, so therefore type friendly
* Showing results ephemerally is now an option
* More detailed and user-friendly outputs
## Setup
Setting up FilterChecker V2 is as easy as pie!
Assuming you already cloned the repo, and installed [Bun](https://bun.sh):
1. Install packages using `bun i`
2. Put your bot token in your `.env` file, use `example.env` as an example
3. Start the bot with `bun run start`, if you wish to run the API alongside, you can turn your command into `bun run start --web`, and if you want to specify a custom port, `bun run start --web 8080`
## API Docs
**GET** `/` or `/ping`: Healthcheck, should always respond with `OK`.
----
**GET/POST** `/check/[url]/results.txt`:
* If a GET request was made, it will show a FilterChecker report of all filters
* If a POST reqest was made, you'll have an option to specify what filter in a JSON format, the options are:
* `lightspeed` or `ls` for Lightspeed
* `fortiguard` or `forti` for FortiGuard
* `palo` or `paloalto` for Palo Alto
**POST** request example:
`{"filter":"lightspeed"}`
**POST** request example response:
```
FilterChecker Report for youtu.be:
Lightspeed:
LS Filter: education.videos
LS Rocket: education.videos
```
**GET** request example response:
```
FilterChecker Report for youtu.be:
FortiGuard:
Category: Streaming Media and Download
Lightspeed:
LS Filter: education.videos
LS Rocket: education.videos
Palo Alto:
Risk: Low-Risk
Category: Streaming-Media
```
----
**GET/POST** `/check/[url]/results.json`:
* If a GET request was made, it will show a FilterChecker report of all filters in a JSON format.
* If a POST reqest was made, you'll have an option to specify what filter in a JSON format, the options are:
* `lightspeed` or `ls` for Lightspeed
* `fortiguard` or `forti` for FortiGuard
* `palo` or `paloalto` for Palo Alto
**POST** request example:
`{"filter":"lightspeed"}`
**POST** request example response:
```json
{
"lightspeed": [
"education.videos",
"education.videos"
]
}
```
**GET** request example response:
```json
{
"fortiguard": "Streaming Media and Download",
"lightspeed": [
"education.videos",
"education.videos"
],
"paloalto": [
"Streaming-Media",
"Low-Risk"
]
}
```
----
FilterChecker V2 is licensed under the Lesser GNU Public License version 2.1.