Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

tgbot

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tgbot

  • 0.4.6
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Tgbot

Gem Version Bot API Version

A tiny but easy-to-use wrapper of Telegram Bot API.

Install

gem install tgbot

Usage

Tgbot.run TOKEN, proxy: 'http://127.0.0.1:1080' do
  @name = get_me&.result&.first_name
  on 'start' do
    reply "#@name, at your service."
  end
end
# or
bot = Tgbot.new TOKEN, proxy: 'http://127.0.0.1:1080'
bot.on('start'){ reply "#{get_me&.result&.first_name}, at your service." }
bot.run # will block current thread
Tgbot.run token, **options do (block) end

Start a long polling bot.

argumenttypenotesexample
tokenStringask BotFather for one'123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11'
optiontypenotesexample
proxyStringhttp only'127.0.0.1:1080'

and in that (block):

method_missing

Just call the native bot api. e.g. getMe() send_message(chat_id: 123, text: 'hello').

Returns an OpenStruct of the replied object. Basically struct{ok=true,result=...}.

self.debug = true | false (default)

Show debug info (every message, matched command).

start do (do sth when it is connected) end
start do
  puts "\e[33m#{get_me&.result&.first_name}\e[32m, at your service."
end
finish do (do sth when Ctrl+C) end
finish do
  puts "おやすみなさい"
end
on pattern=nil, **options do |match_data, update, task| (block) end

Match pattern and do something.

argumenttypenotesexample
patternnilmatch all (including inline query etc.)on do ... end
-String | Regexpmatch all text1/^r(\d*)d(\d*)(?:\+(\d*))?/

1: for convenience, the bot's @username is trimmed for easilier matching.

e.g. "hey bot, /r3d6@mybot+1 lol" => #<MatchData "/r3d6+1" 1:"3" 2:"6" 3:"1">.

optiontypenotesexample
nameStringjust give it a name'roll!'
before_alltrueset to run before other ons matching the same messagetrue
after_alltrueset to run after other ons matching the same message2
you can't set both before_all and after_all on one command
true

2: order is * -> before2 -> before1 -> other -> after1 -> after2 -> *.

and in that (block):

debug message

Puts that message to STDERR when it is in debug mode.

reply *things, **options

Reply to the matched message.

argumenttypenotesexample
thingString | can .to_swill use parse_mode: Markdown'hello world'
-IOwill use sendPhoto if it is a photo, etc.File.new("a.png")
optiontypenotesexample
mediafalseset to false to force sendDocument'127.0.0.1:1080'
style:none | :at | nil (default)reply style3:at
parse_mode, etc.dependssee sendMessage-

reply style3:

  • :none : don't add reply info, so the sender won't receive a prompting.
  • :at: use [inline mention of a user](tg://user?id=123456789) in replied message.
  • nil (default): include reply_to_message_id in replied message object.
interrupt! done!

Stop processing this message (if there be further blocks matching it). see before_all after_all.

retry! n=1

Enqueue this message again for at most n times.

Contribute

PRs/issues are welcome.

FAQs

Package last updated on 06 Apr 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc