all repos

rss-tools @ 70f8cb68d68020ffbcd4b0b5d602cefaa36e5a2a

get rss feed from sources that(i need and) dont provide one

rss-tools/main.go (view raw)

Oleksandr Smirnov Oleksandr Smirnov
olexsmir@gmail.com
add twtich souce, 9 days ago
1
package main
2
3
import (
4
	"context"
5
	"flag"
6
	"log/slog"
7
	"os"
8
9
	"go.etcd.io/bbolt"
10
	"olexsmir.xyz/rss-tools/app"
11
	"olexsmir.xyz/rss-tools/sources/moviefeed"
12
	"olexsmir.xyz/rss-tools/sources/musicfeed"
13
	"olexsmir.xyz/rss-tools/sources/telegram"
14
	"olexsmir.xyz/rss-tools/sources/twitch"
15
	"olexsmir.xyz/rss-tools/sources/weather"
16
	"olexsmir.xyz/rss-tools/sources/ztoe"
17
)
18
19
func main() {
20
	var cfgPath, dbPath string
21
	flag.StringVar(&cfgPath, "config", "./config.json", "Path to config file")
22
	flag.StringVar(&dbPath, "db", "./db", "Path to local database")
23
	flag.Parse()
24
25
	if err := run(context.Background(), cfgPath, dbPath); err != nil {
26
		slog.Error("fatal", "err", err)
27
		os.Exit(1)
28
	}
29
}
30
31
func run(ctx context.Context, cfgPath, dbPath string) error {
32
	db, err := bbolt.Open(dbPath, 0o600, nil)
33
	if err != nil {
34
		return err
35
	}
36
	defer db.Close()
37
38
	cfg, err := app.NewConfig(cfgPath)
39
	if err != nil {
40
		return err
41
	}
42
43
	app := app.New(cfg, db)
44
	_ = ztoe.Register(app)
45
	_ = telegram.Register(app)
46
	_ = moviefeed.Register(app)
47
	_ = musicfeed.Register(app)
48
	_ = weather.Register(app)
49
	_ = twitch.Register(app)
50
51
	return app.Start(ctx)
52
}