This commit is contained in:
Daniel Mason 2025-05-16 22:08:57 +12:00
parent ff0ad306e7
commit 112abcdf36
Signed by: idanoo
GPG key ID: 387387CDBC02F132
2 changed files with 24 additions and 29 deletions

View file

@ -1,7 +1,7 @@
package database package database
// GetLastUsedPic // GetLastUsedPic
func (db *Database) GetLastUsedPic() (int64, string, error) { func (db *Database) GetLastUsedPic(increment bool) (int64, string, error) {
min := db.getPicMinViewCount() min := db.getPicMinViewCount()
var id int64 var id int64
var fileName string var fileName string
@ -15,7 +15,10 @@ func (db *Database) GetLastUsedPic() (int64, string, error) {
row.Scan(&id, &fileName) row.Scan(&id, &fileName)
} }
db.incrementPicViewCount(id) if increment {
// Increment the view count
db.incrementPicViewCount(id)
}
return id, fileName, nil return id, fileName, nil
} }

View file

@ -19,7 +19,7 @@ const fontSize = 42
const BIRB_PATH = "/root/data/reaction_pics" const BIRB_PATH = "/root/data/reaction_pics"
func (mtrx *MtrxClient) postBirb(ctx context.Context, evt *event.Event) { func (mtrx *MtrxClient) postBirb(ctx context.Context, evt *event.Event) {
idd, birb, err := mtrx.db.GetLastUsedPic() idd, birb, err := mtrx.db.GetLastUsedPic(true)
if err != nil { if err != nil {
mtrx.c.Log.Err(err).Msg("Failed to get birb") mtrx.c.Log.Err(err).Msg("Failed to get birb")
return return
@ -59,39 +59,31 @@ func (mtrx *MtrxClient) postBirb(ctx context.Context, evt *event.Event) {
} }
func (mtrx *MtrxClient) postBirbWithText(ctx context.Context, evt *event.Event, text string, filename string) { func (mtrx *MtrxClient) postBirbWithText(ctx context.Context, evt *event.Event, text string, filename string) {
var reader *os.File increment := true
var err error if filename != "" {
increment = false
}
if filename == "" { // Do a lookup
// Do a lookup dbId, birb, err := mtrx.db.GetLastUsedPic(increment)
dbId, birb, err := mtrx.db.GetLastUsedPic() if err != nil {
if err != nil { mtrx.sendMessage(ctx, evt.RoomID, "Failed to get an image "+err.Error()+". "+birb)
mtrx.sendMessage(ctx, evt.RoomID, "Failed to get an image "+err.Error()+". "+birb) return
return }
} reader, err := os.Open(BIRB_PATH + "/" + birb)
reader, err = os.Open(BIRB_PATH + "/" + birb) if err != nil {
if err != nil { mtrx.sendMessage(ctx, evt.RoomID, "Failed to load image "+err.Error()+". "+birb)
mtrx.sendMessage(ctx, evt.RoomID, "Failed to load image "+err.Error()+". "+birb) if filename != "" {
mtrx.db.DeletePic(dbId)
delete(mtrx.pics, dbId)
return
}
} else {
birb := filename
reader, err = os.Open(BIRB_PATH + "/" + birb)
if err != nil {
mtrx.sendMessage(ctx, evt.RoomID, "Failed to load image "+err.Error()+". "+birb)
var id int64
for k, v := range mtrx.pics { for k, v := range mtrx.pics {
if v == birb { if v == birb {
id = k dbId = k
break break
} }
} }
mtrx.db.DeletePic(id)
delete(mtrx.pics, id)
return
} }
mtrx.db.DeletePic(dbId)
delete(mtrx.pics, dbId)
return
} }
// do the swaps // do the swaps