Skip to content
/ topbot Public

a Telegram bot for monitoring your PC or server

License

Notifications You must be signed in to change notification settings

arebaka/topbot

Repository files navigation

topbot

Why are you installing Arch Linux when you can just edit source of the neofetch?

A bot for those who wanna boast of their Arch Linux in the Telegram, but are too lazy to run neofetch.

Commands

/info – get a dashboard with general stat of the system
/tree – get running processes in tree view (parents & children)
/bypid [filter] – get a list of running processes sorted by their PID
/byuser [filter] – get a list of running processes sorted by their user
/bypri [filter] – get a list of running processes sorted by their priority
/bynice [filter] – get a list of running processes sorted by their nice
/bystate [filter] – get a list of running processes sorted by their state
/bycpu [filter] – get a list of running processes sorted by their CPU usage
/bymem [filter] – get a list of running processes sorted by their memory usage
/bytime [filter] – get a list of running processes sorted by their uptime
/bycmd [filter] – get a list of running processes sorted by their command
/<PID> – get stat of the process with PID

Usage

  1. Create and setup a bot via @BotFather
  2. Install npm & node.js
  3. npm i topbot
  4. export TOKEN=<TOKEN_FROM_BOTFATHER>
  5. export ADMINS='<IDS OF USERS WHO CAN USE THE BOT SEPARATED BY SPACE>'
  6. npx topbot
  7. Now the $ADMINS can use the bot everywhere (commands, inline, buttons)
  8. To stop the bot, type stop to console with it and press enter

WARNING! Start your bot in PM before using the inline!

Settings

A file config.toml contains:

[bot] – parameters for the launch of the bot that could be used instead the variables of environment
[image] – a filename from ./views with a page and a selector of an element on it to render the general dashboard
[process] – currently contains a list of signals that can be sended to processes using buttons

To render the dashboard, the page from ./views must contain a function render(data) that takes an object with information returning by systeminformation.getAllData()

Screenshots

Support

If something doesnt work, or you just wanna talk to the bot creator or her mom, write @arelive. There also accepted kicks from volunteer project managers.