Restrict Feedbin to a maximum of 1 concurrent connection to keep us under Feedbin's 250 requests per second rate limit
This commit is contained in:
parent
51c2527da2
commit
60895fc7fa
@ -179,7 +179,7 @@ public final class Account: DisplayNameProvider, UnreadCountProvider, Container,
|
|||||||
return delegate.supportsSubFolders
|
return delegate.supportsSubFolders
|
||||||
}
|
}
|
||||||
|
|
||||||
init?(dataFolder: String, type: AccountType, accountID: String, transport: Transport = URLSession.webserviceTransport()) {
|
init?(dataFolder: String, type: AccountType, accountID: String, transport: Transport? = nil) {
|
||||||
|
|
||||||
switch type {
|
switch type {
|
||||||
case .onMyMac:
|
case .onMyMac:
|
||||||
|
@ -6,6 +6,10 @@
|
|||||||
// Copyright © 2019 Ranchero Software, LLC. All rights reserved.
|
// Copyright © 2019 Ranchero Software, LLC. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
// Feedbin currently has a maximum of 250 requests per second. If you begin to receive
|
||||||
|
// HTTP Response Codes of 403, you have exceeded this limit. Wait 5 minutes and your
|
||||||
|
// IP address will become unblocked and you can use the service again.
|
||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
import RSWeb
|
import RSWeb
|
||||||
|
|
||||||
|
@ -41,8 +41,31 @@ final class FeedbinAccountDelegate: AccountDelegate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
init(transport: Transport) {
|
init(transport: Transport?) {
|
||||||
caller = FeedbinAPICaller(transport: transport)
|
|
||||||
|
if transport != nil {
|
||||||
|
|
||||||
|
caller = FeedbinAPICaller(transport: transport!)
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
let sessionConfiguration = URLSessionConfiguration.default
|
||||||
|
sessionConfiguration.requestCachePolicy = .reloadIgnoringLocalCacheData
|
||||||
|
sessionConfiguration.timeoutIntervalForRequest = 60.0
|
||||||
|
sessionConfiguration.httpShouldSetCookies = false
|
||||||
|
sessionConfiguration.httpCookieAcceptPolicy = .never
|
||||||
|
sessionConfiguration.httpMaximumConnectionsPerHost = 1
|
||||||
|
sessionConfiguration.httpCookieStorage = nil
|
||||||
|
sessionConfiguration.urlCache = nil
|
||||||
|
|
||||||
|
if let userAgentHeaders = UserAgent.headers() {
|
||||||
|
sessionConfiguration.httpAdditionalHeaders = userAgentHeaders
|
||||||
|
}
|
||||||
|
|
||||||
|
caller = FeedbinAPICaller(transport: URLSession(configuration: sessionConfiguration))
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var refreshProgress = DownloadProgress(numberOfTasks: 0)
|
var refreshProgress = DownloadProgress(numberOfTasks: 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user