wm: mohandes-bot

ref: a5c6bdfa6e44dff4de0fb2ff633c1e723f597c83
dir: /Telbot.rb/

View raw version
require 'telegram/bot'

token = "your-bot-token'
id = "@mohandese_riazi_dan_bot"
admin = 331358784
silent = false

Signal.trap('INT') do
  bot.stop
end

def SendWithReply(text)
  bot.api.send_message(chat_id: message.chat.id, reply_to_message_id: message.message_id, text: text);
end

Telegram::Bot::Client.run(token) do |bot|
  bot.listen do |message|
    case message
    when Telegram::Bot::Types::Message

      # if message.edit_date.is_a?(Integer) && message.reply_to_message.from.username.eql?("mohandese_riazi_dan_bot") then
      #   begin
      #     a = message.text;
      #
      #     bot.api.editMessageText(chat_id: message.reply_to_message.chat.id, message_id: message.message_id + 1, text: "#{eval(a)}");
      #   rescue Telegram::Bot::Exceptions::ResponseError => re
      #     bot.api.send_message(chat_id: message.chat.id, reply_to_message_id: message.message_id, text: re.message);
      #   end
      # els

      if (!silent) || message.from.id == admin then
        if message.chat.type.eql?("supergroup") then
          if message.reply_to_message.is_a?(Telegram::Bot::Types::Message) && message.reply_to_message.from.username.eql?("mohandese_riazi_dan_bot") then
            begin
              a = message.text;

              if (message.from.id == admin) then
                if (a.eql?("off"))
                  silent = true
                end
                if (a.eql?("on"))
                  silent = false
                end
              end

              #if message.edit_date.is_a?(Integer) then
              #  bot.api.editMessageText(chat_id: message.reply_to_message.chat.id, message_id: message.message_id + 1, text: "#{eval(a)}");
              #else
              bot.api.send_message(chat_id: message.chat.id, reply_to_message_id: message.message_id, text: "#{eval(a)}");
              #end
            rescue => error
              sleep(1);
              bot.api.send_message(chat_id: message.chat.id, reply_to_message_id: message.message_id, text: error.message);
            rescue SyntaxError => se
              bot.api.send_message(chat_id: message.chat.id, reply_to_message_id: message.message_id, text: se.message);#"Syntax Error Dash.");
            rescue NoMemoryError => nme
              bot.api.send_message(chat_id: message.chat.id, reply_to_message_id: message.message_id, text: nme.message);
            rescue ResponseError => RE
              bot.api.send_message(chat_id: admin, reply_to_message_id: message.message_id, text: RE.message);
            end
          end
          if message.text.is_a?(String) && message.text.start_with?("#{id} ") then
            begin
              a = message.text;
              a.slice! "#{id} "

              if (message.from.id == admin) then
                if (b.eql?("off"))
                  silent = true
                end
                if (b.eql?("on"))
                  silent = false
                end
              end

              bot.api.send_message(chat_id: message.chat.id, reply_to_message_id: message.message_id, text: "#{eval(a)}");
            rescue => error
              sleep(1);
              bot.api.send_message(chat_id: message.chat.id, reply_to_message_id: message.message_id, text: error.message);
            rescue SyntaxError => se
              bot.api.send_message(chat_id: message.chat.id, reply_to_message_id: message.message_id, text: se.message);#"Syntax Error Dash.");
            rescue NoMemoryError => nme
              bot.api.send_message(chat_id: message.chat.id, reply_to_message_id: message.message_id, text: nme.message);
            rescue ResponseError => RE
              bot.api.send_message(chat_id: admin, reply_to_message_id: message.message_id, text: RE.message);
            end
          end
        elsif message.chat.type.eql?("private") then
          begin
            if (message.chat.id == admin) then
              if (message.text.eql?("off"))
                silent = true
              end
              if (message.text.eql?("on"))
                silent = false
              end
            end
            a = message.text;
            bot.api.send_message(chat_id: message.chat.id, text: "#{eval(a)}");
          rescue => error
            sleep(1);
            bot.api.send_message(chat_id: message.chat.id, text: error.message);
          rescue SyntaxError => se
            bot.api.send_message(chat_id: message.chat.id, text: se.message);#"Syntax Error Dash.");
          rescue NoMemoryError => nme
            bot.api.send_message(chat_id: message.chat.id, text: nme.message);
          rescue ResponseError => RE
            bot.api.send_message(chat_id: admin, reply_to_message_id: message.message_id, text: RE.message);
          end
        end
      end
    end
  end
end