Files
TorrServerJellyfin/server/web/api/ffprobe.go
cocool97 b72c66d433 Add openapi API documentation (#294)
* Initial version

- Add OpenAPI documentation generator
- Update README.md to remove endpoint documentations

* Adds new endpoints

- Fixes build with swag
- Adds new endpoints

* Adds more endpoints documentation

- Also removes swag from Dockerfile and build script

* Finally adds all endpoints documentation

* Initial version

- Add OpenAPI documentation generator
- Update README.md to remove endpoint documentations

* Adds new endpoints

- Fixes build with swag
- Adds new endpoints

* Adds more endpoints documentation

- Also removes swag from Dockerfile and build script

* Finally adds all endpoints documentation

* Update README (#1)

* Update README

I completely redid the `README.md`. Now it's much easier to read and understand.

---------

Co-authored-by: cocool97 <34218602+cocool97@users.noreply.github.com>

* Improves documentation

* Delete server/config.db

* Update README.md

* Update README.md

* fix download in api docs

* add api docs to web

---------

Co-authored-by: Shadeov <144587546+shadeov@users.noreply.github.com>
Co-authored-by: nikk gitanes <tsynik@gmail.com>
2023-11-13 09:59:23 +03:00

49 lines
1016 B
Go

package api
import (
"errors"
"fmt"
"net/http"
"server/ffprobe"
sets "server/settings"
"github.com/gin-gonic/gin"
)
// ffp godoc
//
// @Summary Gather informations using ffprobe
// @Description Gather informations using ffprobe.
//
// @Tags API
//
// @Param hash query string true "Torrent hash"
// @Param id query string true "File index in torrent"
//
// @Produce json
// @Success 200 "Data returned from ffprobe"
// @Router /ffp [get]
func ffp(c *gin.Context) {
hash := c.Param("hash")
indexStr := c.Param("id")
if hash == "" || indexStr == "" {
c.AbortWithError(http.StatusNotFound, errors.New("link should not be empty"))
return
}
link := "http://127.0.0.1:" + sets.Port + "/play/" + hash + "/" + indexStr
if sets.Ssl {
link = "https://127.0.0.1:" + sets.SslPort + "/play/" + hash + "/" + indexStr
}
data, err := ffprobe.ProbeUrl(link)
if err != nil {
c.AbortWithError(http.StatusBadRequest, fmt.Errorf("error getting data: %v", err))
return
}
c.JSON(200, data)
}