Skip to content

Commit

Permalink
Fix nerepeaters. (#402)
Browse files Browse the repository at this point in the history
* Fix NE repeaters importer.

* Use a hash instead of an array for import_data results.
  • Loading branch information
pupeno committed Nov 23, 2023
1 parent 28554f9 commit ebe8f43
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 7 deletions.
5 changes: 4 additions & 1 deletion lib/importers/artscipub_importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,10 @@ def import_data

# puts @mocks

[ignored_due_to_source_count, created_or_updated_ids, repeaters_deleted_count]
{created_or_updated_ids: created_or_updated_ids,
ignored_due_to_source_count: ignored_due_to_source_count,
ignored_due_to_invalid_count: 0,
repeaters_deleted_count: repeaters_deleted_count}
end

def get_raw_repeaters
Expand Down
8 changes: 6 additions & 2 deletions lib/importers/importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,12 @@ def initialize(working_directory: nil, logger: nil)

def import
@logger.info "Importing repeaters from #{self.class.source}"
ignored_due_to_source_count, created_or_updated_ids, repeaters_deleted_count = import_data
@logger.info "Done importing from #{self.class.source}. #{created_or_updated_ids.count} created or updated, #{ignored_due_to_source_count} ignored due to source, #{repeaters_deleted_count} deleted."
result = import_data
@logger.info "Done importing from #{self.class.source}:"
@logger.info " #{result[:created_or_updated_ids].count} created or updated"
@logger.info " #{result[:ignored_due_to_source_count] || 0} ignored due to source"
@logger.info " #{result[:ignored_due_to_invalid_count] || 0} ignored due to being invalid"
@logger.info " #{result[:repeaters_deleted_count] || 0} deleted."
end

def self.source
Expand Down
5 changes: 4 additions & 1 deletion lib/importers/irlp_importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,10 @@ def import_data
repeaters_deleted_count = Repeater.where(source: self.class.source).where.not(id: created_or_updated_ids).delete_all
end

[ignored_due_to_source_count, created_or_updated_ids, repeaters_deleted_count]
{created_or_updated_ids: created_or_updated_ids,
ignored_due_to_source_count: ignored_due_to_source_count,
ignored_due_to_invalid_count: 0,
repeaters_deleted_count: repeaters_deleted_count}
end

def import_repeater(raw_repeater)
Expand Down
5 changes: 4 additions & 1 deletion lib/importers/irts_importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,10 @@ def import_data
repeaters_deleted_count = Repeater.where(source: self.class.source).where.not(id: created_or_updated_ids).delete_all
end

[ignored_due_to_source_count, created_or_updated_ids, repeaters_deleted_count]
{created_or_updated_ids: created_or_updated_ids,
ignored_due_to_source_count: ignored_due_to_source_count,
ignored_due_to_invalid_count: 0,
repeaters_deleted_count: repeaters_deleted_count}
end

CHANNEL = 0
Expand Down
13 changes: 12 additions & 1 deletion lib/importers/nerepeaters_importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ def import
csv_file = CSV.table(file_name)

ignored_due_to_source_count = 0
ignored_due_to_invalid_count = 0
created_or_updated_ids = []
repeaters_deleted_count = 0

Expand All @@ -30,6 +31,8 @@ def import
action, imported_repeater = import_repeater(raw_repeater)
if action == :ignored_due_to_source
ignored_due_to_source_count += 1
elsif action == :ignored_due_to_invalid
ignored_due_to_invalid_count += 1
else
created_or_updated_ids << imported_repeater.id
end
Expand All @@ -40,7 +43,7 @@ def import
repeaters_deleted_count = Repeater.where(source: SOURCE).where.not(id: created_or_updated_ids).delete_all
end

@logger.info "Done importing from #{SOURCE}. #{created_or_updated_ids.count} created or updated, #{ignored_due_to_source_count} ignored due to source, #{repeaters_deleted_count} deleted."
@logger.info "Done importing from #{SOURCE}. #{created_or_updated_ids.count} created or updated, #{ignored_due_to_source_count} ignored due to source, #{ignored_due_to_invalid_count} ignored due to being invalid, and #{repeaters_deleted_count} deleted."
end

private
Expand Down Expand Up @@ -124,6 +127,14 @@ def import_repeater(raw_repeater)
return [:ignored_due_to_source, repeater]
end

# Something odd is going on here, NE Repeaters claims this is Yaesu System Fusion, but gives a CTCSS code,
# https://nedecn.org/maine-repeaters/buckfield-streaked-mtn-w1bkw/ and
# https://nedecn.org/maine-repeaters/peru-w1bkw/ seem to point to it being DMR (color code), and
# https://www.qrz.com/db/W1BKW seems to be a person, not a repeater.
if raw_repeater[CALL_SIGN] == "W1BKW" && raw_repeater[MODE].strip == "YSF"
return [:ignored_due_to_invalid, repeater]
end

import_rx_frequency(repeater, raw_repeater)
repeater.region = US_STATES[raw_repeater[STATE]]
repeater.locality = raw_repeater[CITY]
Expand Down
5 changes: 4 additions & 1 deletion lib/importers/wia_importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,10 @@ def import_data
repeaters_deleted_count = Repeater.where(source: self.class.source).where.not(id: created_or_updated_ids).delete_all
end

[ignored_due_to_source_count, created_or_updated_ids, repeaters_deleted_count]
{created_or_updated_ids: created_or_updated_ids,
ignored_due_to_source_count: ignored_due_to_source_count,
ignored_due_to_invalid_count: 0,
repeaters_deleted_count: repeaters_deleted_count}
end

def import_repeater(raw_repeater)
Expand Down

0 comments on commit ebe8f43

Please sign in to comment.