From f3ec7806f415dddcde82033436d8d7b30ab1ee11 Mon Sep 17 00:00:00 2001 From: YouROK <8YouROK8@mail.ru> Date: Mon, 13 Feb 2023 18:13:45 +0300 Subject: [PATCH 1/5] add log --- server/rutor/rutor.go | 3 +++ server/rutor/torrsearch/index.go | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/server/rutor/rutor.go b/server/rutor/rutor.go index ed44794..c984996 100644 --- a/server/rutor/rutor.go +++ b/server/rutor/rutor.go @@ -137,6 +137,9 @@ func loadDB() { log.TLogln("Index rutor db") torrsearch.NewIndex(torrs) + log.TLogln("Torrents count:", len(torrs)) + log.TLogln("Indexed words:", len(torrsearch.GetIDX())) + } else { log.TLogln("Error load rutor db:", err) } diff --git a/server/rutor/torrsearch/index.go b/server/rutor/torrsearch/index.go index 45f6e12..dd0197d 100644 --- a/server/rutor/torrsearch/index.go +++ b/server/rutor/torrsearch/index.go @@ -18,6 +18,10 @@ func Search(text string) []int { return idx.search(text) } +func GetIDX() Index { + return idx +} + func (idx Index) add(torrs []*models.TorrentDetails) { for ID, torr := range torrs { for _, token := range analyze(torr.Title) { From 5816dc1e2b7b7c405e3ae6e43e5a46501b8435f7 Mon Sep 17 00:00:00 2001 From: YouROK <8YouROK8@mail.ru> Date: Mon, 13 Feb 2023 23:55:51 +0300 Subject: [PATCH 2/5] add ver in log --- server/web/server.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/web/server.go b/server/web/server.go index f05caa4..4ea0a8d 100644 --- a/server/web/server.go +++ b/server/web/server.go @@ -28,7 +28,7 @@ var ( ) func Start(port string) { - log.TLogln("Start TorrServer") + log.TLogln("Start TorrServer " + version.Version) ips := getLocalIps() if len(ips) > 0 { log.TLogln("Local IPs:", ips) @@ -40,7 +40,7 @@ func Start(port string) { } rutor.Start() - gin.SetMode(gin.ReleaseMode) + //gin.SetMode(gin.ReleaseMode) //corsCfg := cors.DefaultConfig() //corsCfg.AllowAllOrigins = true From 1e7d2d7a66c3551d45e462e790285514242b10a2 Mon Sep 17 00:00:00 2001 From: YouROK <8YouROK8@mail.ru> Date: Mon, 13 Feb 2023 23:56:17 +0300 Subject: [PATCH 3/5] add ffprobe --- server/web/api/ffprobe.go | 41 +++++++++++++++++++++++++++++++++++++++ server/web/api/route.go | 3 +++ 2 files changed, 44 insertions(+) create mode 100644 server/web/api/ffprobe.go diff --git a/server/web/api/ffprobe.go b/server/web/api/ffprobe.go new file mode 100644 index 0000000..045f0e0 --- /dev/null +++ b/server/web/api/ffprobe.go @@ -0,0 +1,41 @@ +package api + +import ( + "context" + "errors" + "fmt" + "github.com/gin-gonic/gin" + "gopkg.in/vansante/go-ffprobe.v2" + "net/http" + "os" + "path/filepath" + "server/utils" +) + +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 + } + + host := utils.GetScheme(c) + "://" + c.Request.Host + "/stream?link=" + hash + "&index=" + indexStr + "&play" + fmt.Println(host) + + ctx, cancelFn := context.WithCancel(context.Background()) + defer cancelFn() + + if _, err := os.Stat("ffprobe"); os.IsNotExist(err) { + ffprobe.SetFFProbeBinPath(filepath.Dir(os.Args[0]) + "/ffprobe") + } + + data, err := ffprobe.ProbeURL(ctx, host) + if err != nil { + c.AbortWithError(http.StatusBadRequest, fmt.Errorf("error getting data: %v", err)) + return + } + + c.JSON(200, data) +} diff --git a/server/web/api/route.go b/server/web/api/route.go index 771aaba..eeafb66 100644 --- a/server/web/api/route.go +++ b/server/web/api/route.go @@ -39,7 +39,10 @@ func SetupRoute(route *gin.RouterGroup) { route.GET("/playlist/*fname", playList) route.GET("/download/:size", download) + route.GET("/search/*query", rutorSearch) + + route.GET("/ffp/:hash/:id", ffp) } func shutdown(c *gin.Context) { From 1897f0e90f7a11541d36d5eaa6a9092194673d4a Mon Sep 17 00:00:00 2001 From: YouROK <8YouROK8@mail.ru> Date: Mon, 13 Feb 2023 23:56:31 +0300 Subject: [PATCH 4/5] update libs --- server/go.mod | 1 + server/go.sum | 2 ++ 2 files changed, 3 insertions(+) diff --git a/server/go.mod b/server/go.mod index 6d853f9..9d0b588 100644 --- a/server/go.mod +++ b/server/go.mod @@ -18,6 +18,7 @@ require ( github.com/pkg/errors v0.9.1 go.etcd.io/bbolt v1.3.6 golang.org/x/time v0.3.0 + gopkg.in/vansante/go-ffprobe.v2 v2.1.1 ) require ( diff --git a/server/go.sum b/server/go.sum index 4f38d0d..1fb6b57 100644 --- a/server/go.sum +++ b/server/go.sum @@ -559,6 +559,8 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/vansante/go-ffprobe.v2 v2.1.1 h1:DIh5fMn+tlBvG7pXyUZdemVmLdERnf2xX6XOFF+0BBU= +gopkg.in/vansante/go-ffprobe.v2 v2.1.1/go.mod h1:qF0AlAjk7Nqzqf3y333Ly+KxN3cKF2JqA3JT5ZheUGE= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= From 3fe8d58faaeeaa29fe142347db4e62c43c8c4a5b Mon Sep 17 00:00:00 2001 From: nikk gitanes Date: Thu, 16 Feb 2023 01:48:03 +0300 Subject: [PATCH 5/5] disable gin debug mode and optimise --- server/dlna/dlna.go | 4 ++-- server/torr/storage/torrstor/cache.go | 12 ++++++------ server/torr/storage/torrstor/reader.go | 2 +- server/version/version.go | 2 +- server/web/server.go | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/server/dlna/dlna.go b/server/dlna/dlna.go index 59a033e..3f26a34 100644 --- a/server/dlna/dlna.go +++ b/server/dlna/dlna.go @@ -66,14 +66,14 @@ func Start() { NoProbe: true, StallEventSubscribe: true, Icons: []dms.Icon{ - dms.Icon{ + { Width: 48, Height: 48, Depth: 24, Mimetype: "image/png", Bytes: template.Dlnaicon48png, }, - dms.Icon{ + { Width: 120, Height: 120, Depth: 24, diff --git a/server/torr/storage/torrstor/cache.go b/server/torr/storage/torrstor/cache.go index 9326cd8..b84365b 100644 --- a/server/torr/storage/torrstor/cache.go +++ b/server/torr/storage/torrstor/cache.go @@ -126,7 +126,7 @@ func (c *Cache) AdjustRA(readahead int64) { } if c.Readers() > 0 { c.muReaders.Lock() - for r, _ := range c.readers { + for r := range c.readers { r.SetReadahead(readahead) } c.muReaders.Unlock() @@ -158,7 +158,7 @@ func (c *Cache) GetState() *state.CacheState { if c.Readers() > 0 { c.muReaders.Lock() - for r, _ := range c.readers { + for r := range c.readers { rng := r.getPiecesRange() pc := r.getReaderPiece() readersState = append(readersState, &state.ReaderState{ @@ -214,7 +214,7 @@ func (c *Cache) getRemPieces() []*Piece { ranges := make([]Range, 0) c.muReaders.Lock() - for r, _ := range c.readers { + for r := range c.readers { r.checkReader() if r.isUse { ranges = append(ranges, r.getPiecesRange()) @@ -245,7 +245,7 @@ func (c *Cache) getRemPieces() []*Piece { c.clearPriority() c.muReaders.Lock() - for r, _ := range c.readers { + for r := range c.readers { if !r.isUse { continue } @@ -341,7 +341,7 @@ func (c *Cache) clearPriority() { time.Sleep(time.Second) ranges := make([]Range, 0) c.muReaders.Lock() - for r, _ := range c.readers { + for r := range c.readers { r.checkReader() if r.isUse { ranges = append(ranges, r.getPiecesRange()) @@ -350,7 +350,7 @@ func (c *Cache) clearPriority() { c.muReaders.Unlock() ranges = mergeRange(ranges) - for id, _ := range c.pieces { + for id := range c.pieces { if len(ranges) > 0 { if !inRanges(ranges, id) { if c.torrent.PieceState(id).Priority != torrent.PiecePriorityNone { diff --git a/server/torr/storage/torrstor/reader.go b/server/torr/storage/torrstor/reader.go index 73b085d..80afb8a 100644 --- a/server/torr/storage/torrstor/reader.go +++ b/server/torr/storage/torrstor/reader.go @@ -197,7 +197,7 @@ func (r *Reader) readerOff() { func (r *Reader) getUseReaders() int { readers := 0 if r.cache != nil { - for reader, _ := range r.cache.readers { + for reader := range r.cache.readers { if reader.isUse { readers++ } diff --git a/server/version/version.go b/server/version/version.go index 4c5e90a..f48d27d 100644 --- a/server/version/version.go +++ b/server/version/version.go @@ -1,3 +1,3 @@ package version -const Version = "MatriX.120.1" +const Version = "MatriX.120.2" diff --git a/server/web/server.go b/server/web/server.go index 4ea0a8d..e3f3cc1 100644 --- a/server/web/server.go +++ b/server/web/server.go @@ -40,7 +40,7 @@ func Start(port string) { } rutor.Start() - //gin.SetMode(gin.ReleaseMode) + gin.SetMode(gin.ReleaseMode) //corsCfg := cors.DefaultConfig() //corsCfg.AllowAllOrigins = true