-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.go
60 lines (53 loc) · 1.66 KB
/
server.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package main
import (
"github.com/limero/offlinerss/domain"
"github.com/limero/offlinerss/log"
"github.com/limero/offlinerss/server/miniflux"
"github.com/limero/offlinerss/server/newsblur"
)
func getServer(serverConfig domain.ServerConfig) domain.Server {
switch serverConfig.Name {
case domain.ServerMiniflux:
return miniflux.New(serverConfig)
case domain.ServerNewsBlur:
return newsblur.New(serverConfig)
}
return nil
}
func AuthServer(server domain.Server) error {
log.Debug("Logging in to " + string(server.Name()))
return server.Login()
}
func SyncToServer(server domain.Server, syncToActions domain.SyncToActions) error {
log.Info("Syncing changes to " + string(server.Name()))
// TODO: Do these in parallel
if len(syncToActions.Read) > 0 {
log.Debug("Syncing read to " + string(server.Name()))
if err := server.MarkStoriesAsRead(syncToActions.Read); err != nil {
return err
}
}
if len(syncToActions.Unread) > 0 {
log.Debug("Syncing unread to " + string(server.Name()))
if err := server.MarkStoriesAsUnread(syncToActions.Unread); err != nil {
return err
}
}
if len(syncToActions.Starred) > 0 {
log.Debug("Syncing starred to " + string(server.Name()))
if err := server.MarkStoriesAsStarred(syncToActions.Starred); err != nil {
return err
}
}
if len(syncToActions.Unstarred) > 0 {
log.Debug("Syncing unstarred to " + string(server.Name()))
if err := server.MarkStoriesAsUnstarred(syncToActions.Unstarred); err != nil {
return err
}
}
return nil
}
func GetNewFromServer(server domain.Server) (domain.Folders, error) {
log.Info("Retrieving new stories from " + string(server.Name()))
return server.GetFoldersWithStories()
}