Merge branch 'filterbutton' into 'master'

SortBY feature

See merge request lukas/openmediacenter!49
This commit is contained in:
2021-06-22 20:15:05 +00:00
5 changed files with 167 additions and 21 deletions

View File

@ -31,23 +31,46 @@ func getVideoHandlers() {
*/
AddHandler("getMovies", VideoNode, func(info *HandlerInfo) []byte {
var args struct {
Tag int
Tag uint32
Sort uint8
}
if err := FillStruct(&args, info.Data); err != nil {
fmt.Println(err.Error())
return nil
}
const (
date = iota
likes = iota
random = iota
names = iota
)
var SortClause string
switch args.Sort {
case date:
SortClause = "ORDER BY create_date DESC, movie_name"
break
case likes:
SortClause = "ORDER BY likes DESC"
break
case random:
SortClause = "ORDER BY RAND()"
break
case names:
SortClause = "ORDER BY movie_name"
break
}
var query string
// 1 is the id of the ALL tag
if args.Tag != 1 {
query = fmt.Sprintf(`SELECT movie_id,movie_name,t.tag_name FROM videos
INNER JOIN video_tags vt on videos.movie_id = vt.video_id
INNER JOIN tags t on vt.tag_id = t.tag_id
WHERE t.tag_id = %d
ORDER BY likes DESC, create_date, movie_name`, args.Tag)
WHERE t.tag_id = %d %s`, args.Tag, SortClause)
} else {
query = "SELECT movie_id,movie_name, (SELECT 'All' as tag_name) FROM videos ORDER BY create_date DESC, movie_name"
query = fmt.Sprintf("SELECT movie_id,movie_name, (SELECT 'All' as tag_name) FROM videos %s", SortClause)
}
var result struct {