Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/la-lo-go/man-go
Go RESTful API for search mangas, their chapters and pages from different websites simultaneously
https://github.com/la-lo-go/man-go
docker-image gin-gonic http manga-api manga-scraper
Last synced: 16 days ago
JSON representation
Go RESTful API for search mangas, their chapters and pages from different websites simultaneously
- Host: GitHub
- URL: https://github.com/la-lo-go/man-go
- Owner: la-lo-go
- License: mpl-2.0
- Created: 2022-10-24T12:02:00.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-06-05T02:58:00.000Z (over 1 year ago)
- Last Synced: 2024-11-21T06:34:01.506Z (3 months ago)
- Topics: docker-image, gin-gonic, http, manga-api, manga-scraper
- Language: Go
- Homepage: https://hub.docker.com/r/lalogo/man-go
- Size: 73.2 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Man-go
## Work in progress, currently arround 50% until 1.0 release
| | **GetMangas** | **GetMangaPage** | **GetChapter** |
| :-----------: | :-----------: | :--------------: | :------------: |
| **In Manga** | ✅ | ✅ | ✅ |
| **Nyaa** | ✅ | ✅ | ❌ |
| **Manga Oni** | ✅ | ❌ | ❌ |# Run in Docker-compose
```docker
version: '3.8'
services:
man-go:
image: man-go
ports:
- "7070:7070"
```## Clone and run the repository
1. Clone the repository
``` bash
git clone https://github.com/la-lo-go/man-go
```
2. Create a new .env file in the root of the repository with the following scheme:
``` env
# API
API_IP="0.0.0.0"
API_PORT="7070"# DB
DB_NAME="mango.sqlite3"
```
3. Compile and run
``` bash
go run main.go
```## API responses
### Search
#### Query
```
/busqueda?search=[search_string]&max=[int (optional)]
```
#### Response
```json
Example: /busqueda?search=jujutsu&max=1[
{
"name": "jujutsu-kaisen",
"site": "InManga",
"link": "https://inmanga.com/ver/manga/Jujutsu-Kaisen/d88692a5-c341-47fc-8e39-da11a8fdee82",
"chapters_number": 0,
"cover": "https://pack-yak.intomanga.com/thumbnails/manga/Jujutsu-Kaisen/d88692a5-c341-47fc-8e39-da11a8fdee82"
},
{
"name": "jujutsu-kaisen",
"site": "Nyaa",
"link": "https://manganyaa.com/jujutsu-kaisen/leer-online-gratis-espanol",
"chapters_number": 99,
"cover": "https://content.manganyaa.com/file/mnyaaa/jujutsu-kaisen/description/1.jpg"
},
{
"name": "jujutsu-kaisen",
"site": "TuManga.net",
"link": "https://tumanga.net/manga/jujutsu-kaisen",
"chapters_number": 99,
"cover": ""
}
]
```### Manga Page
#### Query
```
/manga/[site]/[manga_name]
```
#### Response
```json
Example: /manga/jujutsu-kaisen/nyaa{
"name": "Jujutsu Kaisen",
"site": "Nyaa",
"cover": "https://content.manganyaa.com/file/mnyaaa/jujutsu-kaisen/description/1.jpg",
"chaptersNumber": 186,
"chaptersListed": [
{
"number": 186,
"linkOriginal": "https://manganyaa.com/jujutsu-kaisen/leer-online-gratis-espanol/capitulo/186"
},
{
"number": 185,
"linkOriginal": "https://manganyaa.com/jujutsu-kaisen/leer-online-gratis-espanol/capitulo/185"
},
...
{
"number": 2,
"linkOriginal": "https://manganyaa.com/jujutsu-kaisen/leer-online-gratis-espanol/capitulo/2"
},
{
"number": 1,
"linkOriginal": "https://manganyaa.com/jujutsu-kaisen/leer-online-gratis-espanol/capitulo/1"
}
]
}
```## Cache
- `searches` table: all the results of the searches with the date.
- The search is exact: the results are returned.
- The has a key that is included in the search: the results are filtered.
- Else: do a full search- `API_linksMangas.json`: JSON returned by the Nyaa API with all the mangas listed in the page. Has a 12 hour expire time.
## File structure
```
man-go
├───endpoints <- endpoints functions
├───gorm <- gorm database functions
├───general_functions <- handy custom functions
├───json <- cached information
├───models <- api's structs
├───routers <- gin-gonic router
└───sites <- sites using the interface
├───inManga
├───mangaMx
├───nyaa
└───tuMangaNet
```## License
[Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0/)[![License: MPL 2.0](https://img.shields.io/badge/License-MPL_2.0-brightgreen.svg)](https://www.mozilla.org/en-US/MPL/2.0/)