Add multiple group broadcast support
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Signed-off-by: adithyagenie <adithyagenie@gmail.com>
This commit is contained in:
parent
5c1ffd5fd5
commit
80c923bf1c
3 changed files with 20 additions and 10 deletions
|
@ -29,7 +29,7 @@ variables.
|
|||
WEBHOOK_URL="your_webhook_url"
|
||||
WEBHOOK_SECRET="your_webhook_secret"
|
||||
PORT=your_port_number
|
||||
CHAT_ID="your_chat_id"
|
||||
CHAT_ID="your_chat_ids seperated by commas"
|
||||
```
|
||||
|
||||
4. Run the bot:
|
||||
|
@ -44,7 +44,7 @@ variables.
|
|||
- **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.
|
||||
- **CHAT_ID**: The chat IDs of the group or person where the bot will send notifications, seperated by commas.
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
|
@ -1,23 +1,32 @@
|
|||
import { bot } from "../bot";
|
||||
|
||||
export async function reminderContestLC(contestName: string, contestKey: string): Promise<void> {
|
||||
await bot.api.sendMessage(parseInt(process.env.CHAT_ID as string),
|
||||
const chatids = (process.env.CHAT_ID as string).split(",").map(i => parseInt(i));
|
||||
for (const id of chatids) {
|
||||
await bot.api.sendMessage(id,
|
||||
`LeetCode ${contestName} is in ~10 minutes.\n
|
||||
Attend the contest here: https://leetcode.com/contest/${contestKey}/`);
|
||||
}
|
||||
}
|
||||
|
||||
export async function reminderContestCodeChef(): Promise<void> {
|
||||
await bot.api.sendMessage(parseInt(process.env.CHAT_ID as string),
|
||||
const chatids = (process.env.CHAT_ID as string).split(",").map(i => parseInt(i));
|
||||
for (const id of chatids) {
|
||||
await bot.api.sendMessage(id,
|
||||
`CodeChef contest is in ~10 minutes.\n
|
||||
Attend the contest here: https://www.codechef.com/contests/`);
|
||||
}
|
||||
}
|
||||
|
||||
export async function reminderContestCF(contestName: string, contestID: number, contestTime: Date) {
|
||||
let options: { timeZone: string, timeStyle: "short" } = {
|
||||
timeZone: 'Asia/Calcutta',
|
||||
timeStyle: "short"
|
||||
};
|
||||
await bot.api.sendMessage(parseInt(process.env.CHAT_ID as string),
|
||||
const chatids = (process.env.CHAT_ID as string).split(",").map(i => parseInt(i));
|
||||
for (const id of chatids) {
|
||||
await bot.api.sendMessage(id,
|
||||
`${contestName} at ${new Date(contestTime).toLocaleTimeString('en-US', options)} IST starts in ~10 minutes.
|
||||
Attend the contest here: https://codeforces.com/contests/${contestID}`);
|
||||
}
|
||||
}
|
|
@ -1,11 +1,12 @@
|
|||
import { config } from "dotenv";
|
||||
|
||||
config();
|
||||
|
||||
import { FastifyInstance } from "fastify";
|
||||
import { startserver } from "./api/server";
|
||||
import { botInit } from "./bot/bot";
|
||||
import { contestScheduler } from "./helpers/scheduler";
|
||||
|
||||
config();
|
||||
|
||||
if (process.env.BOT_TOKEN === undefined ||
|
||||
process.env.RUN_METHOD === undefined ||
|
||||
(process.env.RUN_METHOD !== "POLLING" && process.env.RUN_METHOD !== "WEBHOOK") ||
|
||||
|
|
Loading…
Reference in a new issue