From cec89d9e844dc39b84778e1b88e74e23f9ca2e6a Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Mon, 8 Sep 2025 16:04:35 +0200 Subject: WIP generic Delicious API compatible --- Types/Constants.h | 9 +++++++++ Types/Constants.m | 8 ++++++++ Types/SocialSite.h | 7 ++++--- Types/SocialSite.m | 22 ++++++++++------------ 4 files changed, 31 insertions(+), 15 deletions(-) create mode 100644 Types/Constants.h create mode 100644 Types/Constants.m (limited to 'Types') diff --git a/Types/Constants.h b/Types/Constants.h new file mode 100644 index 0000000..75dd240 --- /dev/null +++ b/Types/Constants.h @@ -0,0 +1,9 @@ + +#pragma mark - Tag QSObject Constants + +extern NSString *const kTagType; + +extern NSString *const kTagSiteField; +extern NSString *const kTagUsernameField; +extern NSString *const kTagHostField; +extern NSString *const kTagIdentifierField; diff --git a/Types/Constants.m b/Types/Constants.m new file mode 100644 index 0000000..9300b54 --- /dev/null +++ b/Types/Constants.m @@ -0,0 +1,8 @@ +#pragma mark - Tag QSObject Constants + +NSString *const kTagType = @"qs.tag.socialbookmark"; + +NSString *const kTagSiteField = @"source.site"; +NSString *const kTagUsernameField = @"source.username"; +NSString *const kTagHostField = @"source.host"; +NSString *const kTagIdentifierField = @"source.identifier"; diff --git a/Types/SocialSite.h b/Types/SocialSite.h index f2c848c..130bc40 100644 --- a/Types/SocialSite.h +++ b/Types/SocialSite.h @@ -11,13 +11,14 @@ typedef NS_ENUM(NSInteger, SocialSite) { SocialSiteDelicious = 0, SocialSiteMagnolia = 1, SocialSitePinboard = 2, - SocialSiteLinkding = 3 + SocialSiteLinkding = 3, + SocialSiteSelfHostedDeliciousCompatible = 4 }; @interface SocialSiteHelper : NSObject + (NSString *)displayNameForSite:(SocialSite)site; + (NSString *)siteURLForSite:(SocialSite)site; -+ (NSString *)reversedSiteURLForSite:(SocialSite)site; ++ (BOOL)hasVariableHost:(SocialSite)site; -@end \ No newline at end of file +@end diff --git a/Types/SocialSite.m b/Types/SocialSite.m index d002235..b73533f 100644 --- a/Types/SocialSite.m +++ b/Types/SocialSite.m @@ -17,6 +17,8 @@ return @"Pinboard"; case SocialSiteLinkding: return @"Linkding"; + case SocialSiteSelfHostedDeliciousCompatible: + return @"Self-Hosted (Delicious Compatible)"; default: return @"Unknown"; } @@ -30,6 +32,7 @@ return @"ma.gnolia.com"; case SocialSitePinboard: return @"pinboard.in"; + case SocialSiteSelfHostedDeliciousCompatible: case SocialSiteLinkding: return @""; // Will be provided by user as host default: @@ -37,19 +40,14 @@ } } -+ (NSString *)reversedSiteURLForSite:(SocialSite)site { ++ (BOOL)hasVariableHost:(SocialSite)site { switch (site) { - case SocialSiteDelicious: - return @"us.icio.del"; - case SocialSiteMagnolia: - return @"com.gnolia.ma"; - case SocialSitePinboard: - return @"in.pinboard"; - case SocialSiteLinkding: - return @"linkding"; // Generic identifier - default: - return nil; + case SocialSiteSelfHostedDeliciousCompatible: + case SocialSiteLinkding: + return YES; + default: + return NO; } } -@end \ No newline at end of file +@end -- cgit