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_URL="your_webhook_url"
|
||||||
WEBHOOK_SECRET="your_webhook_secret"
|
WEBHOOK_SECRET="your_webhook_secret"
|
||||||
PORT=your_port_number
|
PORT=your_port_number
|
||||||
CHAT_ID="your_chat_id"
|
CHAT_ID="your_chat_ids seperated by commas"
|
||||||
```
|
```
|
||||||
|
|
||||||
4. Run the bot:
|
4. Run the bot:
|
||||||
|
@ -44,7 +44,7 @@ variables.
|
||||||
- **WEBHOOK_URL**: The URL for the webhook (required if using webhook mode).
|
- **WEBHOOK_URL**: The URL for the webhook (required if using webhook mode).
|
||||||
- **WEBHOOK_SECRET**: The secret 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).
|
- **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
|
## Usage
|
||||||
|
|
||||||
|
|
|
@ -1,23 +1,32 @@
|
||||||
import { bot } from "../bot";
|
import { bot } from "../bot";
|
||||||
|
|
||||||
export async function reminderContestLC(contestName: string, contestKey: string): Promise<void> {
|
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
|
`LeetCode ${contestName} is in ~10 minutes.\n
|
||||||
Attend the contest here: https://leetcode.com/contest/${contestKey}/`);
|
Attend the contest here: https://leetcode.com/contest/${contestKey}/`);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export async function reminderContestCodeChef(): Promise<void> {
|
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
|
`CodeChef contest is in ~10 minutes.\n
|
||||||
Attend the contest here: https://www.codechef.com/contests/`);
|
Attend the contest here: https://www.codechef.com/contests/`);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export async function reminderContestCF(contestName: string, contestID: number, contestTime: Date) {
|
export async function reminderContestCF(contestName: string, contestID: number, contestTime: Date) {
|
||||||
let options: { timeZone: string, timeStyle: "short" } = {
|
let options: { timeZone: string, timeStyle: "short" } = {
|
||||||
timeZone: 'Asia/Calcutta',
|
timeZone: 'Asia/Calcutta',
|
||||||
timeStyle: "short"
|
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.
|
`${contestName} at ${new Date(contestTime).toLocaleTimeString('en-US', options)} IST starts in ~10 minutes.
|
||||||
Attend the contest here: https://codeforces.com/contests/${contestID}`);
|
Attend the contest here: https://codeforces.com/contests/${contestID}`);
|
||||||
}
|
}
|
||||||
|
}
|
|
@ -1,11 +1,12 @@
|
||||||
import { config } from "dotenv";
|
import { config } from "dotenv";
|
||||||
|
|
||||||
|
config();
|
||||||
|
|
||||||
import { FastifyInstance } from "fastify";
|
import { FastifyInstance } from "fastify";
|
||||||
import { startserver } from "./api/server";
|
import { startserver } from "./api/server";
|
||||||
import { botInit } from "./bot/bot";
|
import { botInit } from "./bot/bot";
|
||||||
import { contestScheduler } from "./helpers/scheduler";
|
import { contestScheduler } from "./helpers/scheduler";
|
||||||
|
|
||||||
config();
|
|
||||||
|
|
||||||
if (process.env.BOT_TOKEN === undefined ||
|
if (process.env.BOT_TOKEN === undefined ||
|
||||||
process.env.RUN_METHOD === undefined ||
|
process.env.RUN_METHOD === undefined ||
|
||||||
(process.env.RUN_METHOD !== "POLLING" && process.env.RUN_METHOD !== "WEBHOOK") ||
|
(process.env.RUN_METHOD !== "POLLING" && process.env.RUN_METHOD !== "WEBHOOK") ||
|
||||||
|
|
Loading…
Reference in a new issue