If you use
Or JSON:
Because it's too much
Try to see if you can do it like this:
Clean, no need to say much more.
InlineKeyboardMarkup([])Or JSON:
reply_markup={"inline_keyboard": []}Because it's too much
Try to see if you can do it like this:
KeyboardBuilder().url("Custom Name", "https://google.com").build()Clean, no need to say much more.
TGCore TS Client • Production Ready
Docs: https://tgcore.ryzenths.dpdns.org/
Web: https://services-pro.ryzenths.dpdns.org
Install:
Usage:
• Service migrated to new URL
• Production stable
• No configuration issues
• Enterprise-ready
Docs: https://tgcore.ryzenths.dpdns.org/
Web: https://services-pro.ryzenths.dpdns.org
Install:
npm install @xtsea/tgcore-tsUsage:
import { Client } from "@xtsea/tgcore-ts"
const tg = new Client({
api_key: process.env.R_API_KEY,
base_url: "https://tgcore.ryzenths.dpdns.org"
})• Service migrated to new URL
• Production stable
• No configuration issues
• Enterprise-ready
import { tgcore } from "@xtsea/tgcore-ts"
const tg = tgcore({
api_key: "api key here"
})
const result = await tg.orweb
.pinterest()
.query("Coding")
.limit(10)
.execute()
if (!result.ok) return null
return result.dataIntegration with other applications
tgcore-ts is not a bot framework.
It is a Telegram API client SDK designed for:
• automation
• monitoring
• microservices
• web applications
Supported environments:
• Next.js
• Express / Fastify API
• Cloudflare Workers
• Server monitoring systems
• AI services / automation
• Microservices
Examples:
Architecture comparison
tgcore-ts
• Bot runtime: not required
• Webhook service: native
• Microservice: first-class
• Automation: designed for it
Telegraf / grammY
• Bot runtime: required
• Webhook service: limited
• Microservice: less suitable
• Automation: possible but not optimized
Think of tgcore-ts like Stripe SDK, but for Telegram automation.
tgcore-ts is not a bot framework.
It is a Telegram API client SDK designed for:
• automation
• monitoring
• microservices
• web applications
Supported environments:
• Next.js
• Express / Fastify API
• Cloudflare Workers
• Server monitoring systems
• AI services / automation
• Microservices
Examples:
app.post("/alert", async (req, res) => {
await tg.calls
.sendMessage()
.chatId(LOG_CHAT)
.text(req.body.message)
.execute()
res.send("ok")
})Architecture comparison
tgcore-ts
• Bot runtime: not required
• Webhook service: native
• Microservice: first-class
• Automation: designed for it
Telegraf / grammY
• Bot runtime: required
• Webhook service: limited
• Microservice: less suitable
• Automation: possible but not optimized
Think of tgcore-ts like Stripe SDK, but for Telegram automation.
🔥1
ev tg.base_url = "https://tgcore.ryzenths.dpdns.org"
kw = await tg._post(
"/api/web/pinterest",
payload={"query": "pocong"}
)
if not kw["ok"]:
return None
await tg.raw.sendPhoto(
chat_id=m.chat.id,
caption="Result from Pinterest",
photo=kw["data"]["pins"][0]["media"]["images"]["orig"]["url"]
).execute()
kw = await tg._post(
"/api/web/pinterest",
payload={"query": "pocong"}
)
if not kw["ok"]:
return None
await tg.raw.sendPhoto(
chat_id=m.chat.id,
caption="Result from Pinterest",
photo=kw["data"]["pins"][0]["media"]["images"]["orig"]["url"]
).execute()
https://github.com/TeamKillerX/tgcore#rest-api--tgcore-bot
https://github.com/TeamKillerX/tgcore-ts/tree/main#reference-backend-fastapi
https://github.com/TeamKillerX/tgcore-ts/tree/main#reference-backend-fastapi
GitHub
GitHub - TeamKillerX/tgcore: TgCore • Official Telegram SDK Framework
TgCore • Official Telegram SDK Framework. Contribute to TeamKillerX/tgcore development by creating an account on GitHub.
started with telethon userbots back in 2019
lost accounts, yeah it happens
now i'm building my own tgcore engine
solo dev, no team yet
if you're still running userbots, keep going
this channel isn't about that anymore
no more userbot updates
source code comes as paid zip
lost accounts, yeah it happens
now i'm building my own tgcore engine
solo dev, no team yet
if you're still running userbots, keep going
this channel isn't about that anymore
no more userbot updates
source code comes as paid zip
⚡1💯1
Snippet code:
kw = await tg._post(
"/api/web/pinterest/download",
payload={"pinUrl": "https://pinterest.com/pin/579205202127386072"}
)
if not kw["ok"]:
return None
y = tg.to_obj(kw)
urls = []
for x in y.data.pins.media_urls:
if x.type == "image":
urls.append(x.url)
if not urls:
return "No url"
return urls