class QuestBook include Cinch::Plugin listen_to :questbook def initialize(m) @config = YAML.load_file('config.yml') super(m) end def listen(m) params = FormData.new params.append('msg', '') params.append('from', "#{Time.now.to_i - 5}00") params.append('away', 0) req = params.post_request("/forum/chat/message.php") http = Net::HTTP.new('quest-book.ru', 443) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE req.add_field 'Referer', 'https://quest-book.ru/forum/chat/' req.add_field 'X-Requested-With', 'XMLHttpRequest' response = http.request(req) response = JSON.parse response.body begin if response['msgs'] then for msg in response['msgs'] do print = false if msg[1] != '' then print = true end color = Digest::MD5.hexdigest(msg[1]).to_i(16) % 14 + 2 who = "[\x03#{color}#{msg[1]}\x0f]" message = msg[2] a = Nokogiri::HTML.parse message message = a.text if message != @last and print then Channel('#questbook').send("#{who}: #{message}") @last = message # discord webhook http = Net::HTTP.new('discordapp.com', 443) http.use_ssl = true params = FormData.new params.append('content', message) params.append('username', msg[1]) req = params.post_request("/api/webhooks/#{@config['discord_webhook']}/#{@config['discord_token']}") http.request(req) end end end rescue NoMethodError puts "No method error:\n" puts response['msgs'].inspect end end end