Compare commits
6 Commits
Author | SHA1 | Date |
---|---|---|
Uriel Fanelli | df43f758e9 | |
Uriel Fanelli | 0eb73d75a8 | |
Uriel Fanelli | 2ea8bf202b | |
Uriel Fanelli | 6978287809 | |
Uriel Fanelli | 1b2fa17294 | |
Uriel Fanelli | 5644a4fb3c |
37
README.md
37
README.md
|
@ -12,47 +12,18 @@ go build
|
|||
|
||||
```
|
||||
|
||||
in order to use it, you need app credentials for your specific pod, which you obtain when you register your app.
|
||||
In case your pod makes it too complicate, you can just use the following go :
|
||||
|
||||
```
|
||||
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/mattn/go-mastodon"
|
||||
)
|
||||
|
||||
func main() {
|
||||
app, err := mastodon.RegisterApp(context.Background(), &mastodon.AppConfig{
|
||||
Server: "https://yourpodhere.put",
|
||||
ClientName: "client-name",
|
||||
Scopes: "read write follow",
|
||||
Website: "whereyour application has a website",
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
fmt.Printf("client-id : %s\n", app.ClientID)
|
||||
fmt.Printf("client-secret: %s\n", app.ClientSecret)
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
just change the values to match your pod, and it will print a new ClientID and ClientSecret.
|
||||
|
||||
Once you have both, you can just feed the zorg configuration file, which is a JSON, and change his name as zorg.conf
|
||||
Just leave "default" on your ClientID and secret.
|
||||
|
||||
```
|
||||
{
|
||||
"ZorgServer":"https://example-pleroma.net",
|
||||
"ZorgClientID": "aqwfgqubvqerb348hü13vhnrqvqerg1ü3ohrgvqervq",
|
||||
"ZorgClientSecret": "qergerinqieorjhgqrijhg+3higqirgqirjgqerjgqq",
|
||||
"ZorgServer": "https://example-pleroma.net",
|
||||
"ZorgClientID": "default",
|
||||
"ZorgClientSecret": "default",
|
||||
"ZorgUname": "johndoe",
|
||||
"ZorgPass" : "lalalalalalalala",
|
||||
"ZorgInterval": 7200
|
||||
|
|
25
env.go
25
env.go
|
@ -1,11 +1,15 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/mattn/go-mastodon"
|
||||
)
|
||||
|
||||
// ZorgConfig is the configuration of Zorg.
|
||||
|
@ -40,6 +44,27 @@ func init() {
|
|||
|
||||
Zint = time.Duration(time.Duration(ZorgConfig.ZorgInterval) * time.Second)
|
||||
|
||||
ZorgCreateToken()
|
||||
|
||||
log.Println("Inizialized ZORG")
|
||||
|
||||
}
|
||||
|
||||
func ZorgCreateToken() {
|
||||
app, err := mastodon.RegisterApp(context.Background(), &mastodon.AppConfig{
|
||||
Server: ZorgConfig.ZorgServer,
|
||||
ClientName: "Zorg",
|
||||
Scopes: "read write follow",
|
||||
Website: ZorgConfig.ZorgServer,
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
ZorgConfig.ZorgClientID = app.ClientID
|
||||
ZorgConfig.ZorgClientSecret = app.ClientSecret
|
||||
|
||||
fmt.Printf("Zorg new client-id : %s\n", ZorgConfig.ZorgClientID)
|
||||
fmt.Printf("Zorg new client-secret: %s\n", ZorgConfig.ZorgClientSecret)
|
||||
|
||||
}
|
||||
|
|
15
feed.go
15
feed.go
|
@ -7,6 +7,8 @@ import (
|
|||
"os"
|
||||
"time"
|
||||
|
||||
"regexp"
|
||||
|
||||
"github.com/mmcdole/gofeed"
|
||||
)
|
||||
|
||||
|
@ -49,7 +51,10 @@ func forwardLastFeed(url string) {
|
|||
|
||||
if time.Since(postAge) < Zint {
|
||||
|
||||
postOnMastodon(b.Link, "["+feed.Title+"] "+b.Title)
|
||||
TheTitle := fmt.Sprintf("[News from %s ]", html2text(feed.Title))
|
||||
TheBody := fmt.Sprintf("%s\n\n %s\n\n %s\n\n%s\n ", html2text(b.Author.Name), html2text(b.Title), html2text(b.Description), b.Link)
|
||||
|
||||
postOnMastodon(TheBody, TheTitle)
|
||||
log.Println("New content from: ", feed.Title, b.Title, feed.Description)
|
||||
} else {
|
||||
log.Println("No new content from: ", feed.Title, feed.Description)
|
||||
|
@ -104,3 +109,11 @@ func fileByLines(filename string) (blurls []string) {
|
|||
return
|
||||
|
||||
}
|
||||
|
||||
func html2text(html string) string {
|
||||
|
||||
re := regexp.MustCompile(`<[^>]*>`)
|
||||
|
||||
return re.ReplaceAllString(html, "")
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
https://keinpfusch.net/feed.xml
|
||||
https://git.keinpfusch.net/loweel/zangtumb.rss
|
||||
https://git.keinpfusch.net/loweel/zoreide.rss
|
||||
https://git.keinpfusch.net/loweel/zorg.rss
|
||||
https://git.keinpfusch.net/loweel/zabov.rss
|
1
go.mod
1
go.mod
|
@ -3,6 +3,7 @@ module zorg
|
|||
go 1.13
|
||||
|
||||
require (
|
||||
github.com/grokify/html-strip-tags-go v0.0.1
|
||||
github.com/mattn/go-mastodon v0.0.4
|
||||
github.com/mmcdole/gofeed v1.0.0
|
||||
)
|
||||
|
|
2
go.sum
2
go.sum
|
@ -8,6 +8,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
|
|||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
||||
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
|
||||
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
||||
github.com/grokify/html-strip-tags-go v0.0.1 h1:0fThFwLbW7P/kOiTBs03FsJSV9RM2M/Q/MOnCQxKMo0=
|
||||
github.com/grokify/html-strip-tags-go v0.0.1/go.mod h1:2Su6romC5/1VXOQMaWL2yb618ARB8iVo6/DR99A6d78=
|
||||
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
||||
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||
github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||
|
|
Loading…
Reference in New Issue