Rᴇɴᴅʏ Pʀᴏɪᴇᴄᴛs
224 subscribers
1.04K photos
29 videos
17 files
743 links
tgcore is open source. Built for production Telegram apps.

https://github.com/TeamKillerX/tgcore/
Download Telegram
They're looking for parameters.
I'm the one who defines the structure. 💀

Final form
This channel automatically deletes zombie accounts by telegram 💀
Telegram Bot API: new feature released
Me: was asleep
Me 10 minutes later: already deployed.
Engineer: Fixing bugs.
Architect: Creating constraints.
If you use 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:
npm install @xtsea/tgcore-ts

Usage:
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.data
Integration 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:
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
Top:
When you use Pyrogram + FastAPI
but your bot runtime goes down without webhook

Bottom:
Meanwhile tgcore:
Sleeping… still sending messages automatically.
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()
Result from Pinterest
Years later… still playing with userbot and eval.
Meanwhile real devs are building APIs, docs, and ecosystems.
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
⚡1💯1
This channel is no longer private.

Now public: https://t.me/tgcore_dev

Join if you want.
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
The TGCore button builder can be used directly with Pyrogram without creating a Client() instance. TGCore simply creates a reply_markup object, and Pyrogram then sends the message.

Example of using one button:
from tgcore import ButtonExamples
from pyrogram.enums import ButtonStyle

reply_markup = ButtonExamples.style(
"custom name",
ButtonStyle.SUCCESS,
url="https://google.com"
)

Bots can still use the regular Pyrogram send_message, but the reply markup is generated by TGCore.

Available button functions:
ButtonExamples.url()
Create a button that opens a link.

ButtonExamples.callback()
Create a button with data callback for bot interaction.

ButtonExamples.style()
Create a button with additional styles.

Parameters style:
text
style
url
callback_data
copy_text
**kw

For simple buttons, one line is enough.

If you want to create several buttons in several rows, you can use KeyboardBuilder().

Multiple button example:
from tgcore import KeyboardBuilder

keyboard = (KeyboardBuilder().url("....", "....").url("....", "https://....").row().url(".....", "https://...").build())

Essentially, TGCore serves as a builder layer for buttons and markup, while Pyrogram remains used to send messages to Telegram.

So the flow is:
Pyrogram = send_message
TGCore = build keyboard / button

The advantage is that developers do not need to write the InlineKeyboardMarkup structure manually.
Me: tgcore is simple

opens message BaseModel = 2000 lines

Don't click Expand all ☠️
Telegram full API is a big monster
One message object = 100 optional fields.
Updating Telegram models be like:
+60 lines changed
Welcome to the monster.💀