all repos

rss-tools @ a5ac52722b131734c74504b6e6f4d9900536cac7

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
disable weather source, 7 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/ztoe"
16
)
17
18
func main() {
19
	var cfgPath, dbPath string
20
	flag.StringVar(&cfgPath, "config", "./config.json", "Path to config file")
21
	flag.StringVar(&dbPath, "db", "./db", "Path to local database")
22
	flag.Parse()
23
24
	if err := run(context.Background(), cfgPath, dbPath); err != nil {
25
		slog.Error("fatal", "err", err)
26
		os.Exit(1)
27
	}
28
}
29
30
func run(ctx context.Context, cfgPath, dbPath string) error {
31
	db, err := bbolt.Open(dbPath, 0o600, nil)
32
	if err != nil {
33
		return err
34
	}
35
	defer db.Close()
36
37
	cfg, err := app.NewConfig(cfgPath)
38
	if err != nil {
39
		return err
40
	}
41
42
	app := app.New(cfg, db)
43
	_ = ztoe.Register(app)
44
	_ = telegram.Register(app)
45
	_ = moviefeed.Register(app)
46
	_ = musicfeed.Register(app)
47
	_ = twitch.Register(app)
48
49
	return app.Start(ctx)
50
}