parent
b2a4410d6c
commit
8b5b1ddf70
|
@ -34,7 +34,7 @@ import (
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// Version is the version of the command
|
// Version is the version of the command
|
||||||
Version = "0.8.1"
|
Version = "0.8.2"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -503,6 +503,70 @@ func performCommands(sub microsub.Microsub, commands []string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if filetype == "json" {
|
} else if filetype == "json" {
|
||||||
|
var export Export
|
||||||
|
|
||||||
|
f, err := os.Open(filename)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("can't open file %s: %s", filename, err)
|
||||||
|
}
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
err = json.NewDecoder(f).Decode(&export)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("error while reading %s: %s", filename, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
channelMap := make(map[string]microsub.Channel)
|
||||||
|
|
||||||
|
channels, err := sub.ChannelsGetList()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("an error occurred: %s\n", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, c := range channels {
|
||||||
|
channelMap[c.Name] = c
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, c := range export.Channels {
|
||||||
|
uid := ""
|
||||||
|
|
||||||
|
if ch, e := channelMap[c.Name]; !e {
|
||||||
|
channelCreated, err := sub.ChannelsCreate(c.Name)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("An error occurred: %q\n", err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
uid = channelCreated.UID
|
||||||
|
log.Printf("Channel created: %s\n", c.Name)
|
||||||
|
} else {
|
||||||
|
uid = ch.UID
|
||||||
|
}
|
||||||
|
|
||||||
|
feedMap := make(map[string]bool)
|
||||||
|
|
||||||
|
feeds, err := sub.FollowGetList(uid)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("An error occurred: %q\n", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, f := range feeds {
|
||||||
|
feedMap[f.URL] = true
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, feed := range export.Feeds[uid] {
|
||||||
|
|
||||||
|
if _, e := feedMap[string(feed)]; !e {
|
||||||
|
_, err := sub.FollowURL(uid, string(feed))
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("An error occurred: %q\n", err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
log.Printf("Feed followed: %s\n", string(feed))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
log.Fatalf("unsupported filetype %q", filetype)
|
log.Fatalf("unsupported filetype %q", filetype)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user