Use shpub to send micropub when no file is specified
This commit is contained in:
parent
745da46fb6
commit
aecf1fd6b3
54
main.go
54
main.go
|
@ -10,6 +10,7 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
"os/exec"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
@ -31,27 +32,36 @@ func init() {
|
||||||
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
log.SetFlags(log.LstdFlags | log.Lshortfile)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func micropub(name, content, server string) error {
|
||||||
|
var args []string
|
||||||
|
if server != "" {
|
||||||
|
args = append(args, "-s", server)
|
||||||
|
}
|
||||||
|
args = append(args, "-d", "article", "--html", "--json", name, content)
|
||||||
|
cmd := exec.Command("shpub", args...)
|
||||||
|
cmd.Stdout = os.Stdout
|
||||||
|
cmd.Stderr = os.Stderr
|
||||||
|
return cmd.Run()
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
u, err := url.Parse(os.Args[1])
|
u, err := url.Parse(os.Args[1])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
filename := os.Args[2]
|
|
||||||
|
var filename string
|
||||||
|
outputFile := false
|
||||||
|
if len(os.Args) >= 3 {
|
||||||
|
filename = os.Args[2]
|
||||||
|
outputFile = true
|
||||||
|
}
|
||||||
|
|
||||||
re, err := regexp.Compile(`<span class="next-entry"></span>`)
|
re, err := regexp.Compile(`<span class="next-entry"></span>`)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
f, err := forceCreate(filename)
|
|
||||||
|
|
||||||
data, err := ioutil.ReadAll(f)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
f.Close()
|
|
||||||
|
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
items, err := getEntriesForFeed(u)
|
items, err := getEntriesForFeed(u)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -63,16 +73,39 @@ func main() {
|
||||||
|
|
||||||
summary := getSummary(monday, items)
|
summary := getSummary(monday, items)
|
||||||
|
|
||||||
|
if outputFile {
|
||||||
|
_, err = buf.Write([]byte(`<span class="next-entry"></span>`))
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = outputEntries(summary, &buf)
|
err = outputEntries(summary, &buf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if outputFile {
|
||||||
|
f, err := forceCreate(filename)
|
||||||
|
|
||||||
|
data, err := ioutil.ReadAll(f)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
f.Close()
|
||||||
|
|
||||||
output := re.ReplaceAll(data, buf.Bytes())
|
output := re.ReplaceAll(data, buf.Bytes())
|
||||||
err = ioutil.WriteFile(filename, output, 0666)
|
err = ioutil.WriteFile(filename, output, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
err = micropub(summary.Name, buf.String(), "p83.nl")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getSummary(monday time.Time, items []microsub.Item) Summary {
|
func getSummary(monday time.Time, items []microsub.Item) Summary {
|
||||||
|
@ -146,6 +179,7 @@ func outputEntries(summary Summary, w io.Writer) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = t.Execute(w, summary)
|
err = t.Execute(w, summary)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
<span class="next-entry"></span>
|
|
||||||
<div class="h-entry">
|
|
||||||
<h2 class="p-name">{{ .Name }}</h2>
|
|
||||||
{{ range $k, $items := .Grouped }}
|
{{ range $k, $items := .Grouped }}
|
||||||
<h3>{{ index $.PostTypes $k }}</h3>
|
<h3>{{ index $.PostTypes $k }}</h3>
|
||||||
<ul class="{{ $k }}">
|
<ul class="{{ $k }}">
|
||||||
|
@ -19,7 +16,8 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{{ if .Checkin }}
|
{{ if .Checkin }}
|
||||||
<li><a href="{{ .URL }}">Checkin at {{ .Checkin.Name }} in {{ .Checkin.Locality }}, {{ .Checkin.Region }}</a></li>
|
<li><a href="{{ .URL }}">Checkin at {{ .Checkin.Name }} in {{ .Checkin.Locality }}
|
||||||
|
, {{ .Checkin.Region }}</a></li>
|
||||||
{{ else if .Content }}
|
{{ else if .Content }}
|
||||||
<li><a href="{{ .URL }}">{{ .Content.Text }}</a></li>
|
<li><a href="{{ .URL }}">{{ .Content.Text }}</a></li>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
|
@ -29,4 +27,3 @@
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
|
Loading…
Reference in New Issue
Block a user