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.1.0'
Instance Method Summary collapse
- #add(filter) ⇒ Object
- #ban(filter) ⇒ Object
- #clear_cache ⇒ Object
- #connect(filter) ⇒ Object
- #disconnect(filter) ⇒ Object
- #display ⇒ Object
-
#initialize(opts = {}) ⇒ Pickynode
constructor
A new instance of Pickynode.
- #run ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Pickynode
Returns a new instance of Pickynode.
14 15 16 |
# File 'lib/pickynode.rb', line 14 def initialize(opts = {}) @opts = opts end |
Instance Method Details
#add(filter) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/pickynode.rb', line 18 def add(filter) return unless filter bitnode_addr_types.each do |k, v| run_cmd(%(bitcoin-cli addnode "#{k}" "add")) if v.include?(filter) end end |
#ban(filter) ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/pickynode.rb', line 25 def ban(filter) return unless filter addr_types.each do |k, v| if v.include?(filter) u = URI.parse("https://#{k}") run_cmd(%(bitcoin-cli setban "#{u.host}" "add")) end end end |
#clear_cache ⇒ Object
65 66 67 68 |
# File 'lib/pickynode.rb', line 65 def clear_cache @addr_types = nil @bitnode_addr_types = nil end |
#connect(filter) ⇒ Object
35 36 37 38 39 40 |
# File 'lib/pickynode.rb', line 35 def connect(filter) return unless filter bitnode_addr_types.each do |k, v| run_cmd(%(bitcoin-cli addnode "#{k}" "onetry")) if v.include?(filter) end end |
#disconnect(filter) ⇒ Object
42 43 44 45 46 47 |
# File 'lib/pickynode.rb', line 42 def disconnect(filter) return unless filter addr_types.each do |k, v| run_cmd(%(bitcoin-cli disconnectnode "#{k}")) if v.include?(filter) end end |
#display ⇒ Object
49 50 51 |
# File 'lib/pickynode.rb', line 49 def display ap addr_types end |
#run ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/pickynode.rb', line 53 def run add(@opts[:add]) connect(@opts[:connect]) ban(@opts[:ban]) disconnect(@opts[:disconnect]) return unless @opts.values.select { |v| v }.empty? display end |