A contest reminder bot.
Find a file
adithyagenie c474f9239d
Basic implementation of LC contest reminders
Signed-off-by: adithyagenie <adithyagenie@gmail.com>
2024-06-12 18:01:20 +05:30
src Basic implementation of LC contest reminders 2024-06-12 18:01:20 +05:30
.gitignore Basic implementation of LC contest reminders 2024-06-12 18:01:20 +05:30
eslint.config.js Basic implementation of LC contest reminders 2024-06-12 18:01:20 +05:30
LICENSE Basic implementation of LC contest reminders 2024-06-12 18:01:20 +05:30
package.json Basic implementation of LC contest reminders 2024-06-12 18:01:20 +05:30
pnpm-lock.yaml Basic implementation of LC contest reminders 2024-06-12 18:01:20 +05:30
README Basic implementation of LC contest reminders 2024-06-12 18:01:20 +05:30
tsconfig.json Basic implementation of LC contest reminders 2024-06-12 18:01:20 +05:30

# Force++ (F++)

Force++ (F++ for short) is a Telegram bot designed to notify users about upcoming coding contests on popular competitive programming platforms. Currently, the bot supports notifications for LeetCode contests, with future plans to include Codeforces and CodeChef contests.

## Features

- **LeetCode Contest Notifications**: Get notified about upcoming LeetCode contests.

## ⚠️ Development Status

**Note: This bot is heavily unstable and highly in development.** Use it at your own risk, and expect frequent changes and potential issues. As of now, it only supports LeetCode contest notifications and works for a single group or person configured by the chat ID in environment variables.

## Installation

1. Clone the repository:
    ```sh
    git clone https://git.ptr.moe/adithyagenie/forceplusplus.git
    cd forceplusplus
    ```

2. Install the required dependencies:
    ```sh
    pnpm install
    ```

3. Set up your environment variables. Create a `.env` file in the root directory and add the following:
    ```env
    RUN_METHOD="WEBHOOK" or "POLLING"
    BOT_TOKEN="your_telegram_bot_token"
    WEBHOOK_URL="your_webhook_url"
    WEBHOOK_SECRET="your_webhook_secret"
    PORT=your_port_number
    CHAT_ID="your_chat_id"
    ```

4. Run the bot:
    ```sh
    pnpm start
    ```

## Configuration

- **RUN_METHOD**: The method to run the bot. Use `"WEBHOOK"` for webhook mode or `"POLLING"` for polling mode.
- **BOT_TOKEN**: The token you get from BotFather on Telegram.
- **WEBHOOK_URL**: The URL for the webhook (required if using webhook mode).
- **WEBHOOK_SECRET**: The secret for the webhook (required if using webhook mode).
- **PORT**: The port number to run the webhook server on (required if using webhook mode).
- **CHAT_ID**: The chat ID of the group or person where the bot will send notifications.

## Usage

Once the bot is running, it will automatically send notifications about upcoming LeetCode contests to the configured chat ID. Future updates will include notifications for Codeforces and CodeChef contests.

## License

This project is licensed under the AGPL-v3.0 License. See the [LICENSE](LICENSE) file for details.