summaryrefslogtreecommitdiff
path: root/Types
diff options
context:
space:
mode:
authorRuben Beltran del Rio <git@r.bdr.sh>2025-09-08 10:38:39 +0200
committerRuben Beltran del Rio <git@r.bdr.sh>2025-09-08 10:38:39 +0200
commita5e25cc05e5e33e114331cc826211c89adbcfa6a (patch)
tree2ea647b5117e5c3b530ec66d4caafd04969e0fbe /Types
parent0f26c5c3b3e606c89724067d4785323de3fee751 (diff)
Reorganize code, WIP save for tag handling
Diffstat (limited to 'Types')
-rw-r--r--Types/SocialSite.h23
-rw-r--r--Types/SocialSite.m55
2 files changed, 78 insertions, 0 deletions
diff --git a/Types/SocialSite.h b/Types/SocialSite.h
new file mode 100644
index 0000000..f2c848c
--- /dev/null
+++ b/Types/SocialSite.h
@@ -0,0 +1,23 @@
+//
+// SocialSite.h
+// QSDeliciousPlugIn
+//
+// Social bookmark site enumeration
+//
+
+#import <Foundation/Foundation.h>
+
+typedef NS_ENUM(NSInteger, SocialSite) {
+ SocialSiteDelicious = 0,
+ SocialSiteMagnolia = 1,
+ SocialSitePinboard = 2,
+ SocialSiteLinkding = 3
+};
+
+@interface SocialSiteHelper : NSObject
+
++ (NSString *)displayNameForSite:(SocialSite)site;
++ (NSString *)siteURLForSite:(SocialSite)site;
++ (NSString *)reversedSiteURLForSite:(SocialSite)site;
+
+@end \ No newline at end of file
diff --git a/Types/SocialSite.m b/Types/SocialSite.m
new file mode 100644
index 0000000..d002235
--- /dev/null
+++ b/Types/SocialSite.m
@@ -0,0 +1,55 @@
+//
+// SocialSite.m
+// QSDeliciousPlugIn
+//
+
+#import "SocialSite.h"
+
+@implementation SocialSiteHelper
+
++ (NSString *)displayNameForSite:(SocialSite)site {
+ switch (site) {
+ case SocialSiteDelicious:
+ return @"del.icio.us";
+ case SocialSiteMagnolia:
+ return @"ma.gnolia.com";
+ case SocialSitePinboard:
+ return @"Pinboard";
+ case SocialSiteLinkding:
+ return @"Linkding";
+ default:
+ return @"Unknown";
+ }
+}
+
++ (NSString *)siteURLForSite:(SocialSite)site {
+ switch (site) {
+ case SocialSiteDelicious:
+ return @"del.icio.us";
+ case SocialSiteMagnolia:
+ return @"ma.gnolia.com";
+ case SocialSitePinboard:
+ return @"pinboard.in";
+ case SocialSiteLinkding:
+ return @""; // Will be provided by user as host
+ default:
+ return nil;
+ }
+}
+
++ (NSString *)reversedSiteURLForSite:(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;
+ }
+}
+
+@end \ No newline at end of file