Persist pages to file system
This commit is contained in:
42
snapshot.go
Normal file
42
snapshot.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Snapshot struct {
|
||||
Url GeminiUrl `json:"url,omitempty"`
|
||||
Timestamp time.Time `json:"timestamp,omitempty"`
|
||||
Data string `json:"data,omitempty"`
|
||||
Links []GeminiUrl `json:"links,omitempty"`
|
||||
Code int `json:"code,omitempty"`
|
||||
Error error `json:"error,omitempty"`
|
||||
UID string `json:"uid,omitempty"`
|
||||
}
|
||||
|
||||
func (u Snapshot) String() string {
|
||||
return fmt.Sprintf(
|
||||
"[%s] %s %s %s %d %s",
|
||||
u.UID, u.Url, u.Timestamp, u.Links, u.Code, u.Error,
|
||||
)
|
||||
}
|
||||
|
||||
func SnapshotToJSON(g Snapshot) string {
|
||||
// Serialize the Person struct to JSON
|
||||
jsonData, err := json.Marshal(g)
|
||||
if err != nil {
|
||||
LogError("Error serializing to JSON: %w", err)
|
||||
}
|
||||
return string(jsonData)
|
||||
}
|
||||
|
||||
func SnapshotFromJSON(input string) Snapshot {
|
||||
var snapshot Snapshot
|
||||
err := json.Unmarshal([]byte(input), &snapshot)
|
||||
if err != nil {
|
||||
LogError("Error deserializing from JSON: %w", err)
|
||||
}
|
||||
return snapshot
|
||||
}
|
||||
Reference in New Issue
Block a user