]> git.lizzy.rs Git - go-anidb.git/blob - http/misc.go
Modernize
[go-anidb.git] / http / misc.go
1 package httpapi
2
3 import (
4         "sort"
5         "strconv"
6 )
7
8 func (es Episodes) Len() int {
9         return len(es)
10 }
11
12 func (es Episodes) Less(i, j int) bool {
13         if es[i].EpNo.Type == es[j].EpNo.Type {
14                 if es[i].EpNo.Type == 1 {
15                         a, _ := strconv.ParseInt(es[i].EpNo.EpNo, 10, 32)
16                         b, _ := strconv.ParseInt(es[j].EpNo.EpNo, 10, 32)
17                         return a < b
18                 } else {
19                         a, _ := strconv.ParseInt(es[i].EpNo.EpNo[1:], 10, 32)
20                         b, _ := strconv.ParseInt(es[j].EpNo.EpNo[1:], 10, 32)
21                         return a < b
22                 }
23         }
24         return es[i].EpNo.Type < es[j].EpNo.Type
25 }
26
27 func (es Episodes) Swap(i, j int) {
28         es[i], es[j] = es[j], es[i]
29 }
30
31 func (cs Characters) Len() int {
32         return len(cs)
33 }
34
35 func (cs Characters) Less(i, j int) bool {
36         if cs[i].Type == cs[j].Type {
37                 return sort.StringSlice{cs[i].Name, cs[j].Name}.Less(0, 1)
38         }
39
40         a := 0
41         switch cs[i].Type {
42         case "main character in":
43                 a = 0
44         case "secondary cast in":
45                 a = 1
46         case "appears in":
47                 a = 2
48         default:
49                 a = 3
50         }
51
52         b := 0
53         switch cs[j].Type {
54         case "main character in":
55                 b = 0
56         case "secondary cast in":
57                 b = 1
58         case "appears in":
59                 b = 2
60         default:
61                 b = 3
62         }
63
64         return a < b
65 }
66
67 func (cs Characters) Swap(i, j int) {
68         cs[i], cs[j] = cs[j], cs[i]
69 }