aboutsummaryrefslogtreecommitdiff
path: root/QSThingsPlugin/Parsers
diff options
context:
space:
mode:
Diffstat (limited to 'QSThingsPlugin/Parsers')
-rw-r--r--QSThingsPlugin/Parsers/QSThingsAreasParser.h4
-rw-r--r--QSThingsPlugin/Parsers/QSThingsAreasParser.m33
-rw-r--r--QSThingsPlugin/Parsers/QSThingsProjectsParser.h4
-rw-r--r--QSThingsPlugin/Parsers/QSThingsProjectsParser.m42
-rw-r--r--QSThingsPlugin/Parsers/QSThingsTasksParser.h4
-rw-r--r--QSThingsPlugin/Parsers/QSThingsTasksParser.m43
6 files changed, 130 insertions, 0 deletions
diff --git a/QSThingsPlugin/Parsers/QSThingsAreasParser.h b/QSThingsPlugin/Parsers/QSThingsAreasParser.h
new file mode 100644
index 0000000..74f829b
--- /dev/null
+++ b/QSThingsPlugin/Parsers/QSThingsAreasParser.h
@@ -0,0 +1,4 @@
+@interface QSThingsAreasParser : QSParser
+{
+}
+@end
diff --git a/QSThingsPlugin/Parsers/QSThingsAreasParser.m b/QSThingsPlugin/Parsers/QSThingsAreasParser.m
new file mode 100644
index 0000000..d4f9b5f
--- /dev/null
+++ b/QSThingsPlugin/Parsers/QSThingsAreasParser.m
@@ -0,0 +1,33 @@
+#import "Constants.h"
+#import "QSThingsAreasParser.h"
+#import "SQLHelper.h"
+
+@implementation QSThingsAreasParser
+- (BOOL)validParserForPath:(NSString *)path {
+ return [[path lastPathComponent] isEqualToString:@"main.sqlite"];
+}
+
+- (NSArray *)objectsFromPath:(NSString *)path withSettings:(NSDictionary *)settings {
+ NSString *query = @"SELECT "
+ "uuid, "
+ "title "
+ "FROM TMArea "
+ "ORDER BY title;";
+
+ NSArray *results = [SQLHelper executeSql:query onFile:path];
+
+ NSMutableArray *objects = [NSMutableArray array];
+ [results enumerateObjectsUsingBlock:^(NSDictionary *dictionary, NSUInteger i, BOOL *stop) {
+
+ QSObject *newObject = [QSObject
+ makeObjectWithIdentifier:[dictionary objectForKey:@"uuid"]];
+ [newObject setObject:dictionary forType:kProjectType];
+ [newObject setName:[dictionary objectForKey:@"title"]];
+ [newObject setPrimaryType:kProjectType];
+
+ [objects addObject:newObject];
+ }];
+
+ return objects;
+}
+@end
diff --git a/QSThingsPlugin/Parsers/QSThingsProjectsParser.h b/QSThingsPlugin/Parsers/QSThingsProjectsParser.h
new file mode 100644
index 0000000..cee939d
--- /dev/null
+++ b/QSThingsPlugin/Parsers/QSThingsProjectsParser.h
@@ -0,0 +1,4 @@
+@interface QSThingsProjectsParser : QSParser
+{
+}
+@end
diff --git a/QSThingsPlugin/Parsers/QSThingsProjectsParser.m b/QSThingsPlugin/Parsers/QSThingsProjectsParser.m
new file mode 100644
index 0000000..1a7956e
--- /dev/null
+++ b/QSThingsPlugin/Parsers/QSThingsProjectsParser.m
@@ -0,0 +1,42 @@
+#import "Constants.h"
+#import "QSThingsProjectsParser.h"
+#import "SQLHelper.h"
+
+@implementation QSThingsProjectsParser
+- (BOOL)validParserForPath:(NSString *)path {
+ return [[path lastPathComponent] isEqualToString:@"main.sqlite"];
+}
+
+- (NSArray *)objectsFromPath:(NSString *)path withSettings:(NSDictionary *)settings {
+ NSString *query = @"SELECT "
+ "uuid, "
+ "creationDate, "
+ "status, "
+ "title, "
+ "notes, "
+ "area, "
+ "project "
+ "FROM TMTask "
+ "WHERE trashed = 0 "
+ "AND type = 1 "
+ "AND status < 3 "
+ "ORDER BY title;";
+
+ NSArray *results = [SQLHelper executeSql:query onFile:path];
+
+ NSMutableArray *objects = [NSMutableArray array];
+ [results enumerateObjectsUsingBlock:^(NSDictionary *dictionary, NSUInteger i, BOOL *stop) {
+
+ QSObject *newObject = [QSObject
+ makeObjectWithIdentifier:[dictionary objectForKey:@"uuid"]];
+ [newObject setObject:dictionary forType:kProjectType];
+ [newObject setName:[dictionary objectForKey:@"title"]];
+ [newObject setDetails:[dictionary objectForKey:@"notes"]];
+ [newObject setPrimaryType:kProjectType];
+
+ [objects addObject:newObject];
+ }];
+
+ return objects;
+}
+@end
diff --git a/QSThingsPlugin/Parsers/QSThingsTasksParser.h b/QSThingsPlugin/Parsers/QSThingsTasksParser.h
new file mode 100644
index 0000000..7e3f1f2
--- /dev/null
+++ b/QSThingsPlugin/Parsers/QSThingsTasksParser.h
@@ -0,0 +1,4 @@
+@interface QSThingsTasksParser : QSParser
+{
+}
+@end
diff --git a/QSThingsPlugin/Parsers/QSThingsTasksParser.m b/QSThingsPlugin/Parsers/QSThingsTasksParser.m
new file mode 100644
index 0000000..b29d011
--- /dev/null
+++ b/QSThingsPlugin/Parsers/QSThingsTasksParser.m
@@ -0,0 +1,43 @@
+#import "Constants.h"
+#import "QSThingsTasksParser.h"
+#import "SQLHelper.h"
+#import <os/log.h>
+
+@implementation QSThingsTasksParser
+- (BOOL)validParserForPath:(NSString *)path {
+ return [[path lastPathComponent] isEqualToString:@"main.sqlite"];
+}
+
+- (NSArray *)objectsFromPath:(NSString *)path withSettings:(NSDictionary *)settings {
+ NSString *query = @"SELECT "
+ "uuid, "
+ "creationDate, "
+ "status, "
+ "title, "
+ "notes, "
+ "area, "
+ "project "
+ "FROM TMTask "
+ "WHERE trashed = 0 "
+ "AND type = 0 "
+ "AND status < 3 "
+ "ORDER BY title;";
+
+ NSArray *results = [SQLHelper executeSql:query onFile:path];
+
+ NSMutableArray *objects = [NSMutableArray array];
+ [results enumerateObjectsUsingBlock:^(NSDictionary *dictionary, NSUInteger i, BOOL *stop) {
+
+ QSObject *newObject = [QSObject
+ makeObjectWithIdentifier:[dictionary objectForKey:@"uuid"]];
+ [newObject setObject:dictionary forType:kTaskType];
+ [newObject setName:[dictionary objectForKey:@"title"]];
+ [newObject setDetails:[dictionary objectForKey:@"notes"]];
+ [newObject setPrimaryType:kTaskType];
+
+ [objects addObject:newObject];
+ }];
+
+ return objects;
+}
+@end