Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Script: Delete remaining orphaned ReferenceDocuments #1310

Closed
1 task done
jonkerz opened this issue Jul 6, 2021 · 0 comments
Closed
1 task done

Script: Delete remaining orphaned ReferenceDocuments #1310

jonkerz opened this issue Jul 6, 2021 · 0 comments
Labels

Comments

@jonkerz
Copy link
Member

jonkerz commented Jul 6, 2021

For https://github.com/calacademy-research/antcat-issues/issues/114

Script

EDIT_SUMMARY = 'Delete remaining orphaned `ReferenceDocument`s, see %github1310'
ANTCATBOT = User.find_by!(name: 'AntCatBot')

RequestStore.store[:current_request_uuid] = SecureRandom.uuid
PaperTrail.request.whodunnit = ANTCATBOT.id

class UnusedOrphanCleaner
  def initialize orphaned_document
    @orphaned_document = orphaned_document
  end

  def hardcoded_usage
    ReferenceDocument.where("url LIKE ?", "%antcat.org/documents/#{orphaned_document.id}/%")
  end

  def hardcoded_usage_info
    "hardcoded_usage of #{orphaned_document.id}: #{hardcoded_usage.pluck(:id, :url, :reference_id)}"
  end

  def delete_as_orphaned!
    puts "Deleting orphan #{orphaned_document.id}".green
    orphaned_document.destroy!
  end

  private

  attr_reader :orphaned_document
end

orphaned_documents = ReferenceDocument.left_joins(:reference).where(references: { id: nil })

# Log.
ap orphaned_documents.pluck(:id, :reference_id, :url, :file_file_name)

orphaned_documents.find_each do |orphaned_document|
  cleaner = UnusedOrphanCleaner.new(orphaned_document)

  if cleaner.hardcoded_usage.any?
    puts cleaner.hardcoded_usage_info.yellow

    cleaner.hardcoded_usage.each do |usage|
      puts "usage: #{usage.reference.id}"
    end

    next
  end

  cleaner.delete_as_orphaned!
end; nil

Activity.execute_script_activity User.find_by!(name: 'Fredrik Palmkron'), EDIT_SUMMARY

Output

[
    [ 0] [
        [0] 237,
        [1] nil,
        [2] nil,
        [3] "Bolton_1976_Bull_Br_Mus_(Nat_Hist)_Entomol Ant tribe Tetramoriini.pdf"
    ],
    [ 1] [
        [0] 258,
        [1] nil,
        [2] nil,
        [3] "6446.pdf"
    ],
    [ 2] [
        [0] 593,
        [1] nil,
        [2] nil,
        [3] "5997.pdf"
    ],
    [ 3] [
        [0] 632,
        [1] nil,
        [2] nil,
        [3] "christ_1791-hymenoptera.pdf"
    ],
    [ 4] [
        [0] 840,
        [1] nil,
        [2] nil,
        [3] "5063.pdf"
    ],
    [ 5] [
        [0] 1102,
        [1] nil,
        [2] nil,
        [3] "3775.pdf"
    ],
    [ 6] [
        [0] 1103,
        [1] nil,
        [2] nil,
        [3] "3776.pdf"
    ],
    [ 7] [
        [0] 1312,
        [1] nil,
        [2] nil,
        [3] "3916.pdf"
    ],
    [ 8] [
        [0] 1354,
        [1] nil,
        [2] nil,
        [3] "3951.pdf"
    ],
    [ 9] [
        [0] 1410,
        [1] nil,
        [2] nil,
        [3] "3995.pdf"
    ],
    [10] [
        [0] 1432,
        [1] nil,
        [2] nil,
        [3] "4012.pdf"
    ],
    [11] [
        [0] 1660,
        [1] nil,
        [2] nil,
        [3] "20436.pdf"
    ],
    [12] [
        [0] 1680,
        [1] 126037,
        [2] nil,
        [3] "8320.pdf"
    ],
    [13] [
        [0] 1846,
        [1] nil,
        [2] nil,
        [3] "4628.pdf"
    ],
    [14] [
        [0] 1883,
        [1] nil,
        [2] nil,
        [3] "4667.pdf"
    ],
    [15] [
        [0] 2496,
        [1] nil,
        [2] nil,
        [3] "3702.pdf"
    ],
    [16] [
        [0] 2595,
        [1] nil,
        [2] nil,
        [3] "3620.pdf"
    ],
    [17] [
        [0] 2610,
        [1] nil,
        [2] nil,
        [3] "3635.pdf"
    ],
    [18] [
        [0] 3765,
        [1] nil,
        [2] nil,
        [3] "3536.pdf"
    ],
    [19] [
        [0] 4209,
        [1] nil,
        [2] nil,
        [3] "Solomon_et_al_2008_PLoS_ONE.pdf"
    ],
    [20] [
        [0] 4298,
        [1] nil,
        [2] nil,
        [3] "Cremer_et_al_2008_PLoS_ONE.pdf"
    ],
    [21] [
        [0] 4330,
        [1] nil,
        [2] nil,
        [3] "Dlussky_2008_Vestn_Zool.pdf"
    ],
    [22] [
        [0] 4492,
        [1] nil,
        [2] nil,
        [3] "Kronauer_et_al_2007_BMC_Evol_Biol.pdf"
    ],
    [23] [
        [0] 4645,
        [1] nil,
        [2] nil,
        [3] "Ryder Wilkie_et_al_2010_PLoS_ONE.pdf"
    ],
    [24] [
        [0] 4730,
        [1] nil,
        [2] nil,
        [3] "Tsutsui_et_al_2008_BMCEvolBiol.pdf"
    ],
    [25] [
        [0] 4865,
        [1] nil,
        [2] nil,
        [3] "CatSpeciesGroupTaxa.pdf"
    ],
    [26] [
        [0] 5046,
        [1] nil,
        [2] nil,
        [3] "le_masne_1956__c_r_seances_acad_sci-plagiolepis-grasse-and-plagiolepis-parasites.pdf"
    ],
    [27] [
        [0] 5144,
        [1] nil,
        [2] nil,
        [3] "2593.pdf"
    ],
    [28] [
        [0] 5236,
        [1] nil,
        [2] nil,
        [3] "Werner_&_Wiezik_2007_Acta_Entomol_Mus_Natl_Pragae checklist of Czech and Slovak Formicidae.pdf"
    ],
    [29] [
        [0] 5324,
        [1] nil,
        [2] nil,
        [3] "bakhtiar_-_chiang_2010_serangga-leptogenys-of-sabah.pdf"
    ],
    [30] [
        [0] 5403,
        [1] nil,
        [2] nil,
        [3] "macgown_-_wetterer_2011_psyche-gnamptogenys-triangularis.pdf"
    ],
    [31] [
        [0] 5406,
        [1] nil,
        [2] nil,
        [3] "delsinne_et_al_2011_psyche-oxyepoecus-in-paraguay.pdf"
    ],
    [32] [
        [0] 5457,
        [1] 133008,
        [2] nil,
        [3] "2967.pdf"
    ],
    [33] [
        [0] 5701,
        [1] nil,
        [2] nil,
        [3] "bharti-and-wachkoo_myopias.pdf"
    ],
    [34] [
        [0] 5702,
        [1] nil,
        [2] nil,
        [3] "bharti_-_wachkoo_2012_vestn_zool-myopias-from-india.pdf"
    ],
    [35] [
        [0] 5704,
        [1] 133068,
        [2] nil,
        [3] "csosz_2012_myrmecol_news-taxonomic-errors-caused-by-nematodes.pdf"
    ],
    [36] [
        [0] 5882,
        [1] nil,
        [2] nil,
        [3] "gotwald___barr_1987_insectes_soc_quantitative_studies_on_aenictus.pdf"
    ],
    [37] [
        [0] 5927,
        [1] nil,
        [2] nil,
        [3] "fabricius_1793_entomologica_systematica.pdf"
    ],
    [38] [
        [0] 5928,
        [1] nil,
        [2] nil,
        [3] "christ_1791-hymenoptera.pdf"
    ],
    [39] [
        [0] 5929,
        [1] nil,
        [2] nil,
        [3] "fabricius_1793_entomologica_systematica.pdf"
    ],
    [40] [
        [0] 5930,
        [1] nil,
        [2] nil,
        [3] "christ_1791-hymenoptera.pdf"
    ],
    [41] [
        [0] 5952,
        [1] 142411,
        [2] nil,
        [3] "andre_1881d_ann_soc_entomol_fr_-bull.pdf"
    ],
    [42] [
        [0] 5954,
        [1] 142413,
        [2] nil,
        [3] "andre_1881e_ann_soc_entomol_fr_-bull.pdf"
    ],
    [43] [
        [0] 6143,
        [1] nil,
        [2] nil,
        [3] "borowiec___salata_2013_genus_ants_of_greece_additions_and_corrections.pdf"
    ],
    [44] [
        [0] 6310,
        [1] nil,
        [2] nil,
        [3] "schar___nash_2014_j_evol_biol_myrmica_rubra_microgynes_are_parasites.pdf"
    ],
    [45] [
        [0] 6388,
        [1] nil,
        [2] nil,
        [3] "abdalla_-_cruz_landin_2001_rev_brasil_biol-dufour-glands-hym.pdf"
    ],
    [46] [
        [0] 6422,
        [1] nil,
        [2] nil,
        [3] "lapolla___greenwalt_2015_sociobiology_new_eocene_ants_from_kishenehn_formation.pdf"
    ],
    [47] [
        [0] 6434,
        [1] nil,
        [2] nil,
        [3] "10-1007_s13127-013-0153-3.pdf"
    ],
    [48] [
        [0] 6539,
        [1] nil,
        [2] nil,
        [3] "barden___grimaldi_2016_adaptive_radiation_stem_formicidae.pdf"
    ],
    [49] [
        [0] 6569,
        [1] nil,
        [2] nil,
        [3] "ward_et_al-2016-systematic_entomology.pdf"
    ],
    [50] [
        [0] 6594,
        [1] 142956,
        [2] nil,
        [3] "sarnat_et_al_2016_plos_one_taxonomic_revision_and_microtomography_of_the_pheidole_cervicornis_species_group.pdf"
    ],
    [51] [
        [0] 6671,
        [1] nil,
        [2] nil,
        [3] "10-1080_00222933-2016-1271157.pdf"
    ],
    [52] [
        [0] 6758,
        [1] nil,
        [2] nil,
        [3] "borysenko_pre-print_new_primitive_ants_candian_amber.pdf"
    ],
    [53] [
        [0] 6775,
        [1] nil,
        [2] nil,
        [3] "winged_ants_ocr.pdf"
    ],
    [54] [
        [0] 6828,
        [1] 143149,
        [2] nil,
        [3] "Morice___Durant_1917.pdf"
    ],
    [55] [
        [0] 6869,
        [1] nil,
        [2] nil,
        [3] "Röszler__P._1935.pdf"
    ],
    [56] [
        [0] 6873,
        [1] nil,
        [2] nil,
        [3] "Santschi__F._1934f.pdf"
    ],
    [57] [
        [0] 6903,
        [1] nil,
        [2] nil,
        [3] "Stärcke__A._1944a.pdf"
    ],
    [58] [
        [0] 6907,
        [1] nil,
        [2] nil,
        [3] "Stärcke__A._1935.pdf"
    ],
    [59] [
        [0] 6989,
        [1] nil,
        [2] nil,
        [3] "Lapolla_Barden_2018_Paskapoo_Aneuretine.pdf"
    ],
    [60] [
        [0] 7077,
        [1] 143270,
        [2] nil,
        [3] "Zettel__H.__Laciny__A._et_al._2018._On_the_taxonomy_of_Myrmicaria_in_the_Philippines.pdf"
    ],
    [61] [
        [0] 7101,
        [1] nil,
        [2] nil,
        [3] "59_1_1.pdf"
    ],
    [62] [
        [0] 7585,
        [1] nil,
        [2] nil,
        [3] "cheny_etal_ba_thanacomyrmex.pdf"
    ],
    [63] [
        [0] 7658,
        [1] 143417,
        [2] nil,
        [3] "heterick_shattuck_2011_iridomyrmex.pdf"
    ],
    [64] [
        [0] 7757,
        [1] 143505,
        [2] nil,
        [3] "hvd-32044107210189-1586435938.pdf"
    ],
    [65] [
        [0] 7976,
        [1] 143722,
        [2] nil,
        [3] "prebus_2017_bmcevolbiol_formicidae_temnothorax_phylogeny.pdf"
    ],
    [66] [
        [0] 7978,
        [1] 143724,
        [2] nil,
        [3] "3740-21824-1-pb.pdf"
    ],
    [67] [
        [0] 8118,
        [1] 143868,
        [2] nil,
        [3] "varelahernandez_riquelme_2021_pheidole_mexicanamber.pdf"
    ]
]


Deleting orphan 237
Deleting orphan 258
Deleting orphan 593
Deleting orphan 632
Deleting orphan 840
Deleting orphan 1102
Deleting orphan 1103
Deleting orphan 1312
Deleting orphan 1354
Deleting orphan 1410
Deleting orphan 1432
Deleting orphan 1660
Deleting orphan 1680
Deleting orphan 1846
Deleting orphan 1883
Deleting orphan 2496
Deleting orphan 2595
Deleting orphan 2610
Deleting orphan 3765
Deleting orphan 4209
Deleting orphan 4298
Deleting orphan 4330
Deleting orphan 4492
Deleting orphan 4645
Deleting orphan 4730
Deleting orphan 4865
Deleting orphan 5046
Deleting orphan 5144
Deleting orphan 5236
Deleting orphan 5324
Deleting orphan 5403
Deleting orphan 5406
Deleting orphan 5457
Deleting orphan 5701
Deleting orphan 5702
Deleting orphan 5704
Deleting orphan 5882
Deleting orphan 5927
Deleting orphan 5928
Deleting orphan 5929
Deleting orphan 5930
Deleting orphan 5952
Deleting orphan 5954
Deleting orphan 6143
Deleting orphan 6310
Deleting orphan 6388
Deleting orphan 6422
Deleting orphan 6434
Deleting orphan 6539
Deleting orphan 6569
Deleting orphan 6594
Deleting orphan 6671
Deleting orphan 6758
Deleting orphan 6775
Deleting orphan 6828
Deleting orphan 6869
Deleting orphan 6873
Deleting orphan 6903
Deleting orphan 6907
Deleting orphan 6989
Deleting orphan 7077
Deleting orphan 7101
Deleting orphan 7585
Deleting orphan 7658
Deleting orphan 7757
Deleting orphan 7976
Deleting orphan 7978
Deleting orphan 8118

@jonkerz jonkerz added the script label Jul 6, 2021
@jonkerz jonkerz closed this as completed Jul 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant