主机论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 58|回复: 2

刚糊的一个Ks-le-b的监控

[复制链接]

25

主题

413

回帖

1363

积分

金牌会员

Rank: 6Rank: 6

积分
1363
发表于 2024-11-6 23:51:55 | 显示全部楼层 |阅读模式
用 chatgpt 帮我糊了一个 tg 监控 ovh 补货的通知。

1. 在 Telegram 上找到 BotFather。
2. 创建一个新机器人并记录下给定的 Token。
3. 获取你的 Telegram 用户 ID,你可以通过向你的机器人发送消息并调用 https://api.telegram.org/bot<Your-Bot-Token>/getUpdates API 来查看你的消息和用户 ID。

在 deno.land 创建一个 playground,填入以下代码,修改部分变量直接运行就行了。

  1. // bot.ts

  2. // 1. 配置 Telegram bot 和 API
  3. const TELEGRAM_TOKEN = "<Telegram-bot-token>";  // 填入你的 Telegram Bot Token
  4. const CHAT_ID = "Chat-id";  // 填入你要发送消息的 Chat ID
  5. const API_URL = "https://www.ovh.com/engine/apiv6/dedicated/server/datacenter/availabilities/?excludeDatacenters=true&planCode=25skleb01&server=25skleb01";  // 填入你要请求的 API 地址

  6. // 2. 发送 Telegram 消息的函数
  7. async function sendTelegramMessage(message: string) {
  8.   const url = `https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage`;
  9.   const body = JSON.stringify({
  10.     chat_id: CHAT_ID,
  11.     text: message,
  12.   });

  13.   const res = await fetch(url, {
  14.     method: "POST",
  15.     headers: {
  16.       "Content-Type": "application/json",
  17.     },
  18.     body: body,
  19.   });

  20.   if (res.ok) {
  21.     console.log("Message sent to Telegram successfully.");
  22.   } else {
  23.     console.error("Failed to send message to Telegram.");
  24.   }
  25. }

  26. // 3. 请求 API 并检查响应是否包含 'available' 字段
  27. async function checkApiAndNotify() {
  28.   try {
  29.     const response = await fetch(API_URL);
  30.     const data = await response.json();

  31.     const nvme = data.find(item => item.storage === 'softraid-2x450nvme');
  32.     if (nvme.datacenters.some(item => item.availability !== 'unavailable')) {
  33.       const message = `The KS-LE-B Nvme is restored. Check it out here: [Click here](https://eco.ovhcloud.com/en-ie/kimsufi/ks-le-b/)`
  34.       sendTelegramMessage(message);
  35.     } else {
  36.       console.log("Service is not available.");
  37.     }
  38.   } catch (error) {
  39.       console.error("Error while fetching API or sending message:", error);
  40.   }
  41. }

  42. // 4. 设置定时任务,周期性请求 API
  43. setInterval(checkApiAndNotify, 60 * 1000); // 每分钟检查一次

  44. Deno.serve((req: Request) => new Response("Hello Ovh"));
复制代码
回复

使用道具 举报

5

主题

3255

回帖

7055

积分

论坛元老

Rank: 8Rank: 8

积分
7055
发表于 2024-11-6 23:56:29 | 显示全部楼层
建议看ovh的api
多的我不说了,毕竟这是门生意
回复

使用道具 举报

20

主题

211

回帖

684

积分

高级会员

Rank: 4

积分
684
发表于 2024-11-6 23:57:37 | 显示全部楼层
用API接口..网页接口不行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|主机论坛

GMT+8, 2025-1-18 15:44 , Processed in 0.076661 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表