diff --git a/hicli/database/room.go b/hicli/database/room.go index e3b140d0..1538ef12 100644 --- a/hicli/database/room.go +++ b/hicli/database/room.go @@ -9,6 +9,7 @@ package database import ( "context" "database/sql" + "errors" "time" "go.mau.fi/util/dbutil" @@ -82,7 +83,11 @@ func (rq *RoomQuery) SetPrevBatch(ctx context.Context, roomID id.RoomID, prevBat func (rq *RoomQuery) UpdatePreviewIfLaterOnTimeline(ctx context.Context, roomID id.RoomID, rowID EventRowID) (previewChanged bool, err error) { var newPreviewRowID EventRowID err = rq.GetDB().QueryRow(ctx, updateRoomPreviewIfLaterOnTimelineQuery, roomID, rowID).Scan(&newPreviewRowID) - previewChanged = newPreviewRowID == rowID + if errors.Is(err, sql.ErrNoRows) { + err = nil + } else if err == nil { + previewChanged = newPreviewRowID == rowID + } return } diff --git a/hicli/database/state.go b/hicli/database/state.go index 1b542f9f..845de6ed 100644 --- a/hicli/database/state.go +++ b/hicli/database/state.go @@ -22,7 +22,7 @@ const ( ` getCurrentRoomStateQuery = ` SELECT event.rowid, -1, event.room_id, event.event_id, sender, event.type, event.state_key, timestamp, content, decrypted, decrypted_type, unsigned, - redacted_by, relates_to, relation_type, megolm_session_id, decryption_error, reactions, last_edit_rowid + transaction_id, redacted_by, relates_to, relation_type, megolm_session_id, decryption_error, reactions, last_edit_rowid FROM current_state cs JOIN event ON cs.event_rowid = event.rowid WHERE cs.room_id = $1 diff --git a/hicli/hitest/hitest.go b/hicli/hitest/hitest.go index 97705304..c6873bac 100644 --- a/hicli/hitest/hitest.go +++ b/hicli/hitest/hitest.go @@ -93,6 +93,9 @@ func main() { break } fields := strings.Fields(line) + if len(fields) == 0 { + continue + } switch strings.ToLower(fields[0]) { case "send": resp, err := cli.Send(ctx, id.RoomID(fields[1]), event.EventMessage, &event.MessageEventContent{