Class: Pickynode
- Inherits:
-
Object
- Object
- Pickynode
- Defined in:
- lib/pickynode.rb
Overview
Allows you to easily add/ban/connect/disconnect nodes based on User Agent.
Constant Summary collapse
- VERSION =
'0.2.2'
Instance Method Summary collapse
- #add(filter, limit = nil) ⇒ Object
- #ban(filter) ⇒ Object
- #clear_cache ⇒ Object
- #connect(filter, limit = nil) ⇒ Object
- #disconnect(filter) ⇒ Object
- #display ⇒ Object
- #info ⇒ Object
-
#initialize(opts = {}) ⇒ Pickynode
constructor
A new instance of Pickynode.
- #run ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Pickynode
14 15 16 |
# File 'lib/pickynode.rb', line 14 def initialize(opts = {}) @opts = opts end |
Instance Method Details
#add(filter, limit = nil) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/pickynode.rb', line 18 def add(filter, limit = nil) return unless filter validate_limit(limit) blockchair_addr_types .select { |_, v| v.include?(filter) } .each_with_index do |(k, _), i| break if limit == i run_cmd(%(bitcoin-cli addnode "#{k}" "add")) end end |
#ban(filter) ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/pickynode.rb', line 32 def ban(filter) return unless filter addr_types .select { |_, v| v.include?(filter) } .each do |k, _| u = URI.parse("https://#{k}") run_cmd(%(bitcoin-cli setban "#{u.host}" "add")) end end |
#clear_cache ⇒ Object
85 86 87 88 |
# File 'lib/pickynode.rb', line 85 def clear_cache @addr_types = nil @blockchair_addr_types = nil end |
#connect(filter, limit = nil) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/pickynode.rb', line 43 def connect(filter, limit = nil) return unless filter validate_limit(limit) blockchair_addr_types .select { |_, v| v.include?(filter) } .each_with_index do |(k, _), i| break if limit == i run_cmd(%(bitcoin-cli addnode "#{k}" "onetry")) end end |
#disconnect(filter) ⇒ Object
57 58 59 60 61 62 63 64 65 |
# File 'lib/pickynode.rb', line 57 def disconnect(filter) return unless filter addr_types .select { |_, v| v.include?(filter) } .each do |k, _| run_cmd(%(bitcoin-cli disconnectnode "#{k}")) end end |
#display ⇒ Object
67 68 69 |
# File 'lib/pickynode.rb', line 67 def display ap addr_types end |
#info ⇒ Object
71 72 73 |
# File 'lib/pickynode.rb', line 71 def info ap getinfo end |
#run ⇒ Object
75 76 77 78 79 80 81 82 83 |
# File 'lib/pickynode.rb', line 75 def run add(@opts[:add], @opts[:limit]) connect(@opts[:connect], @opts[:limit]) ban(@opts[:ban]) disconnect(@opts[:disconnect]) display_info end |