diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-09-08 10:38:39 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-09-08 10:38:39 +0200 |
| commit | a5e25cc05e5e33e114331cc826211c89adbcfa6a (patch) | |
| tree | 2ea647b5117e5c3b530ec66d4caafd04969e0fbe /QSBookmarkProviderFactory.m | |
| parent | 0f26c5c3b3e606c89724067d4785323de3fee751 (diff) | |
Reorganize code, WIP save for tag handling
Diffstat (limited to 'QSBookmarkProviderFactory.m')
| -rw-r--r-- | QSBookmarkProviderFactory.m | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/QSBookmarkProviderFactory.m b/QSBookmarkProviderFactory.m deleted file mode 100644 index 6fcfdfb..0000000 --- a/QSBookmarkProviderFactory.m +++ /dev/null @@ -1,66 +0,0 @@ -// -// QSBookmarkProviderFactory.m -// QSDeliciousPlugIn -// - -#import "QSBookmarkProviderFactory.h" -#import "QSDeliciousAPIProvider.h" -#import "QSLinkdingProvider.h" -#import "SocialSite.h" - -@interface QSBookmarkProviderFactory () -@property (nonatomic, strong, readwrite) NSArray<id<QSBookmarkProvider>> *providers; -@end - -@implementation QSBookmarkProviderFactory - -+ (instancetype)sharedFactory { - static QSBookmarkProviderFactory *sharedInstance = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - sharedInstance = [[self alloc] init]; - }); - return sharedInstance; -} - -- (instancetype)init { - self = [super init]; - if (self) { - [self setupProviders]; - } - return self; -} - -- (void)setupProviders { - NSMutableArray *mutableProviders = [NSMutableArray array]; - - // Create Pinboard API providers for each supported site - QSDeliciousAPIProvider *deliciousProvider = [[QSDeliciousAPIProvider alloc] initWithSite:SocialSiteDelicious]; - QSDeliciousAPIProvider *magnoliaProvider = [[QSDeliciousAPIProvider alloc] initWithSite:SocialSiteMagnolia]; - QSDeliciousAPIProvider *pinboardProvider = [[QSDeliciousAPIProvider alloc] initWithSite:SocialSitePinboard]; - - // Create Linkding provider - QSLinkdingProvider *linkdingProvider = [[QSLinkdingProvider alloc] init]; - - [mutableProviders addObject:deliciousProvider]; - [mutableProviders addObject:magnoliaProvider]; - [mutableProviders addObject:pinboardProvider]; - [mutableProviders addObject:linkdingProvider]; - - self.providers = [mutableProviders copy]; -} - -- (id<QSBookmarkProvider>)providerForSite:(SocialSite)site username:(NSString *)username password:(NSString *)password host:(NSString *)host { - for (id<QSBookmarkProvider> provider in self.providers) { - if ([provider canHandleSite:site username:username password:password host:host]) { - return provider; - } - } - return nil; -} - -- (NSArray<id<QSBookmarkProvider>> *)allProviders { - return self.providers; -} - -@end |