This commit is contained in:
DDIsFriend
2023-08-23 09:24:40 +08:00
parent 6bd037c5dd
commit 63ca919ed5
494 changed files with 35308 additions and 6623 deletions

View File

@@ -0,0 +1,86 @@
//
// Example
// man
//
// Created by man 11/11/2018.
// Copyright © 2020 man. All rights reserved.
//
#import "_HttpDatasource.h"
#import "_NetworkHelper.h"
@implementation _HttpDatasource
+ (instancetype)shared
{
static id sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
- (id)init
{
self = [super init];
if (self) {
self.httpModels = [NSMutableArray arrayWithCapacity:1000 + 100];
}
return self;
}
- (BOOL)addHttpRequset:(_HttpModel*)model
{
if ([model.url.absoluteString isEqualToString:@""]) {
return NO;
}
//url Filter, ignore case
for (NSString *urlString in [[_NetworkHelper shared] ignoredURLs]) {
if ([[model.url.absoluteString lowercaseString] containsString:[urlString lowercaseString]]) {
return NO;
}
}
//Maximum number limit
if (self.httpModels.count >= 1000) {
if ([self.httpModels count] > 0) {
[self.httpModels removeObjectAtIndex:0];
}
}
//detect repeated
__block BOOL isExist = NO;
[self.httpModels enumerateObjectsUsingBlock:^(_HttpModel *obj, NSUInteger index, BOOL *stop) {
if ([obj.requestId isEqualToString:model.requestId]) {
isExist = YES;
}
}];
if (!isExist) {
[self.httpModels addObject:model];
} else {
return NO;
}
return YES;
}
- (void)reset
{
[self.httpModels removeAllObjects];
}
- (void)remove:(_HttpModel *)model
{
[self.httpModels enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(_HttpModel *obj, NSUInteger index, BOOL *stop) {
if ([obj.requestId isEqualToString:model.requestId]) {
[self.httpModels removeObjectAtIndex:index];
}
}];
}
@end