forked from wzdnzd/ShadowsocksX-NG-R
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSubscribeManager.swift
More file actions
74 lines (70 loc) · 2.24 KB
/
SubscribeManager.swift
File metadata and controls
74 lines (70 loc) · 2.24 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
//
// SubscribeManager.swift
// ShadowsocksX-NG
//
// Created by 秦宇航 on 2017/6/19.
// Copyright © 2017年 qiuyuzhou. All rights reserved.
//
import Foundation
class SubscribeManager:NSObject{
static let instance:SubscribeManager = SubscribeManager()
var subscribes:[Subscribe]
var subscribesDefault : [[String: AnyObject]]
let defaults = UserDefaults.standard
fileprivate override init() {
subscribes = []
subscribesDefault = [[:]]
if let subscribesDefault = defaults.array(forKey: "Subscribes") {
for value in subscribesDefault{
subscribes.append(Subscribe.fromDictionary(value as! [String : AnyObject]))
}
}
}
func addSubscribe(oneSubscribe: Subscribe) -> Bool {
for (index, value) in subscribes.enumerated() {
if Subscribe.isSame(source: oneSubscribe, target: value) {
return true
}
if value.isExist(oneSubscribe) {
subscribes.replaceSubrange(Range(index..<index + 1), with: [oneSubscribe])
return true
}
}
subscribes.append(oneSubscribe)
return true
}
func deleteSubscribe(atIndex: Int) -> Bool {
subscribes.remove(at: atIndex)
return true
}
func save() {
defaults.set(subscribesToDefaults(data: subscribes), forKey: "Subscribes")
}
fileprivate func subscribesToDefaults(data: [Subscribe]) -> [[String: AnyObject]]{
var ret : [[String: AnyObject]] = []
for value in data {
ret.append(Subscribe.toDictionary(value))
}
return ret
}
fileprivate func DefaultsToSubscribes(data:[[String: AnyObject]]) -> [Subscribe] {
var ret : [Subscribe] = []
for value in data{
ret.append(Subscribe.fromDictionary(value))
}
return ret
}
func updateAllServerFromSubscribe(auto: Bool){
if !auto{
subscribes.forEach{ value in
value.updateServerFromFeed()
}
}else{
for value in subscribes{
if value.getAutoUpdateEnable(){
value.updateServerFromFeed()
}
}
}
}
}