callsigns 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 40bb89bbeb3ae1c6eea7e3b670aa871ed2af2440667c4008df238ff81b968f36
4
+ data.tar.gz: 0cf240565f265cfd5ec8b4c93b9f918f02955b57b97ff69cbb79174ee09272cc
5
+ SHA512:
6
+ metadata.gz: 3002b6db6f583806c75230348a47836303b97a174ca0371f718fbf89f53927996a22a44aebf0d32656cf2b95d1cf6513fff03d6caaeb0e6ad4b503dce11f864e
7
+ data.tar.gz: 9233745dac86bc682e30d5f1ed9a6a55059e408ebecf4c7050e2325d910910dc23cf0967d650a83702064766b1bd9cd99ccf215c18150b206bdfaac05d361333
data/bin/callsigns_cli ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'callsigns'
4
+ require 'HTTParty'
5
+ require 'json'
6
+
7
+ Callsigns::CLI.main(ARGV[0])
8
+
@@ -0,0 +1,46 @@
1
+ class Callsigns::Callook
2
+ def self.lookup(callsign)
3
+ callook_uri = "https://callook.info/" + callsign.downcase + "/json"
4
+ response = HTTParty.get(callook_uri).parsed_response
5
+ if response["status"] == "INVALID"
6
+ puts "Invalid callsign. Please make sure you entered a valid USA-Based callsign"
7
+ elsif response["status"] == "VALID"
8
+ puts "Callsign " + callsign.upcase + " is found!\n\n"
9
+ if response["previous"]["callsign"] == callsign.upcase
10
+ puts "ATTENTION: The callsign " + callsign.upcase + " is out-of-date. Operator changed callsign to: " + response["current"]["callsign"]
11
+ end
12
+ puts response["current"]["callsign"]
13
+ puts "========="
14
+ puts "Type: " + response["type"].capitalize
15
+ puts "Name: " + response["name"].upcase
16
+ if response["type"] == "CLUB"
17
+ puts "Trustee: " + response["trustee"]["name"].upcase + " [" + response["trustee"]["callsign"] + "]"
18
+ elsif response["type"] == "PERSON"
19
+ puts "Class: " + response["current"]["operClass"]
20
+ end
21
+ puts "Address: " + response["address"]["line1"]
22
+ puts " " + response["address"]["line2"]
23
+ puts " " + response["address"]["attn"] if response["address"]["attn"] != ""
24
+ puts "Previous callsign: " + response["previous"]["callsign"]
25
+
26
+ radioid_dmr_uri = "https://database.radioid.net/api/dmr/user/?callsign=" + callsign.downcase
27
+ response = HTTParty.get(radioid_dmr_uri).parsed_response
28
+ puts "DMR IDs: " + response["count"].to_s + " IDs found"
29
+ if response["count"].to_i > 0
30
+ response["results"].each do |r|
31
+ puts " " + r["id"].to_s
32
+ end
33
+ end
34
+
35
+ radioid_nxdn_uri = "https://database.radioid.net/api/nxdn/user/?callsign=" + callsign.downcase
36
+ response = HTTParty.get(radioid_nxdn_uri).parsed_response
37
+ puts "NXDN IDs: " + response["count"].to_s + " IDs found"
38
+ if response["count"].to_i > 0
39
+ response["results"].each do |r|
40
+ puts " " + r["id"].to_s
41
+ end
42
+ end
43
+
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,70 @@
1
+ class Callsigns::CLI
2
+
3
+ def self.greet
4
+ puts "\n\nWelcome to [Callsigns by AL0Y]"
5
+ puts "This is an interactive server to search information of ham radio operators"
6
+ puts "by their callsign [only USA-based], DMR ID or NXDN ID"
7
+ help
8
+ end
9
+
10
+
11
+ def self.help
12
+ puts "\n\nAvilable commands:\n"
13
+ puts " Lookup [callsign] - Gives information about the given callsign"
14
+ puts " As of now, the callsign must be USA-Based."
15
+ puts " DMR [number] - Gives information about a DMR ID\n "
16
+ puts " NXDN [number] - Gives information about a NXDN ID"
17
+ puts " HELP or ? - Shows this command list"
18
+ puts " Version - Shows the current version for this server"
19
+ puts " Bye - Disconnect from the Callsigns server and"
20
+ puts " return to node."
21
+
22
+ end
23
+
24
+ def self.goodbye
25
+ puts "Thanks for using Callsigns by AL0Y. 73 de AL0Y\n\n"
26
+ end
27
+
28
+ def self.menu
29
+ input = nil
30
+ while input != "bye"
31
+ puts "\nPlease enter a command, or type ? for a list of commands>"
32
+ input = STDIN.gets.chomp.downcase
33
+
34
+ if input == "bye"
35
+ goodbye
36
+
37
+ elsif input == "version"
38
+ puts "Callsigns by AL0Y - Version:" + Callsigns::VERSION.to_s
39
+
40
+ elsif input == "?" || input == "help"
41
+ help
42
+
43
+ elsif input.split(" ").count == 2 && input.split(" ")[0] == "lookup"
44
+ lookup_callsign = input.split(" ")[1]
45
+ puts "Getting information for " + lookup_callsign.to_s + "\n..."
46
+ Callsigns::Callook.lookup(lookup_callsign)
47
+ elsif input.split(" ").count == 2 && input.split(" ")[0] == "dmr"
48
+ dmr_id = input.split(" ")[1]
49
+ puts "Getting information for " + dmr_id.to_s
50
+ Callsigns::RadioID.dmr(dmr_id)
51
+
52
+ elsif input.split(" ").count == 2 && input.split(" ")[0] == "nxdn"
53
+ nxdn_id = input.split(" ")[1]
54
+ puts "Getting information for " + nxdn_id.to_s
55
+ Callsigns::RadioID.nxdn(nxdn_id)
56
+
57
+ else
58
+ puts "Unknown command!"
59
+ end
60
+
61
+ end
62
+ end
63
+
64
+ def self.main(args)
65
+ current_user = args
66
+ greet
67
+ menu
68
+ end
69
+
70
+ end
@@ -0,0 +1,44 @@
1
+ class Callsigns::RadioID
2
+ def self.dmr(id)
3
+ radioid_dmr_uri = "https://database.radioid.net/api/dmr/user/?id=" + id.to_s
4
+ response = HTTParty.get(radioid_dmr_uri).parsed_response
5
+ if response["count"].to_i == 1
6
+ puts "DMR ID " + id.to_s + " is found!\n\n"
7
+ puts "DMR: " + response["results"][0]["id"].to_s
8
+ puts "========="
9
+ puts "Callsign: " + response["results"][0]["callsign"].upcase
10
+ puts "Name: " + response["results"][0]["fname"] + " " + + response["results"][0]["surname"]
11
+ puts "City: " + response["results"][0]["city"]
12
+ puts "State: " + response["results"][0]["state"]
13
+ puts "Country: " + response["results"][0]["country"]
14
+
15
+ if ["A", "K", "N", "W"].include? response["results"][0]["callsign"][0]
16
+ puts "\nFor more information about this operator, enter [Lookup " + response["results"][0]["callsign"].upcase + "]"
17
+ end
18
+ else
19
+ puts id.to_s + " is not a valid DMR ID."
20
+ end
21
+ end
22
+
23
+
24
+ def self.nxdn(id)
25
+ radioid_nxdn_uri = "https://database.radioid.net/api/nxdn/user/?id=" + id.to_s
26
+ response = HTTParty.get(radioid_nxdn_uri).parsed_response
27
+ if response["count"].to_i > 0 && response["results"][0]["id"].to_s == id.to_s
28
+ puts "NXDN ID " + id.to_s + " is found!\n\n"
29
+ puts "NXDN: " + response["results"][0]["id"].to_s
30
+ puts "========="
31
+ puts "Callsign: " + response["results"][0]["callsign"].upcase
32
+ puts "Name: " + response["results"][0]["fname"] + " " + + response["results"][0]["surname"]
33
+ puts "City: " + response["results"][0]["city"]
34
+ puts "State: " + response["results"][0]["state"]
35
+ puts "Country: " + response["results"][0]["country"]
36
+
37
+ if ["A", "K", "N", "W"].include? response["results"][0]["callsign"][0]
38
+ puts "\nFor more information about this operator, enter [Lookup " + response["results"][0]["callsign"].upcase + "]"
39
+ end
40
+ else
41
+ puts id.to_s + " is not a valid NXDN ID."
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,3 @@
1
+ module Callsigns
2
+ VERSION = "1.1.4"
3
+ end
data/lib/callsigns.rb ADDED
@@ -0,0 +1,4 @@
1
+ require_relative './callsigns/version'
2
+ require_relative './callsigns/radioid'
3
+ require_relative './callsigns/callook'
4
+ require_relative './callsigns/cli'
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: callsigns
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.4
5
+ platform: ruby
6
+ authors:
7
+ - Aly Badawy
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-01-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.5'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 2.5.1
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '2.5'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.5.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: httparty
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.18'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.18.1
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.18'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.18.1
53
+ - !ruby/object:Gem::Dependency
54
+ name: json
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '2.5'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 2.5.1
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '2.5'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 2.5.1
73
+ - !ruby/object:Gem::Dependency
74
+ name: httparty
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.18'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 0.18.1
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.18'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 0.18.1
93
+ description: A CLI to search hams by callsigns
94
+ email: aly@al0y.com
95
+ executables:
96
+ - callsigns_cli
97
+ extensions: []
98
+ extra_rdoc_files: []
99
+ files:
100
+ - bin/callsigns_cli
101
+ - lib/callsigns.rb
102
+ - lib/callsigns/callook.rb
103
+ - lib/callsigns/cli.rb
104
+ - lib/callsigns/radioid.rb
105
+ - lib/callsigns/version.rb
106
+ homepage: https://rubygems.org/gems/callsigns
107
+ licenses:
108
+ - MIT
109
+ metadata: {}
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ requirements: []
125
+ rubygems_version: 3.1.4
126
+ signing_key:
127
+ specification_version: 4
128
+ summary: Lookup hams by callsigns
129
+ test_files: []