diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-09-10 11:32:28 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-09-10 11:32:28 +0200 |
| commit | c791858db3de3568f0ea2839c79b360a0dfb15ab (patch) | |
| tree | 7cf50c93cdf03075d10c14c8ad1f7a646b2a05c7 /QSThingsPlugin/Parsers | |
Initial commit
Diffstat (limited to 'QSThingsPlugin/Parsers')
| -rw-r--r-- | QSThingsPlugin/Parsers/QSThingsAreasParser.h | 4 | ||||
| -rw-r--r-- | QSThingsPlugin/Parsers/QSThingsAreasParser.m | 33 | ||||
| -rw-r--r-- | QSThingsPlugin/Parsers/QSThingsProjectsParser.h | 4 | ||||
| -rw-r--r-- | QSThingsPlugin/Parsers/QSThingsProjectsParser.m | 42 | ||||
| -rw-r--r-- | QSThingsPlugin/Parsers/QSThingsTasksParser.h | 4 | ||||
| -rw-r--r-- | QSThingsPlugin/Parsers/QSThingsTasksParser.m | 43 |
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 |