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.
|
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
|
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",
|
"ZorgServer": "https://example-pleroma.net",
|
||||||
"ZorgClientID": "aqwfgqubvqerb348hü13vhnrqvqerg1ü3ohrgvqervq",
|
"ZorgClientID": "default",
|
||||||
"ZorgClientSecret": "qergerinqieorjhgqrijhg+3higqirgqirjgqerjgqq",
|
"ZorgClientSecret": "default",
|
||||||
"ZorgUname": "johndoe",
|
"ZorgUname": "johndoe",
|
||||||
"ZorgPass" : "lalalalalalalala",
|
"ZorgPass" : "lalalalalalalala",
|
||||||
"ZorgInterval": 7200
|
"ZorgInterval": 7200
|
||||||
|
|
25
env.go
25
env.go
|
@ -1,11 +1,15 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/mattn/go-mastodon"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ZorgConfig is the configuration of Zorg.
|
// ZorgConfig is the configuration of Zorg.
|
||||||
|
@ -40,6 +44,27 @@ func init() {
|
||||||
|
|
||||||
Zint = time.Duration(time.Duration(ZorgConfig.ZorgInterval) * time.Second)
|
Zint = time.Duration(time.Duration(ZorgConfig.ZorgInterval) * time.Second)
|
||||||
|
|
||||||
|
ZorgCreateToken()
|
||||||
|
|
||||||
log.Println("Inizialized ZORG")
|
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"
|
"os"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"regexp"
|
||||||
|
|
||||||
"github.com/mmcdole/gofeed"
|
"github.com/mmcdole/gofeed"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -49,7 +51,10 @@ func forwardLastFeed(url string) {
|
||||||
|
|
||||||
if time.Since(postAge) < Zint {
|
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)
|
log.Println("New content from: ", feed.Title, b.Title, feed.Description)
|
||||||
} else {
|
} else {
|
||||||
log.Println("No new content from: ", feed.Title, feed.Description)
|
log.Println("No new content from: ", feed.Title, feed.Description)
|
||||||
|
@ -104,3 +109,11 @@ func fileByLines(filename string) (blurls []string) {
|
||||||
return
|
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
|
go 1.13
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/grokify/html-strip-tags-go v0.0.1
|
||||||
github.com/mattn/go-mastodon v0.0.4
|
github.com/mattn/go-mastodon v0.0.4
|
||||||
github.com/mmcdole/gofeed v1.0.0
|
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/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 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
|
||||||
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
|
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-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.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
|
||||||
github.com/mattn/go-isatty v0.0.7/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