#!/usr/bin/env ruby require 'rubygems' require 'yaml' require 'telegram/bot' #conf = YAML.load(File.read("bot_config.yaml")) conf = YAML.load_file("bot_config.yaml") token = conf['token'] telnet = conf['telnet'] puts conf['telnet'] puts "Empyrion Host: #{telnet['host']}" puts "Bot token: #{token}" def handle_message(message) reply = 'Empty String' conf = YAML.load_file("bot_config.yaml") telnet = conf['telnet'] case message.text.split(" ")[0].split("@")[0].downcase #Strip command from arguments and @tags when '/start' puts "Received command: start" reply = "This bot will eventually (hopefully) be able retrieve information and pass start/stop commands from/to an Empyrion server, to make life easier for meatbags like you.\n\n" + "Commands available:\n/start (Shows this message)\n/srvstart\n/srvstop\n/status" when '/srvstart' puts "Received command: srvstart" reply = `./srvstart` when '/srvstop' puts "Received command: srvstop" reply = `./srvstop` when '/status' puts "Received command: status" reply = `./srvstatus #{telnet['host']} #{telnet['port']} #{telnet['pass']}` when '/location', '/whereareyou' reply = "I am currently located at:\n\nHost: #{`echo $HOSTNAME`}ExtIP: #{`curl myip.contegix.com`}" end puts "Sending #{reply.inspect}" return reply end Telegram::Bot::Client.run(token) do |bot| bot.listen do |message| reply = handle_message message bot.api.send_message(chat_id: message.chat.id, text: "#{reply}") end end