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 +7 -0
- data/bin/callsigns_cli +8 -0
- data/lib/callsigns/callook.rb +46 -0
- data/lib/callsigns/cli.rb +70 -0
- data/lib/callsigns/radioid.rb +44 -0
- data/lib/callsigns/version.rb +3 -0
- data/lib/callsigns.rb +4 -0
- metadata +129 -0
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,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
|
data/lib/callsigns.rb
ADDED
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: []
|