diff --git a/config.go b/config.go
index 06f42b8..405983b 100644
--- a/config.go
+++ b/config.go
@@ -23,21 +23,23 @@ import (
)
const (
- VERSION string = "0.0.5"
+ VERSION string = "0.0.6"
Baseuri string = "https://www.kleinanzeigen.de"
Listuri string = "/s-bestandsliste.html"
Defaultdir string = "."
DefaultTemplate string = "Title: {{.Title}}\nPrice: {{.Price}}\nId: {{.Id}}\n" +
"Category: {{.Category}}\nCondition: {{.Condition}}\nCreated: {{.Created}}\n\n{{.Text}}\n"
+ DefaultTemplateWin string = "Title: {{.Title}}\r\nPrice: {{.Price}}\r\nId: {{.Id}}\r\n" +
+ "Category: {{.Category}}\r\nCondition: {{.Condition}}\r\nCreated: {{.Created}}\r\n\r\n{{.Text}}\r\n"
Useragent string = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) " +
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
)
type Config struct {
- Verbose bool `hcl:"verbose"`
- User int `hcl:"user"`
- Outdir string `hcl:"outdir"`
- Template string `hcl:"template"`
+ Verbose *bool `hcl:"verbose"`
+ User *int `hcl:"user"`
+ Outdir *string `hcl:"outdir"`
+ Template *string `hcl:"template"`
}
func ParseConfigfile(file string) (*Config, error) {
diff --git a/main.go b/main.go
index e3f11ca..18c7d15 100644
--- a/main.go
+++ b/main.go
@@ -22,6 +22,7 @@ import (
"fmt"
"log/slog"
"os"
+ "runtime"
"runtime/debug"
"github.com/lmittmann/tint"
@@ -109,7 +110,7 @@ func Main() int {
return Die(err)
}
- if enableverbose || conf.Verbose {
+ if enableverbose || *conf.Verbose {
logLevel.Set(slog.LevelInfo)
}
@@ -135,8 +136,8 @@ func Main() int {
slog.Debug("config", "conf", conf)
if len(dir) == 0 {
- if len(conf.Outdir) > 0 {
- dir = conf.Outdir
+ if len(*conf.Outdir) > 0 {
+ dir = *conf.Outdir
} else {
dir = Defaultdir
}
@@ -150,8 +151,11 @@ func Main() int {
// which template to use
template := DefaultTemplate
- if len(conf.Template) > 0 {
- template = conf.Template
+ if runtime.GOOS == "windows" {
+ template = DefaultTemplateWin
+ }
+ if len(*conf.Template) > 0 {
+ template = *conf.Template
}
// directly backup ad listing[s]
@@ -167,8 +171,8 @@ func Main() int {
}
// backup all ads of the given user (via config or cmdline)
- if uid == 0 && conf.User > 0 {
- uid = conf.User
+ if uid == 0 && *conf.User > 0 {
+ uid = *conf.User
}
if uid > 0 {
diff --git a/store.go b/store.go
index 7c4806f..4d52cbe 100644
--- a/store.go
+++ b/store.go
@@ -22,6 +22,7 @@ import (
"log/slog"
"os"
"path/filepath"
+ "runtime"
"strings"
tpl "text/template"
)
@@ -41,7 +42,11 @@ func WriteAd(dir string, ad *Ad, template string) error {
return err
}
- ad.Text = strings.ReplaceAll(ad.Text, "
", "\n")
+ if runtime.GOOS == "windows" {
+ ad.Text = strings.ReplaceAll(ad.Text, "
", "\r\n")
+ } else {
+ ad.Text = strings.ReplaceAll(ad.Text, "
", "\n")
+ }
tmpl, err := tpl.New("adlisting").Parse(template)
if err != nil {