Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fuwn/mayu
⭐ Moe-Counter Compatible Website Hit Counter Written in Gleam
https://github.com/fuwn/mayu
counter functional gleam moe moe-counter website
Last synced: about 1 month ago
JSON representation
⭐ Moe-Counter Compatible Website Hit Counter Written in Gleam
- Host: GitHub
- URL: https://github.com/fuwn/mayu
- Owner: Fuwn
- License: gpl-3.0
- Created: 2024-05-14T06:29:10.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-09-28T12:29:44.000Z (3 months ago)
- Last Synced: 2024-12-10T12:05:17.455Z (about 1 month ago)
- Topics: counter, functional, gleam, moe, moe-counter, website
- Language: HTML
- Homepage: https://mayu.due.moe
- Size: 23.4 MB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ⭐ Mayu
> Moe-Counter Compatible Website Hit Counter
Mayu is a drop-in replacement for [Moe-Counter](https://github.com/journey-ad/Moe-Counter) designed
to be lightweight and easy to use.Mayu is written in [Gleam](https://gleam.run) and uses [SQLite](https://sqlite.org) as its database.
Don't know Gleam or functional paradigms? Take a look at the [source tree](./src) and see just how
easy it is to understand! It's all contained in under 300 (294) liberally newline'd lines of code!## Usage
Mayu currently has nine available themes selectable using the `theme` query parameter of any `get` operation.
E.g., [mayu.due.moe/get/@demo?theme=urushi](https://mayu.due.moe/get/@demo?theme=urushi)
- `asoul`
- `gelbooru-h` (NSFW)
- `gelbooru`
- `moebooru-h` (NSFW)
- `moebooru`
- `rule34` (NSFW)
- `urushi`
- `lain`
- `garukura`Mayu will pad the counter number with zeroes until it reaches a length of 6 characters. You can modify this behavior by changing the `padding` query parameter of any `get` operation.
### Local
```bash
$ git clone [email protected]:Fuwn/mayu.git
$ cd mayu
$ gleam run
$ # or
$ nix run
```### Docker
```shell
docker run --volume 'mayu:/mayu/data/' -p '80:3000' --rm fuwn/mayu:latest
```This Docker command uses a named volume, `mayu`, which allows the Mayu's database to persist between container restarts.
### Database
Mayu will use SQLite by default and will place the database file, `count.db`, within the `data/` directory of the project's root directory.
Mayu has the same default database layout as Moe-Counter, so if you've already used Moe-Counter previously, Mayu will work off of any previously accumulated counter data, so long as you transfer the database file over.
Mayu additionally adds two database columns: `created_at` and `updated_at`, which will not affect standard operations in any way, but will allow for additional data to be available should you perform a `record` operation.
### Routes
- `/heart-beat`: `alive`
- `/get/@name`: An `image/xml+svg` counter, defaulting to theme `asoul`, modifiable using the `theme` query parameter
- `/record/@name`: JSON object containing the database's `name`, `num`, `created_at`, and `updated_at` fields for counter `name`## Resource Attributions
- [A-SOUL_Official](https://space.bilibili.com/703007996)
- [Moebooru](https://github.com/moebooru/moebooru)
- [Rule 34](https://rule34.xxx) (NSFW)
- [Gelbooru](https://gelbooru.com) (NSFW)
- [Urushi](https://x.com/udon0531/status/1350738347681959936)
- [Lain Iwakura](https://x.com/lililjiliijili/status/869722811236929538)
- [GaruKura](https://www.pixiv.net/artworks/119693017)## Licence
This project is licensed with the [GNU General Public License v3.0](LICENSE).