mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 21:19:19 +00:00
35 lines
691 B
Go
35 lines
691 B
Go
package storage
|
|
|
|
type HTTPState struct {
|
|
LastModified string
|
|
Etag string
|
|
}
|
|
|
|
func (s *Storage) GetHTTPState(url string) *HTTPState {
|
|
row := s.db.QueryRow(`
|
|
select last_modified, etag
|
|
from http_state where url = ?
|
|
`, url)
|
|
|
|
if row == nil {
|
|
return nil
|
|
}
|
|
|
|
var state HTTPState
|
|
row.Scan(&state.LastModified, &state.Etag)
|
|
return &state
|
|
}
|
|
|
|
func (s *Storage) SetHTTPState(url string, state HTTPState) {
|
|
_, err := s.db.Exec(`
|
|
insert into http_state (url, last_modified, etag)
|
|
values (?, ?, ?)
|
|
on conflict (url) do update set last_modified = ?, etag = ?`,
|
|
url, state.LastModified, state.Etag,
|
|
state.LastModified, state.Etag,
|
|
)
|
|
if err != nil {
|
|
s.log.Print(err)
|
|
}
|
|
}
|