feat: project scaffold with cobra root and domain types
This commit is contained in:
20
cmd/root.go
Normal file
20
cmd/root.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var rootCmd = &cobra.Command{
|
||||
Use: "reddit-reader",
|
||||
Short: "Monitor subreddits for interesting posts",
|
||||
}
|
||||
|
||||
func Execute() {
|
||||
if err := rootCmd.Execute(); err != nil {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
9
go.mod
Normal file
9
go.mod
Normal file
@@ -0,0 +1,9 @@
|
||||
module somegit.dev/vikingowl/reddit-reader
|
||||
|
||||
go 1.26
|
||||
|
||||
require (
|
||||
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||
github.com/spf13/cobra v1.10.2 // indirect
|
||||
github.com/spf13/pflag v1.0.9 // indirect
|
||||
)
|
||||
10
go.sum
Normal file
10
go.sum
Normal file
@@ -0,0 +1,10 @@
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
|
||||
github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
|
||||
github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
|
||||
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
46
internal/domain/domain.go
Normal file
46
internal/domain/domain.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package domain
|
||||
|
||||
import "time"
|
||||
|
||||
type Post struct {
|
||||
ID string
|
||||
Subreddit string
|
||||
Title string
|
||||
Author string
|
||||
URL string
|
||||
SelfText string
|
||||
Score int
|
||||
CreatedUTC time.Time
|
||||
FetchedAt time.Time
|
||||
Relevance *float64
|
||||
Summary *string
|
||||
Read bool
|
||||
Starred bool
|
||||
Dismissed bool
|
||||
}
|
||||
|
||||
type Subreddit struct {
|
||||
Name string
|
||||
Enabled bool
|
||||
PollSort string
|
||||
AddedAt time.Time
|
||||
}
|
||||
|
||||
type Filter struct {
|
||||
ID int64
|
||||
Subreddit string
|
||||
Pattern string
|
||||
IsRegex bool
|
||||
}
|
||||
|
||||
type Feedback struct {
|
||||
ID int64
|
||||
PostID string
|
||||
Vote int // +1 interesting, -1 not
|
||||
CreatedAt time.Time
|
||||
}
|
||||
|
||||
type Interests struct {
|
||||
Description string
|
||||
Examples []Feedback
|
||||
}
|
||||
Reference in New Issue
Block a user