From 1de45d0c2d1fae919697fcaab3737e88c9ac7448 Mon Sep 17 00:00:00 2001 From: Jeffrey Gentes Date: Sun, 28 Jan 2024 12:58:21 -0500 Subject: [PATCH] 4.10.23 updates --- _locales/en/messages.json | 12 +++ buildform.js | 1 + collections/tng.js | 6 ++ content.js | 14 ++- manifest.json | 2 +- research.js | 221 ++++++++++++++++++++++---------------- 6 files changed, 159 insertions(+), 97 deletions(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 3e146e9..3bac9da 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -141,6 +141,18 @@ "All_Collections": { "message": "All Collections" }, + "Collections": { + "message": "Collections" + }, + "Publications": { + "message": "Publications" + }, + "Holocaust": { + "message": "Holocaust" + }, + "Name_Search": { + "message": "Name Search" + }, "Gravestones": { "message": "Gravestones" }, diff --git a/buildform.js b/buildform.js index bb6ff51..c2fa7d7 100644 --- a/buildform.js +++ b/buildform.js @@ -1894,6 +1894,7 @@ function cleanDate(dateval) { dateval = dateval.replace(/after/i, "After"); dateval = dateval.replace(/from/i, "After"); dateval = dateval.replace(/^in /i, ""); + dateval = dateval.replace(/\s+/g, ' '); if (dateval.contains(".")) { if (dateval.search(/\w\./) !== -1) { dateval = dateval.replace(/\./g,""); diff --git a/collections/tng.js b/collections/tng.js index 0e6e05e..16a060a 100644 --- a/collections/tng.js +++ b/collections/tng.js @@ -68,7 +68,13 @@ function parseTNG(htmlstring, familymembers, relation) { } profiledata["birth"] = parseTNGDate(parsed, "Born"); + if (profiledata["birth"].length === 0) { + profiledata["birth"] = parseTNGDate(parsed, "Birth"); + } profiledata["death"] = parseTNGDate(parsed, "Died"); + if (profiledata["death"].length === 0) { + profiledata["death"] = parseTNGDate(parsed, "Death"); + } var occupation = getTNGFieldText(parsed, "OCCU"); if (occupation !== "") { diff --git a/content.js b/content.js index 352643f..54bb4b0 100644 --- a/content.js +++ b/content.js @@ -49,11 +49,17 @@ function initializeContent() { function runContent() { if (getsettingsdone) { if (tablink.contains("www.geni.com/people/")) { - $($($("#overview_tab_content").find(".flt_r")[0]).find("a")[0]).on('click', function () { - if (addbioonoff) { - addBioButton(); + if ($("#overview_tab_content").length > 0) { + if ($("#overview_tab_content").find(".flt_r").length < 1) { + setTimeout(runContent, 100); + return } - }); + $($($("#overview_tab_content").find(".flt_r")[0]).find("a")[0]).on('click', function () { + if (addbioonoff) { + addBioButton(); + } + }); + } } else if (isGeniProject(tablink)) { if (exportprojectsonoff) { addProjectExportButton(); diff --git a/manifest.json b/manifest.json index 983dc16..0a970bd 100644 --- a/manifest.json +++ b/manifest.json @@ -4,7 +4,7 @@ "short_name": "__MSG_appShortName__", "description": "__MSG_appDesc__", "default_locale": "en", - "version": "4.10.22", + "version": "4.10.23", "icons": { "16": "images/icon16.png", "48": "images/icon48.png", "128": "images/icon128.png" }, diff --git a/research.js b/research.js index 608b1ea..491ef36 100644 --- a/research.js +++ b/research.js @@ -7,29 +7,31 @@ var _ = function(messageName, substitutions) { function buildResearch() { - var fields = "name,first_name,last_name,maiden_name,birth,death,gender"; + let fields = "name,first_name,last_name,maiden_name,birth,death,gender"; chrome.runtime.sendMessage({ method: "GET", action: "xhttp", url: "https://www.geni.com/api/" + focusid + "&fields=" + fields + "&access_token=" + accountinfo.access_token, variable: "" }, function (response) { - var responsedata = JSON.parse(response.source); - focusname = responsedata.name; - var accessdialog = document.querySelector('#useraccess'); - var researchstring = "
" + _("Research_this_Person") + "
" + focusname + "
"; + let responsedata = JSON.parse(response.source); + let focusname = responsedata.name; + let accessdialog = document.querySelector('#useraccess'); + let researchstring = "
" + _("Research_this_Person") + "
" + focusname + "
"; if (exists(responsedata.first_name)) { researchstring += buildAncestry(responsedata); researchstring += buildBillionGraves(responsedata); researchstring += buildFamilySearch(responsedata); + researchstring += buildFilae(responsedata); researchstring += buildFindAGrave(responsedata); researchstring += buildGenealogy(responsedata); + researchstring += buildGeneanet(responsedata); researchstring += buildGeni(responsedata); researchstring += buildGoogle(responsedata); researchstring += buildLegacy(responsedata); researchstring += buildMyHeritage(responsedata); - researchstring += buildRootsWeb(responsedata); - researchstring += buildTributes(responsedata); + researchstring += buildNationalArchive(responsedata); + researchstring += buildYadVashem(responsedata); researchstring += "
" + _("Other_Resources") + "
  • Genealogy Search Engines for the Low Countries
  • "; } else { researchstring = "
    " + _("Unable_to_create_research_links_on_this_profile") + "" @@ -39,12 +41,12 @@ function buildResearch() { $(function () { $('.ctrllink').on('click', function (event) { - var ctrlpressed = (event.ctrlKey || event.metaKey); - var url = $(this).attr('url'); + let ctrlpressed = (event.ctrlKey || event.metaKey); + let url = $(this).attr('url'); chrome.tabs.query({"currentWindow": true, "status": "complete", "windowType": "normal", "active": true}, function (tabs) { - var tab = tabs[0]; + let tab = tabs[0]; tabplacement += 1; - var index = tab.index + tabplacement; + let index = tab.index + tabplacement; chrome.tabs.create({'url': url, active: !ctrlpressed, 'index': index}); }); }); @@ -53,8 +55,8 @@ function buildResearch() { } function buildGoogle(responsedata) { - var query = encodeURIComponent(responsedata.name).replace(/%20/g, "+"); - var researchstring = '
    Google'; + let query = encodeURIComponent(responsedata.name).replace(/%20/g, "+"); + let researchstring = '
    Google'; researchstring += '
  • ' + _("Google_Search") + ' (' + _("NewsPapers") + ')
  • '; researchstring += '
  • ' + _("Google_Search") + ' (' + _("Books") + ')
  • '; researchstring += '
  • ' + _("Google_Search") + ' (' + _("Genealogy") + ')
  • '; @@ -64,8 +66,8 @@ function buildGoogle(responsedata) { } function buildGenealogy(responsedata) { - var lastname = ""; - var firstname = ""; + let lastname = ""; + let firstname = ""; if (responsedata.first_name) { firstname = responsedata.first_name; } @@ -74,8 +76,8 @@ function buildGenealogy(responsedata) { } else if (exists(responsedata.maiden_name)) { lastname = responsedata.maiden_name; } - var query = firstname + " " + lastname; - var researchstring = '
    Genealogy.com'; + let query = firstname + " " + lastname; + let researchstring = '
    Genealogy.com'; researchstring += '
  • Genealogy.com (' + _("Genealogies") + ')
  • '; researchstring += '
  • Genealogy.com (' + _("MessageBoard") + ')
  • '; researchstring += '
    '; @@ -83,16 +85,16 @@ function buildGenealogy(responsedata) { } function buildGeni(responsedata) { - var query = responsedata.name.replace(/ /g, "+"); - var researchstring = '
    Geni'; + let query = responsedata.name.replace(/ /g, "+"); + let researchstring = '
    Geni'; researchstring += '
  • ' + _("Geni_Search") + ' (' + _("Genealogies") + ')
  • '; researchstring += '
    '; return researchstring; } function buildFamilySearch(responsedata) { - var query = 'results?q.givenName=' + wrapEncode(responsedata.first_name.replace("'","")).replace(/%22/g, ""); - var lastname = wrapEncode(responsedata.last_name).replace(/%22/g, ""); + let query = 'results?q.givenName=' + wrapEncode(responsedata.first_name.replace("'","")).replace(/%22/g, ""); + let lastname = wrapEncode(responsedata.last_name).replace(/%22/g, ""); if (exists(responsedata.maiden_name) && responsedata.gender === "female" && responsedata.maiden_name !== responsedata.last_name) { lastname = wrapEncode(responsedata.maiden_name.replace(/'/g,"")).replace(/%22/g, ""); if (exists(responsedata.last_name)) { @@ -117,16 +119,17 @@ function buildFamilySearch(responsedata) { } } query = query.replace(/[\u2018\u2019]/g, "'").replace(/%252C/g, "%2C").replace(/%2520/g, "%20"); - var researchstring = '
    FamilySearch'; - researchstring += '
  • FamilySearch (' + _("Genealogies") + ')
  • '; + let researchstring = '
    FamilySearch'; + researchstring += '
  • FamilySearch (' + _("Collections") + ')
  • '; + researchstring += '
  • FamilySearch (' + _("Genealogies") + ')
  • '; researchstring += '
  • FamilySearch (' + _("Records") + ')
  • '; researchstring += '
    '; return researchstring; } function buildFindAGrave(responsedata) { - var lastname = ""; - var firstname = ""; + let lastname = ""; + let firstname = ""; if (responsedata.first_name) { firstname = wrapEncode(responsedata.first_name.replace(/'/g,"")); } @@ -135,16 +138,26 @@ function buildFindAGrave(responsedata) { } else if (exists(responsedata.maiden_name)) { lastname = wrapEncode(responsedata.maiden_name.replace(/'/g,"")); } - var query = 'https://www.findagrave.com/memorial/search?firstname=' + firstname.replace(/%22/g, "") + '&middlename=&lastname=' + lastname.replace(/%22/g, "") + '&birthyear=&birthyearfilter=&deathyear=&deathyearfilter=&location=&locationId=&memorialid=&datefilter=&orderby=n&includeNickName=true&includeMaidenName=true'; - var researchstring = '
    FindAGrave'; + let query = 'https://www.findagrave.com/memorial/search?firstname=' + firstname.replace(/%22/g, "") + '&middlename=&lastname=' + lastname.replace(/%22/g, "") + '&birthyear=&birthyearfilter=&deathyear=&deathyearfilter=&location=&locationId=&memorialid=&datefilter=&orderby=n&includeNickName=true&includeMaidenName=true'; + if (exists(responsedata.birth)) { + if (exists(responsedata.birth.date) && exists(responsedata.birth.date.year)) { + query += '&birthyearfilter=5&birthyear=' + responsedata.birth.date.year; + } + } + if (exists(responsedata.death)) { + if (exists(responsedata.death.date) && exists(responsedata.death.date.year)) { + query += '&deathyearfilter=5&deathyear=' + responsedata.death.date.year; + } + } + let researchstring = '
    FindAGrave'; researchstring += '
  • FindAGrave (' + _("Gravestones") + ')
  • '; researchstring += '
    '; return researchstring; } function buildBillionGraves(responsedata) { - var lastname = ""; - var firstname = ""; + let lastname = ""; + let firstname = ""; if (responsedata.first_name) { firstname = responsedata.first_name; } @@ -154,7 +167,7 @@ function buildBillionGraves(responsedata) { lastname = responsedata.maiden_name; } //https://billiongraves.com/search/results?given_names=John&family_names=Smith&birth_year=1830&death_year=1880&year_range=5&lim=0&num=10&action=search&exact=false&phonetic=true&record_type=0&country=United+States&state=Arizona&county=0 - var query = 'https://billiongraves.com/search/results?given_names=' + firstname + '&family_names=' + lastname; + let query = 'https://billiongraves.com/search/results?given_names=' + firstname + '&family_names=' + lastname; if (exists(responsedata.birth)) { if (exists(responsedata.birth.date) && exists(responsedata.birth.date.year)) { query += '&birth_year=' + responsedata.birth.date.year; @@ -162,7 +175,7 @@ function buildBillionGraves(responsedata) { } if (exists(responsedata.death)) { if (exists(responsedata.death.location)) { - var location = responsedata.death.location; + let location = responsedata.death.location; if (exists(location.country)) { query += '&country=' + location.country; } @@ -177,15 +190,15 @@ function buildBillionGraves(responsedata) { } query += "&year_range=5&lim=0&num=10&action=search&exact=false&phonetic=true&record_type=0"; - var researchstring = '
    BillionGraves'; + let researchstring = '
    BillionGraves'; researchstring += '
  • BillionGraves (' + _("Gravestones") + ')
  • '; researchstring += '
    '; return researchstring; } -function buildAncestry(responsedata) { - var lastname = ""; - var firstname = ""; +function buildGeneanet(responsedata) { + let lastname = ""; + let firstname = ""; if (responsedata.first_name) { firstname = responsedata.first_name; } @@ -194,16 +207,16 @@ function buildAncestry(responsedata) { } else if (exists(responsedata.maiden_name)) { lastname = responsedata.maiden_name; } - var query = 'https://www.ancestry.com/genealogy/records/results?firstName=' + firstname + '&lastName=' + lastname; - var researchstring = '
    Ancestry'; - researchstring += '
  • Ancestry (' + _("Genealogies") + ')
  • '; + + let researchstring = '
    Geneanet'; + researchstring += '
  • Geneanet (' + _("Records") + ')
  • '; researchstring += '
    '; - return researchstring; + return researchstring } -function buildTributes(responsedata) { - var lastname = ""; - var firstname = ""; +function buildAncestry(responsedata) { + let lastname = ""; + let firstname = ""; if (responsedata.first_name) { firstname = responsedata.first_name; } @@ -212,33 +225,28 @@ function buildTributes(responsedata) { } else if (exists(responsedata.maiden_name)) { lastname = responsedata.maiden_name; } - var daterange = "ALL"; + let query = 'https://www.ancestry.com/genealogy/records/results?firstName=' + firstname + '&lastName=' + lastname; + if (exists(responsedata.birth)) { + if (exists(responsedata.birth.date) && exists(responsedata.birth.date.year)) { + query += '&birthYear=' + responsedata.birth.date.year; + } + } if (exists(responsedata.death)) { if (exists(responsedata.death.date) && exists(responsedata.death.date.year)) { - var year = responsedata.death.date.year; - if (year < 1950) { - daterange = "Range+pre-1950"; - } else if (year > 2009) { - daterange = "Range+2010-Now"; - } else if (year > 1999) { - daterange = "Range+2000-Now"; - } else if (year > 1979) { - daterange = "Range+1980-2000"; - } else if (year > 1949) { - daterange = "Range+1950-1980"; - } + query += '&deathYear=' + responsedata.death.date.year; } } - var query = 'https://www.tributes.com/search/obituaries/?solr=&first=' + firstname + '&last=' + lastname + '&search_type=' + daterange; - var researchstring = '
    Tributes'; - researchstring += '
  • Tributes (' + _("Obituaries") + ')
  • '; + let researchstring = '
    Ancestry'; + researchstring += '
  • Ancestry (' + _("Genealogies") + ')
  • '; + researchstring += '
  • Ancestry (' + _("Collections") + ')
  • '; + researchstring += '
  • Ancestry (' + _("Publications") + ')
  • '; researchstring += '
    '; return researchstring; } function buildLegacy(responsedata) { - var lastname = ""; - var firstname = ""; + let lastname = ""; + let firstname = ""; if (responsedata.first_name) { firstname = responsedata.first_name; } @@ -247,10 +255,10 @@ function buildLegacy(responsedata) { } else if (exists(responsedata.maiden_name)) { lastname = responsedata.maiden_name; } - var daterange = "All"; + let daterange = "All"; if (exists(responsedata.death)) { if (exists(responsedata.death.date) && exists(responsedata.death.date.year)) { - var year = responsedata.death.date.year; + let year = responsedata.death.date.year; if (year > 2015) { daterange = "Last1Yrs"; } else if (year > 2009) { @@ -260,16 +268,40 @@ function buildLegacy(responsedata) { } } } - var query = 'https://www.legacy.com/ns/obitfinder/obituary-search.aspx?daterange=' + daterange + '&firstname=' + firstname + '&lastname=' + lastname + '&countryid=0&stateid=all&affiliateid=all'; - var researchstring = '
    Legacy'; + let query = 'https://www.legacy.com/ns/obitfinder/obituary-search.aspx?daterange=' + daterange + '&firstname=' + firstname + '&lastname=' + lastname + '&countryid=0&stateid=all&affiliateid=all'; + let researchstring = '
    Legacy'; researchstring += '
  • Legacy (' + _("Obituaries") + ')
  • '; researchstring += '
    '; return researchstring; } +function buildFilae(responsedata) { + let lastname = ""; + let firstname = ""; + if (responsedata.first_name) { + firstname = responsedata.first_name; + } + if (exists(responsedata.last_name)) { + lastname = responsedata.last_name; + } else if (exists(responsedata.maiden_name)) { + lastname = responsedata.maiden_name; + } + let query = "ln=" + lastname + "&fn=" + firstname; + if (exists(responsedata.birth)) { + if (exists(responsedata.birth.date) && exists(responsedata.birth.date.year)) { + query += '&ay=' + responsedata.birth.date.year; + } + } + let researchstring = '
    Filae'; + researchstring += '
  • Filae (' + _("Name_Search") + ')
  • '; + researchstring += '
    '; + return researchstring; +} + function buildMyHeritage(responsedata) { - var query = 'qname=Name+fn.' + wrapEncode(responsedata.first_name.replace("'","")).replace(/%22/g, ""); - var lastname = wrapEncode(responsedata.last_name).replace(/%22/g, ""); + let firstname = wrapEncode(responsedata.first_name.replace(/'/g,"")).replace(/%22/g, ""); + let lastname = wrapEncode(responsedata.last_name).replace(/%22/g, ""); + let query = 'qname=Name+fn.' + firstname; query += '%2F3+ln.' + wrapEncode(lastname).replace(/%22/g, ""); if (exists(responsedata.maiden_name) && responsedata.gender === "female" && responsedata.maiden_name !== responsedata.last_name) { query += '%2F' + wrapEncode(responsedata.maiden_name.replace(/'/g,"")).replace(/%22/g, ""); @@ -301,53 +333,58 @@ function buildMyHeritage(responsedata) { i += 1 } query = 'https://www.myheritage.com/research?action=query&exactSearch=0&formId=master&formMode=1&qevents=List&' + query.replace(/[\u2018\u2019]/g, "'").replace(/%252C/g, "%2C").replace(/%2520/g, "%20"); - var researchstring = '
    MyHeritage'; + let researchstring = '
    MyHeritage'; researchstring += '
  • MyHeritage (' + _("All_Collections") + ')
  • '; + researchstring += '
  • MyHeritage (' + _("Name_Search") + ')
  • '; researchstring += '
    '; return researchstring; } -function buildRootsWeb(responsedata) { - var query = 'https://wc.rootsweb.com/search?includedb=&lang=en&ti=&skipdb=&period=All&fuzzy=Y&submit.x=Search&given=' + responsedata.first_name; - var lastname = ""; +function buildNationalArchive(responsedata) { + let lastname = ""; + let firstname = ""; + if (responsedata.first_name) { + firstname = responsedata.first_name; + } if (exists(responsedata.last_name)) { lastname = responsedata.last_name; } else if (exists(responsedata.maiden_name)) { lastname = responsedata.maiden_name; } + let query = "https://aad.archives.gov/aad/free-text-search-results.jsp?cat=all&q=" + firstname + '+' + lastname; + let researchstring = '
    National Archives'; + researchstring += '
  • National Archives (' + _("Name_Search") + ')
  • '; + researchstring += '
    '; + return researchstring; +} - if (exists(responsedata.maiden_name) && exists(responsedata.last_name) && responsedata.gender === "female" && responsedata.maiden_name !== responsedata.last_name) { - query += '&spouse=' + responsedata.last_name; +function buildYadVashem(responsedata) { + // + let lastname = ""; + let firstname = ""; + if (responsedata.first_name) { + firstname = responsedata.first_name; } - query += '&surname=' + lastname; + if (exists(responsedata.last_name)) { + lastname = responsedata.last_name; + } else if (exists(responsedata.maiden_name)) { + lastname = responsedata.maiden_name; + } + let query = "&s_firstName=" + firstname + "&s_lastName=" + lastname; if (exists(responsedata.birth)) { if (exists(responsedata.birth.date) && exists(responsedata.birth.date.year)) { - query += '&brange=5&byear=' + responsedata.birth.date.year; - } - if (exists(responsedata.birth.location)) { - query += '&bplace=' + locationString(responsedata.birth.location).replace(/%20/g,"+"); - } - } - if (exists(responsedata.death)) { - if (exists(responsedata.death.location)) { - query += '&dplace=' + locationString(responsedata.death.location).replace(/%20/g,"+"); - } - if (exists(responsedata.death.date) && exists(responsedata.death.date.year)) { - query += '&drange=5&dyear=' + responsedata.death.date.year; + query += "&s_dateOfBirth=" + responsedata.birth.date.year; } } - - var researchstring = '
    RootsWeb'; - researchstring += '
  • RootsWeb (' + _("Genealogies") + ')
  • '; - - query = 'https://www.ancestry.com/boards/search/results?author=&classification=ALL&keyword=' + responsedata.name.replace(/ /g, "+"); - researchstring += '
  • RootsWeb (' + _("MessageBoard") + ')
  • '; + query = "https://yvng.yadvashem.org/index.html?language=en&advancedSearch=true&s_id=&ln_type=literal&fn_type=literal&cluster=true" + query; + let researchstring = '
    Yan Vashem'; + researchstring += '
  • Yan Vashem (' + _("Holocaust") + ')
  • '; researchstring += '
    '; return researchstring; } function locationString(location) { - var locationset = []; + let locationset = []; if (exists(location.county)) { locationset.push(location.county.replace(/ /g, "%20")); }