reassert_electrum_notification

 1#!/usr/bin/ruby
 2# frozen_string_literal: true
 3
 4require "redis"
 5require "dhall"
 6require_relative "../lib/redis_addresses"
 7require_relative "../lib/electrum"
 8
 9config =
10	Dhall::Coder
11	.new(safe: Dhall::Coder::JSON_LIKE + [Symbol, Proc])
12	.load(ARGV[0], transform_keys: :to_sym)
13
14redis = Redis.new
15electrum = Electrum.new(**config)
16addrs = RedisAddresses.new(redis, config[:currency])
17
18addrs.get_addresses_with_users(redis).each do |addr, keys|
19	match = keys.first.match(/.*-(\d+)$/)
20	unless match
21		puts "Can't understand key #{keys.first}, skipping"
22		next
23	end
24
25	customer_id = match[1]
26	url = "https://pay.jmp.chat/electrum_notify?" \
27	      "address=#{addr}&customer_id=#{customer_id}" \
28	      "&currency=#{config[:currency]}"
29
30	unless electrum.notify(addr, url)
31		puts "Failed to setup #{addr} to notify #{url}. Skipping"
32	end
33end