Conditions | 7 |
Total Lines | 36 |
Code Lines | 24 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
1 | package core |
||
38 | func UpdateMem(c *fiber.Ctx, r *models.Revision, mem *models.Mem) { |
||
39 | db := database.DBConn |
||
40 | |||
41 | if r.Result { |
||
42 | if mem.Repetition == 0 { |
||
43 | mem.Interval = 1 |
||
44 | } else if mem.Repetition == 1 { |
||
45 | mem.Interval = 2 |
||
46 | } else if mem.Repetition == 2 { |
||
47 | mem.Interval = 3 |
||
48 | } else if mem.Repetition == 3 { |
||
49 | mem.Interval = 6 |
||
50 | } else { |
||
51 | mem.Interval = uint((float32(mem.Interval) * mem.Efactor)) + 1 |
||
52 | } |
||
53 | |||
54 | mem.Repetition += 1 |
||
55 | |||
56 | } else { |
||
57 | mem.Repetition = 0 |
||
58 | mem.Interval = 0 |
||
59 | |||
60 | } |
||
61 | |||
62 | mem.Quality = r.Quality |
||
63 | |||
64 | mem.Efactor = mem.Efactor + (0.1 - (5.0-float32(mem.Quality))*(0.08+(5-float32(mem.Quality)))*0.02) |
||
65 | |||
66 | if mem.Efactor < 1.3 { |
||
67 | mem.Efactor = 1.3 |
||
68 | } |
||
69 | |||
70 | mem.NextDate = time.Now().AddDate(0, 0, int(mem.Interval)) |
||
71 | mem.Total++ |
||
72 | |||
73 | db.Save(mem) |
||
74 | } |
||
75 |