Revision: 27803
          http://sourceforge.net/p/bibdesk/svn/27803
Author:   hofman
Date:     2022-08-14 22:42:44 +0000 (Sun, 14 Aug 2022)
Log Message:
-----------
build dictionaries to save for web icon database, ensures keys used are 
identical

Modified Paths:
--------------
    trunk/bibdesk/BDSKWebIconDatabase.m

Modified: trunk/bibdesk/BDSKWebIconDatabase.m
===================================================================
--- trunk/bibdesk/BDSKWebIconDatabase.m 2022-08-14 17:42:02 UTC (rev 27802)
+++ trunk/bibdesk/BDSKWebIconDatabase.m 2022-08-14 22:42:44 UTC (rev 27803)
@@ -155,36 +155,30 @@
     }
 }
 
-- (void)removePagesWithLimit:(NSTimeInterval)limit {
+- (NSDictionary *)dictionaryWithLimit:(NSTimeInterval)limit {
     NSMutableSet *bookmarkURLs = [NSMutableSet set];
     addAllURLStrings(bookmarkURLs, [[BDSKBookmarkController 
sharedBookmarkController] bookmarkRoot]);
-    NSMutableArray *pagesToRemove = [NSMutableArray array];
-    NSMutableSet *iconsToKeep = [NSMutableSet set];
-    NSMutableSet *iconURLStrings = [NSMutableSet setWithArray:[icons allKeys]];
+    NSSet *iconURLStrings = [NSSet setWithArray:[icons allKeys]];
+    NSMutableDictionary *savedPages = [NSMutableDictionary dictionary];
+    NSMutableDictionary *savedIcons = [NSMutableDictionary dictionary];
     [pages enumerateKeysAndObjectsUsingBlock:^(NSString *key, id obj, BOOL 
*stop){
         NSString *iconURLString;
         if (([bookmarkURLs containsObject:key] || -[[obj 
objectForKey:LASTVISITED_KEY] timeIntervalSinceNow] <= limit) &&
             (iconURLString = [iconURLStrings member:[obj 
objectForKey:ICONURL_KEY]])) {
-            [iconsToKeep addObject:iconURLString];
-            [obj setObject:iconURLString forKey:ICONURL_KEY];
-            NSDate *date = [obj objectForKey:LASTVISITED_KEY];
-            if (date)
-                [obj setObject:date forKey:LASTVISITED_KEY];
-        } else {
-            [pagesToRemove addObject:key];
+            NSDictionary *dict = [[NSDictionary alloc] 
initWithObjectsAndKeys:iconURLString, ICONURL_KEY, [obj 
objectForKey:LASTVISITED_KEY], LASTVISITED_KEY, nil];
+            [savedPages setObject:dict forKey:key];
+            [dict release];
+            [savedIcons setObject:[icons objectForKey:iconURLString] 
forKey:iconURLString];
         }
     }];
-    [iconURLStrings minusSet:iconsToKeep];
-    [pages removeObjectsForKeys:pagesToRemove];
-    [icons removeObjectsForKeys:[iconURLStrings allObjects]];
+    return [NSDictionary dictionaryWithObjectsAndKeys:savedPages, PAGES_KEY, 
savedIcons, ICONS_KEY, VERSION, VERSION_KEY, nil];
 }
 
 - (void)handleApplicationWillTerminate:(NSNotification *)notification {
-    if (icons == nil || pages == nil || [recentIcons count] == 0)
+    if ([recentIcons count] == 0)
         return;
-    [self removePagesWithLimit:7.0 * 86400.0];
     NSURL *dbURL = [self webIconDatabaseURL];
-    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:pages, 
PAGES_KEY, icons, ICONS_KEY, VERSION, VERSION_KEY, nil];
+    NSDictionary *dict = [self dictionaryWithLimit:7.0 * 86400.0];
     NSData *data = [NSPropertyListSerialization dataWithPropertyList:dict 
format:NSPropertyListBinaryFormat_v1_0 options:0 error:NULL];
     [data writeToURL:dbURL atomically:YES];
 }

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to