Changeset 434 in code for trunk/db.go
- Timestamp:
- Dec 14, 2020, 7:54:02 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/db.go
r422 r434 4 4 "database/sql" 5 5 "fmt" 6 "math" 6 7 "strings" 7 8 "sync" 9 "time" 8 10 9 11 _ "github.com/mattn/go-sqlite3" … … 53 55 } 54 56 57 type MessageFilter int 58 59 const ( 60 // TODO: use customizable user defaults for FilterDefault 61 FilterDefault MessageFilter = iota 62 FilterNone 63 FilterHighlight 64 FilterMessage 65 ) 66 67 func parseFilter(filter string) (MessageFilter, error) { 68 switch filter { 69 case "default": 70 return FilterDefault, nil 71 case "none": 72 return FilterNone, nil 73 case "highlight": 74 return FilterHighlight, nil 75 case "message": 76 return FilterMessage, nil 77 } 78 return 0, fmt.Errorf("unknown filter: %q", filter) 79 } 80 55 81 type Channel struct { 56 82 ID int64 … … 58 84 Key string 59 85 Detached bool 86 87 RelayDetached MessageFilter 88 ReattachOn MessageFilter 89 DetachAfter time.Duration 90 DetachOn MessageFilter 60 91 } 61 92 … … 94 125 key VARCHAR(255), 95 126 detached INTEGER NOT NULL DEFAULT 0, 127 relay_detached INTEGER NOT NULL DEFAULT 0, 128 reattach_on INTEGER NOT NULL DEFAULT 0, 129 detach_after INTEGER NOT NULL DEFAULT 0, 130 detach_on INTEGER NOT NULL DEFAULT 0, 96 131 FOREIGN KEY(network) REFERENCES Network(id), 97 132 UNIQUE(network, name) … … 147 182 ALTER TABLE NetworkNew RENAME TO Network; 148 183 `, 184 ` 185 ALTER TABLE Channel ADD COLUMN relay_detached INTEGER NOT NULL DEFAULT 0; 186 ALTER TABLE Channel ADD COLUMN reattach_on INTEGER NOT NULL DEFAULT 0; 187 ALTER TABLE Channel ADD COLUMN detach_after INTEGER NOT NULL DEFAULT 0; 188 ALTER TABLE Channel ADD COLUMN detach_on INTEGER NOT NULL DEFAULT 0; 189 `, 149 190 } 150 191 … … 448 489 defer db.lock.RUnlock() 449 490 450 rows, err := db.db.Query(`SELECT id, name, key, detached 491 rows, err := db.db.Query(`SELECT id, name, key, detached, relay_detached, reattach_on, detach_after, detach_on 451 492 FROM Channel 452 493 WHERE network = ?`, networkID) … … 460 501 var ch Channel 461 502 var key sql.NullString 462 if err := rows.Scan(&ch.ID, &ch.Name, &key, &ch.Detached); err != nil { 503 var detachAfter int64 504 if err := rows.Scan(&ch.ID, &ch.Name, &key, &ch.Detached, &ch.RelayDetached, &ch.ReattachOn, &detachAfter, &ch.DetachOn); err != nil { 463 505 return nil, err 464 506 } 465 507 ch.Key = key.String 508 ch.DetachAfter = time.Duration(detachAfter) * time.Second 466 509 channels = append(channels, ch) 467 510 } … … 478 521 479 522 key := toNullString(ch.Key) 523 detachAfter := int64(math.Ceil(ch.DetachAfter.Seconds())) 480 524 481 525 var err error 482 526 if ch.ID != 0 { 483 527 _, err = db.db.Exec(`UPDATE Channel 484 SET network = ?, name = ?, key = ?, detached = ? 528 SET network = ?, name = ?, key = ?, detached = ?, relay_detached = ?, reattach_on = ?, detach_after = ?, detach_on = ? 485 529 WHERE id = ?`, 486 networkID, ch.Name, key, ch.Detached, ch. ID)530 networkID, ch.Name, key, ch.Detached, ch.RelayDetached, ch.ReattachOn, detachAfter, ch.DetachOn, ch.ID) 487 531 } else { 488 532 var res sql.Result 489 res, err = db.db.Exec(`INSERT INTO Channel(network, name, key, detached )490 VALUES (?, ?, ?, ? )`,491 networkID, ch.Name, key, ch.Detached )533 res, err = db.db.Exec(`INSERT INTO Channel(network, name, key, detached, relay_detached, reattach_on, detach_after, detach_on) 534 VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, 535 networkID, ch.Name, key, ch.Detached, ch.RelayDetached, ch.ReattachOn, detachAfter, ch.DetachOn) 492 536 if err != nil { 493 537 return err
Note:
See TracChangeset
for help on using the changeset viewer.