mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
Add query method to retrieve metadata from db
This commit is contained in:
parent
0f091618b7
commit
f16fa9686c
@ -1,8 +1,11 @@
|
||||
module github.com/zoriya/kyoo/transcoder
|
||||
|
||||
go 1.21
|
||||
go 1.22
|
||||
|
||||
require github.com/labstack/echo/v4 v4.12.0 // direct
|
||||
require (
|
||||
github.com/jmoiron/sqlx v1.4.0
|
||||
github.com/labstack/echo/v4 v4.12.0
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/disintegration/imaging v1.6.2
|
||||
@ -17,7 +20,9 @@ require (
|
||||
golang.org/x/image v0.10.0 // indirect
|
||||
golang.org/x/net v0.24.0 // indirect
|
||||
golang.org/x/sys v0.19.0 // indirect
|
||||
golang.org/x/text v0.14.0 // indirect
|
||||
golang.org/x/text v0.14.0
|
||||
golang.org/x/time v0.5.0 // indirect
|
||||
gopkg.in/vansante/go-ffprobe.v2 v2.2.0
|
||||
)
|
||||
|
||||
replace github.com/jmoiron/sqlx v1.4.0 => github.com/kmpm/sqlx v1.3.5-0.20220614102404-845a9a7f1301
|
||||
|
@ -2,17 +2,25 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
|
||||
github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
|
||||
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
|
||||
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||
github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
|
||||
github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
|
||||
github.com/kmpm/sqlx v1.3.5-0.20220614102404-845a9a7f1301 h1:BX43DPpHzm4o6tYs3W+92d0F3iCD5/n4zKjv1FV8Ews=
|
||||
github.com/kmpm/sqlx v1.3.5-0.20220614102404-845a9a7f1301/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ=
|
||||
github.com/labstack/echo/v4 v4.12.0 h1:IKpw49IMryVB2p1a4dzwlhP1O2Tf2E0Ir/450lH+kI0=
|
||||
github.com/labstack/echo/v4 v4.12.0/go.mod h1:UP9Cr2DJXbOK3Kr9ONYzNowSh7HP0aG0ShAyycHSJvM=
|
||||
github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0=
|
||||
github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU=
|
||||
github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0=
|
||||
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
|
||||
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
|
||||
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
|
||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
|
||||
github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRUbg=
|
||||
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
||||
|
65
transcoder/src/metadata.go
Normal file
65
transcoder/src/metadata.go
Normal file
@ -0,0 +1,65 @@
|
||||
package src
|
||||
|
||||
import (
|
||||
"github.com/jmoiron/sqlx"
|
||||
)
|
||||
|
||||
type MetadataService struct {
|
||||
database *sqlx.DB
|
||||
}
|
||||
|
||||
func (s MetadataService) GetMetadata(path string, sha string) (*MediaInfo, error) {
|
||||
var ret MediaInfo
|
||||
rows, err := s.database.Queryx(`
|
||||
select * from info as i where i.sha=$1;
|
||||
select * from videos as v where v.sha=$1;
|
||||
select * from audios as a where a.sha=$1;
|
||||
select * from subtitles as s where s.sha=$1;
|
||||
select * from chapters as c where c.sha=$1;
|
||||
`,
|
||||
sha,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
if !rows.Next() {
|
||||
if err = rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// TODO: retrieve mediainfo from file + store them in db.
|
||||
return &ret, nil
|
||||
}
|
||||
rows.StructScan(ret)
|
||||
|
||||
rows.NextResultSet()
|
||||
for rows.Next() {
|
||||
var video Video
|
||||
rows.StructScan(video)
|
||||
ret.Videos = append(ret.Videos, video)
|
||||
}
|
||||
|
||||
rows.NextResultSet()
|
||||
for rows.Next() {
|
||||
var audio Audio
|
||||
rows.StructScan(audio)
|
||||
ret.Audios = append(ret.Audios, audio)
|
||||
}
|
||||
|
||||
rows.NextResultSet()
|
||||
for rows.Next() {
|
||||
var subtitle Subtitle
|
||||
rows.StructScan(subtitle)
|
||||
ret.Subtitles = append(ret.Subtitles, subtitle)
|
||||
}
|
||||
|
||||
rows.NextResultSet()
|
||||
for rows.Next() {
|
||||
var chapter Chapter
|
||||
rows.StructScan(chapter)
|
||||
ret.Chapters = append(ret.Chapters, chapter)
|
||||
}
|
||||
|
||||
return &ret, nil
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user