Initial commit

This commit is contained in:
Tha_14
2024-02-22 21:43:11 +02:00
commit 1b96a031d2
1108 changed files with 157706 additions and 0 deletions

View File

@ -0,0 +1,77 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
#import "OCTDefaultFileStorage.h"
@interface OCTDefaultFileStorage ()
@property (copy, nonatomic) NSString *saveFileName;
@property (copy, nonatomic) NSString *baseDirectory;
@property (copy, nonatomic) NSString *temporaryDirectory;
@end
@implementation OCTDefaultFileStorage
#pragma mark - Lifecycle
- (instancetype)initWithBaseDirectory:(NSString *)baseDirectory temporaryDirectory:(NSString *)temporaryDirectory
{
return [self initWithToxSaveFileName:nil baseDirectory:baseDirectory temporaryDirectory:temporaryDirectory];
}
- (instancetype)initWithToxSaveFileName:(NSString *)saveFileName
baseDirectory:(NSString *)baseDirectory
temporaryDirectory:(NSString *)temporaryDirectory
{
self = [super init];
if (! self) {
return nil;
}
if (! saveFileName) {
saveFileName = @"save";
}
self.saveFileName = [saveFileName stringByAppendingString:@".tox"];
self.baseDirectory = baseDirectory;
self.temporaryDirectory = temporaryDirectory;
return self;
}
#pragma mark - OCTFileStorageProtocol
- (NSString *)pathForToxSaveFile
{
return [self.baseDirectory stringByAppendingPathComponent:self.saveFileName];
}
- (NSString *)pathForDatabase
{
return [self.baseDirectory stringByAppendingPathComponent:@"database"];
}
- (NSString *)pathForDatabaseEncryptionKey
{
return [self.baseDirectory stringByAppendingPathComponent:@"database.encryptionkey"];
}
- (NSString *)pathForDownloadedFilesDirectory
{
return [self.baseDirectory stringByAppendingPathComponent:@"files"];
}
- (NSString *)pathForUploadedFilesDirectory
{
return [self.baseDirectory stringByAppendingPathComponent:@"files"];
}
- (NSString *)pathForTemporaryFilesDirectory
{
return self.temporaryDirectory;
}
@end

View File

@ -0,0 +1,51 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
#import "OCTManagerConfiguration.h"
#import "OCTDefaultFileStorage.h"
static NSString *const kDefaultBaseDirectory = @"me.dvor.objcTox";
@implementation OCTManagerConfiguration
#pragma mark - Class methods
+ (instancetype)defaultConfiguration
{
OCTManagerConfiguration *configuration = [OCTManagerConfiguration new];
NSString *baseDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
baseDirectory = [baseDirectory stringByAppendingPathComponent:kDefaultBaseDirectory];
[[NSFileManager defaultManager] createDirectoryAtPath:baseDirectory
withIntermediateDirectories:YES
attributes:nil
error:nil];
configuration.fileStorage = [[OCTDefaultFileStorage alloc] initWithBaseDirectory:baseDirectory
temporaryDirectory:NSTemporaryDirectory()];
configuration.options = [OCTToxOptions new];
configuration.importToxSaveFromPath = nil;
configuration.useFauxOfflineMessaging = YES;
return configuration;
}
#pragma mark - NSCopying
- (id)copyWithZone:(NSZone *)zone
{
OCTManagerConfiguration *configuration = [[[self class] allocWithZone:zone] init];
configuration.fileStorage = self.fileStorage;
configuration.options = [self.options copy];
configuration.importToxSaveFromPath = [self.importToxSaveFromPath copy];
configuration.useFauxOfflineMessaging = self.useFauxOfflineMessaging;
return configuration;
}
@end