Add ability to display feed

This commit is contained in:
2024-02-24 14:49:29 +01:00
parent 36f7a92a06
commit 49988edd82
5 changed files with 69 additions and 48 deletions

View File

@ -102,16 +102,28 @@ func (db *DB) ChangePassword(id int64, oldPass, newPass string) error {
return fmt.Errorf("error creating password hash: %v", err)
}
updateQuery := `
query := `
UPDATE users SET
password = ?
WHERE
id = ?
`
_, err = db.Exec(updateQuery, string(newHashedPass), id)
_, err = db.Exec(query, string(newHashedPass), id)
if err != nil {
return fmt.Errorf("error updating password in DB: %v", err)
}
return nil
}
func (db *DB) CountEntries() (int64, error) {
var count int64
query := `SELECT COUNT(*) FROM users`
row := db.QueryRow(query)
if err := row.Scan(&count); err != nil {
return 0, fmt.Errorf("error counting rows in user DB: %v", err)
}
return count, nil
}

56
cmd/data/rss.go Normal file
View File

@ -0,0 +1,56 @@
package data
import (
"encoding/gob"
"fmt"
"os"
"github.com/gorilla/feeds"
)
type Feed struct {
feeds.Feed
}
func NewFeed(title, link, desc string) *Feed {
return &Feed{
Feed: feeds.Feed{
Title: title,
Link: &feeds.Link{Href: link},
Description: desc,
},
}
}
func OpenFeed(filename string) (*Feed, error) {
file, err := os.Open(filename)
if err != nil {
return nil, fmt.Errorf("error opening file %v: %v", filename, err)
}
defer file.Close()
feed := &Feed{}
decoder := gob.NewDecoder(file)
err = decoder.Decode(feed)
if err != nil {
return nil, fmt.Errorf("error decoding file %v: %v", filename, err)
}
return feed, nil
}
func (feed *Feed) Save(filename string) error {
file, err := os.Create(filename)
if err != nil {
return fmt.Errorf("error creating file %v: %v", filename, err)
}
defer file.Close()
encoder := gob.NewEncoder(file)
err = encoder.Encode(feed)
if err != nil {
return fmt.Errorf("error encoding file %v: %v", filename, err)
}
return nil
}