| 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 |