https://github.com/harshit158/notipi
A package to deliver notifications via your telegram bot
https://github.com/harshit158/notipi
notification-system telegram-bot
Last synced: about 2 months ago
JSON representation
A package to deliver notifications via your telegram bot
- Host: GitHub
- URL: https://github.com/harshit158/notipi
- Owner: harshit158
- License: mit
- Created: 2024-06-03T00:30:20.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-23T14:47:19.000Z (over 1 year ago)
- Last Synced: 2025-12-15T10:40:36.227Z (6 months ago)
- Topics: notification-system, telegram-bot
- Language: Python
- Homepage: https://pypi.org/project/notipi/
- Size: 980 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
 
## Introduction
`notipi` is a python library to send custom notifications on Telegram and MacOS
Use cases include:
- Getting notified whenever a long running scripts finishes execution
- Knowing whenever a milestone is reached during ML / DL trainings
## Installation
$ pip install notipi
## Setup
If you wish to use just the MacOS notifications and not Telegram - you don't need anymore steps and start using the library right away. Refer the Usage examples below.
To use Telegram - you would be needing two environment variables: `BOT_API_TOKEN` and `CHAT_ID`
To get `BOT_API_TOKEN`:
- In the telegram app, initiate conversation with `@BotFather` (you can also click [here](https://t.me/BotFather)).
- Send `/newbot` as the message to `@BotFather` and provide a new name and username for your bot account as per the instructions.
- `@BotFather` will reply with a unique api token - this is your `BOT_API_TOKEN`
(Note: Detailed instructions to create a new bot can be found at [Telegram website](https://core.telegram.org/bots/features#creating-a-new-bot:~:text=and%20managing%20bots.-,Creating%20a%20new%20bot,-Use%20the%20/newbot))
To get `CHAT_ID`:
- Once a new bot is created, send a dummy message to the bot via Telegram app so that your chat gets assigned an ID.
- Run the following script with your `BOT_API_TOKEN` to get your `CHAT_ID`
```python
from notipi.notipi import get_chat_id
get_chat_id(BOT_API_TOKEN)
```
This will give the following output:
```
Your CHAT ID: 1234567890
```
Once the `BOT_API_TOKEN` and `CHAT_ID` are obtained, set the environment variables
export BOT_API_TOKEN=
export CHAT_ID=
## Usage
Once the required environment variables are in place, you can use `notipi` in the following ways to send messages via Telegram.
(**NOTE**: If the environment variables are not set - the messages will be sent only via MacOS notifications by default)
### (1) As a regular function
```python
from notipi.notipi import notify
def func():
for i in range(1000):
if i%100==0:
notify(f"Currently at {i}")
```
### (2) As a decorator
```python
from notipi.notipi import notify
@notify
def func():
for i in range(1000):
pass
```
When `func()` is invoked - you will be notified once it finishes execution
`NOTE`: Both Approaches (1) and (2) are compatible inside Jupyter Notebook as well
Once `func3()` is invoked - you will receive two notifications - first one after `func1()` is processed and second one after `func2()` is executed.
### (3) As a command line tool
$ noticli -c python example.py
A notification will be sent once `example.py` finishes execution
## Roadmap
- Extend compatibility to Windows platforms