Revision: 22559
          http://sourceforge.net/p/bibdesk/svn/22559
Author:   hofman
Date:     2018-09-05 21:13:58 +0000 (Wed, 05 Sep 2018)
Log Message:
-----------
Don't add Url field in web parsers only when auto removing remote URL fields

Modified Paths:
--------------
    trunk/bibdesk/BDSKArxivParser.m
    trunk/bibdesk/BDSKAsynchronousWebParser.m
    trunk/bibdesk/BDSKCOinSParser.m
    trunk/bibdesk/BDSKIACRParser.m
    trunk/bibdesk/BDSKMathSciNetParser.m
    trunk/bibdesk/BDSKNumdamParser.m
    trunk/bibdesk/BDSKProjectEuclidParser.m
    trunk/bibdesk/BDSKSpringerParser.m
    trunk/bibdesk/BDSKZentralblattParser.m

Modified: trunk/bibdesk/BDSKArxivParser.m
===================================================================
--- trunk/bibdesk/BDSKArxivParser.m     2018-09-05 06:30:35 UTC (rev 22558)
+++ trunk/bibdesk/BDSKArxivParser.m     2018-09-05 21:13:58 UTC (rev 22559)
@@ -153,7 +153,9 @@
     AGRegex *journalRegex3 = [AGRegex 
regexWithPattern:@"(.+[^0-9])([0-9]+):(.*),([0-9]{4})"
                                                options:AGRegexMultiline];
     
-    BOOL addLinkedFiles = NO == [[NSUserDefaults standardUserDefaults] 
boolForKey:BDSKUseLocalUrlAndUrlKey];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    BOOL addLinkedFiles = NO == [sud boolForKey:BDSKUseLocalUrlAndUrlKey];
+    BOOL addUrlField = addLinkedFiles == NO || [sud 
boolForKey:BDSKAutomaticallyConvertURLFieldsKey] == NO || [sud 
boolForKey:BDSKRemoveConvertedRemoteURLFieldsKey] == NO;
     
     NSMutableArray *items = [NSMutableArray arrayWithCapacity:0];
     
@@ -185,7 +187,8 @@
                 // fix relative urls
                 if (NO == [string containsString:@"://"])
                     string = [[NSURL URLWithString:string relativeToURL:url] 
absoluteString];
-                [pubFields setValue:string forKey:BDSKUrlString];
+                if (addUrlField)
+                    [pubFields setValue:string forKey:BDSKUrlString];
                 if (addLinkedFiles)
                     [pubFiles addObject:[BDSKLinkedFile 
linkedFileWithURLString:string]];
             }
@@ -199,7 +202,8 @@
                 // fix relative urls
                 if (NO == [string containsString:@"://"])
                     string = [[NSURL URLWithString:string relativeToURL:url] 
absoluteString];
-                [pubFields setValue:string forKey:BDSKUrlString];
+                if (addUrlField)
+                    [pubFields setValue:string forKey:BDSKUrlString];
                 if (addLinkedFiles)
                     [pubFiles addObject:[BDSKLinkedFile 
linkedFileWithURLString:string]];
             }

Modified: trunk/bibdesk/BDSKAsynchronousWebParser.m
===================================================================
--- trunk/bibdesk/BDSKAsynchronousWebParser.m   2018-09-05 06:30:35 UTC (rev 
22558)
+++ trunk/bibdesk/BDSKAsynchronousWebParser.m   2018-09-05 21:13:58 UTC (rev 
22559)
@@ -158,11 +158,13 @@
     NSArray *bibtexItems = [self itemsFromBibTeXString:bibtexString 
error:outError];
     BibItem *bibtexItem;
     
-    if ([[download contextInfo] isKindOfClass:[NSString class]] &&
-        (bibtexItem = [bibtexItems firstObject]) &&
-        [NSString isEmptyString:[bibtexItem valueOfField:BDSKUrlString 
inherit:NO]]) {
-        [bibtexItem setField:BDSKUrlString toValue:[download contextInfo]];
-        if (NO == [[NSUserDefaults standardUserDefaults] 
boolForKey:BDSKUseLocalUrlAndUrlKey])
+    if ([[download contextInfo] isKindOfClass:[NSString class]] && (bibtexItem 
= [bibtexItems firstObject])) {
+        NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+        BOOL addLinkedFiles = NO == [sud boolForKey:BDSKUseLocalUrlAndUrlKey];
+        BOOL addUrlField = addLinkedFiles == NO || [sud 
boolForKey:BDSKAutomaticallyConvertURLFieldsKey] == NO || [sud 
boolForKey:BDSKRemoveConvertedRemoteURLFieldsKey] == NO;
+        if (addUrlField && [NSString isEmptyString:[bibtexItem 
valueOfField:BDSKUrlString inherit:NO]])
+            [bibtexItem setField:BDSKUrlString toValue:[download contextInfo]];
+        if (addLinkedFiles)
             [bibtexItem addFileForURL:[NSURL URLWithString:[download 
contextInfo]] autoFile:NO runScriptHook:NO];
     }
     

Modified: trunk/bibdesk/BDSKCOinSParser.m
===================================================================
--- trunk/bibdesk/BDSKCOinSParser.m     2018-09-05 06:30:35 UTC (rev 22558)
+++ trunk/bibdesk/BDSKCOinSParser.m     2018-09-05 21:13:58 UTC (rev 22559)
@@ -115,8 +115,10 @@
        NSString * auLast = nil;
        NSString * auInitials = nil;
        NSString * auSuffix = nil;
-    BOOL addLinkedFiles = NO == [[NSUserDefaults standardUserDefaults] 
boolForKey:BDSKUseLocalUrlAndUrlKey];
-
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    BOOL addLinkedFiles = NO == [sud boolForKey:BDSKUseLocalUrlAndUrlKey];
+    BOOL addUrlField = addLinkedFiles == NO || [sud 
boolForKey:BDSKAutomaticallyConvertURLFieldsKey] == NO || [sud 
boolForKey:BDSKRemoveConvertedRemoteURLFieldsKey] == NO;
+    
        for (NSString *component in components) {
                NSArray * keyValue = [component 
componentsSeparatedByString:@"="];
                if ([keyValue count] == 2 ) {
@@ -222,7 +224,8 @@
                                NSURL * URL = [NSURL URLWithString:value];
                                if (URL && ([@"http" 
isCaseInsensitiveEqual:[URL scheme]] || [@"https" isCaseInsensitiveEqual:[URL 
scheme]])) {
                     // add http/https URLs to the FileView items only, rather 
than the Url field. This lets us process more than one of them and avoid adding 
links to library catalogue entries to the BibTeX record. I haven't seen other 
usable URL typese yet.
-                    [fieldsDict setObject:value forKey:BDSKUrlString];
+                    if (addUrlField)
+                        [fieldsDict setObject:value forKey:BDSKUrlString];
                     if (addLinkedFiles)
                         [files addObject:[BDSKLinkedFile linkedFileWithURL:URL 
delegate:nil]];
                                }

Modified: trunk/bibdesk/BDSKIACRParser.m
===================================================================
--- trunk/bibdesk/BDSKIACRParser.m      2018-09-05 06:30:35 UTC (rev 22558)
+++ trunk/bibdesk/BDSKIACRParser.m      2018-09-05 21:13:58 UTC (rev 22559)
@@ -71,7 +71,9 @@
        // is this a search results page or an individual article?
        BOOL isSearch = [[[url path] lowercaseString] 
isEqualToString:@"/cgi-bin/search.pl"];
     
-    BOOL addLinkedFiles = NO == [[NSUserDefaults standardUserDefaults] 
boolForKey:BDSKUseLocalUrlAndUrlKey];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    BOOL addLinkedFiles = NO == [sud boolForKey:BDSKUseLocalUrlAndUrlKey];
+    BOOL addUrlField = addLinkedFiles == NO || [sud 
boolForKey:BDSKAutomaticallyConvertURLFieldsKey] == NO || [sud 
boolForKey:BDSKRemoveConvertedRemoteURLFieldsKey] == NO;
     
        // construct the source item(s) to parse
        NSArray *sources = nil;
@@ -133,7 +135,8 @@
                if ((year != nil) && (reportNum != nil)) {
                        [pubFields setValue:year forKey:BDSKYearString];
                        [pubFields setValue:[NSString 
stringWithFormat:@"Cryptology ePrint Archive, Report %@/%@", year, reportNum] 
forKey:@"Note"];
-            [pubFields setValue:[urlBaseString 
stringByAppendingPathExtension:@"pdf"] forKey:BDSKUrlString];
+            if (addUrlField)
+                [pubFields setValue:[urlBaseString 
stringByAppendingPathExtension:@"pdf"] forKey:BDSKUrlString];
             if (addLinkedFiles) {
                 filesArray = [NSArray arrayWithObjects:
                     [BDSKLinkedFile linkedFileWithURL:[NSURL 
URLWithString:[urlBaseString stringByAppendingPathExtension:@"pdf"]] 
delegate:nil],

Modified: trunk/bibdesk/BDSKMathSciNetParser.m
===================================================================
--- trunk/bibdesk/BDSKMathSciNetParser.m        2018-09-05 06:30:35 UTC (rev 
22558)
+++ trunk/bibdesk/BDSKMathSciNetParser.m        2018-09-05 21:13:58 UTC (rev 
22559)
@@ -164,11 +164,15 @@
     }
     
     // Add a URL reference pointing to the review's web page to each record.
-    BOOL addLinkedFiles = [[NSUserDefaults standardUserDefaults] 
boolForKey:BDSKUseLocalUrlAndUrlKey];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    BOOL addLinkedFiles = NO == [sud boolForKey:BDSKUseLocalUrlAndUrlKey];
+    BOOL addUrlField = addLinkedFiles == NO || [sud 
boolForKey:BDSKAutomaticallyConvertURLFieldsKey] == NO || [sud 
boolForKey:BDSKRemoveConvertedRemoteURLFieldsKey] == NO;
+    
     for (BibItem * item in results) {
         NSString * MRNumber = [[item citeKey] stringByRemovingPrefix:@"MR"];
         NSURL * MRItemURL = [[NSURL URLWithString:[@"/mathscinet-getitem?mr=" 
stringByAppendingString:MRNumber] relativeToURL:[download URL]] absoluteURL];
-        [item setField:BDSKUrlString toValue:[MRItemURL absoluteString]];
+        if (addUrlField)
+            [item setField:BDSKUrlString toValue:[MRItemURL absoluteString]];
         if (addLinkedFiles)
             [item addFileForURL:MRItemURL autoFile:NO runScriptHook:NO];
     }

Modified: trunk/bibdesk/BDSKNumdamParser.m
===================================================================
--- trunk/bibdesk/BDSKNumdamParser.m    2018-09-05 06:30:35 UTC (rev 22558)
+++ trunk/bibdesk/BDSKNumdamParser.m    2018-09-05 21:13:58 UTC (rev 22559)
@@ -148,7 +148,10 @@
     if ([results count] > 0 && content != nil) {
         // add Numdam URL to item's own record
         BibItem *item = [results objectAtIndex:0];
-        BOOL addLinkedFiles = NO == [[NSUserDefaults standardUserDefaults] 
boolForKey:BDSKUseLocalUrlAndUrlKey];
+        NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+        BOOL addLinkedFiles = NO == [sud boolForKey:BDSKUseLocalUrlAndUrlKey];
+        BOOL addUrlField = addLinkedFiles == NO || [sud 
boolForKey:BDSKAutomaticallyConvertURLFieldsKey] == NO || [sud 
boolForKey:BDSKRemoveConvertedRemoteURLFieldsKey] == NO;
+        
         if ( [item isKindOfClass:[BibItem class]] ) {
             AGRegex * URLRegexp = [AGRegex regexWithPattern:@"stable URL: 
([a-zA-Z0-9:=./?_]*)" options:0];
             AGRegexMatch * match = [URLRegexp findInString:content];
@@ -156,7 +159,7 @@
                 NSString * myURLString = [[match string] 
substringWithRange:[match rangeAtIndex:1]];
                 NSURL * myURL = [NSURL URLWithString:myURLString];
                 if ( myURL ) {
-                    if ([NSString isEmptyString:[(BibItem *)item 
valueOfField:BDSKUrlString]])
+                    if ( addUrlField && [NSString isEmptyString:[(BibItem 
*)item valueOfField:BDSKUrlString]] )
                         [(BibItem *)item setField:BDSKUrlString toValue:[myURL 
absoluteString]];
                     if ( addLinkedFiles && [(BibItem *)item 
addFileForURL:myURL autoFile:NO runScriptHook:NO] ) {
                         NSIndexSet * indexSet = [NSIndexSet 
indexSetWithIndex:[(BibItem *)item countOfFiles] - 1];

Modified: trunk/bibdesk/BDSKProjectEuclidParser.m
===================================================================
--- trunk/bibdesk/BDSKProjectEuclidParser.m     2018-09-05 06:30:35 UTC (rev 
22558)
+++ trunk/bibdesk/BDSKProjectEuclidParser.m     2018-09-05 21:13:58 UTC (rev 
22559)
@@ -139,7 +139,10 @@
     if ([results count] > 0 && myIdentifier != nil) {
         // add Project Euclid URL to item's own record
         NSObject * item = [results objectAtIndex:0];
-        BOOL addLinkedFiles = NO == [[NSUserDefaults standardUserDefaults] 
boolForKey:BDSKUseLocalUrlAndUrlKey];
+        NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+        BOOL addLinkedFiles = NO == [sud boolForKey:BDSKUseLocalUrlAndUrlKey];
+        BOOL addUrlField = addLinkedFiles == NO || [sud 
boolForKey:BDSKAutomaticallyConvertURLFieldsKey] == NO || [sud 
boolForKey:BDSKRemoveConvertedRemoteURLFieldsKey] == NO;
+        
         if ( [item isKindOfClass:[BibItem class]] ) {
             AGRegex * ProjectEuclidRegexp = [AGRegex 
regexWithPattern:@"(https://projecteuclid.org/[^\\s]*)" options:0];
             AGRegexMatch * match = [ProjectEuclidRegexp 
findInString:myIdentifier];
@@ -147,7 +150,7 @@
             NSURL * projectEuclidURL = [NSURL 
URLWithString:projectEuclidURLString];
             
             if ( projectEuclidURL ) {
-                if ([NSString isEmptyString:[(BibItem *)item 
valueOfField:BDSKUrlString]])
+                if ( addUrlField && [NSString isEmptyString:[(BibItem *)item 
valueOfField:BDSKUrlString]] )
                     [(BibItem *)item setField:BDSKUrlString 
toValue:[projectEuclidURL absoluteString]];
                 if ( addLinkedFiles && [(BibItem *)item 
addFileForURL:projectEuclidURL autoFile:NO runScriptHook:NO] ) {
                     NSIndexSet * indexSet = [NSIndexSet 
indexSetWithIndex:[(BibItem *)item countOfFiles] - 1];

Modified: trunk/bibdesk/BDSKSpringerParser.m
===================================================================
--- trunk/bibdesk/BDSKSpringerParser.m  2018-09-05 06:30:35 UTC (rev 22558)
+++ trunk/bibdesk/BDSKSpringerParser.m  2018-09-05 21:13:58 UTC (rev 22559)
@@ -156,13 +156,18 @@
                }
     }
        
-    if ([[NSUserDefaults standardUserDefaults] 
boolForKey:BDSKUseLocalUrlAndUrlKey]) {
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    BOOL addLinkedFiles = NO == [sud boolForKey:BDSKUseLocalUrlAndUrlKey];
+    BOOL addUrlField = addLinkedFiles == NO || [sud 
boolForKey:BDSKAutomaticallyConvertURLFieldsKey] == NO || [sud 
boolForKey:BDSKRemoveConvertedRemoteURLFieldsKey] == NO;
+    
+    if (addUrlField) {
         // URL to PDF
         [pubFields setValue:[[NSURL URLWithString:@"fulltext.pdf" 
relativeToURL:url] absoluteString] forKey:BDSKUrlString];
         // URL to DOI
         if (doi != nil)
             [pubFields setValue:[@"https://doi.org/"; 
stringByAppendingString:doi] forKey:BDSKDoiString];
-    } else {
+    }
+    if (addLinkedFiles) {
         filesArray = [NSMutableArray array];
         // URL to PDF
         [filesArray addObject:[BDSKLinkedFile linkedFileWithURL:[NSURL 
URLWithString:@"fulltext.pdf" relativeToURL:url] delegate:nil]];

Modified: trunk/bibdesk/BDSKZentralblattParser.m
===================================================================
--- trunk/bibdesk/BDSKZentralblattParser.m      2018-09-05 06:30:35 UTC (rev 
22558)
+++ trunk/bibdesk/BDSKZentralblattParser.m      2018-09-05 21:13:58 UTC (rev 
22559)
@@ -143,7 +143,9 @@
     bibTeXString = [umlautFixer replaceWithString:@"{$1}" 
inString:bibTeXString];
     
     NSArray * results = [parser itemsFromBibTeXString:bibTeXString 
error:outError];
-    BOOL addLinkedFiles = NO == [[NSUserDefaults standardUserDefaults] 
boolForKey:BDSKUseLocalUrlAndUrlKey];
+    NSUserDefaults *sud = [NSUserDefaults standardUserDefaults];
+    BOOL addLinkedFiles = NO == [sud boolForKey:BDSKUseLocalUrlAndUrlKey];
+    BOOL addUrlField = addLinkedFiles == NO || [sud 
boolForKey:BDSKAutomaticallyConvertURLFieldsKey] == NO || [sud 
boolForKey:BDSKRemoveConvertedRemoteURLFieldsKey] == NO;
     
     // Add a URL reference to the review's web page to each record.
     for (BibItem * item in results) {
@@ -150,7 +152,7 @@
         NSString * ZMathID = [item citeKey];
         NSString * ZMathItemURLString = [NSString 
stringWithFormat:@"https://zbmath.org/search/?format=complete&q=an:%@";, 
ZMathID];
         NSURL * ZMathItemURL = [NSURL URLWithString:ZMathItemURLString];
-        if ([NSString isEmptyString:[item valueOfField:BDSKUrlString]])
+        if ( addUrlField && [NSString isEmptyString:[item 
valueOfField:BDSKUrlString]] )
             [item setField:BDSKUrlString toValue:ZMathItemURLString];
         if (addLinkedFiles)
             [item addFileForURL:ZMathItemURL autoFile:NO runScriptHook:NO];

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


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to