budva43

command module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 27, 2025 License: MIT Imports: 25 Imported by: 0

README

budva43

go report card coverage

Telegram-Forwarder (UNIX-way) - forwards (or copies) messages from monitored channels and groups to target ones according to specified rules to obtain thematic digests.

PLAN

How to clone project with submodules

git clone https://github.com/comerc/budva43.git
git submodule init
git submodule update

How to Dev Start

Direct install TDLib on host machine for best dev experience or use DevContainer (some restrictions) for build on Ubuntu.

With direct TDLib

Install by instruction with this options:

  • Install built TDLib to /usr/local instead of placing the files to td/tdlib.
  • Choose which compiler you want to use to build TDLib: clang (recommended)
With DevContainer

only first time:

docker-compose build

...then "Reopen in Container"

Install Mockery V2
$ go install github.com/vektra/mockery/v2@v2.53.3

Applied Technologies

.env

Register an application to obtain an api_id and api_hash

# ./config/.private/.env

BUDVA43__TELEGRAM__API_ID=1234567
BUDVA43__TELEGRAM__API_HASH=XXXXXXX
BUDVA43__TELEGRAM__PHONE_NUMBER=+78901234567

Config example

./config/*.yml

First start for Telegram auth

from console:

$ make run

Examples for go-tdlib

// How to add InlineKeyboardButton

	row := make([]*client.InlineKeyboardButton, 0)
	row = append(row, &client.InlineKeyboardButton{
		Text: "123",
		Type: &client.InlineKeyboardButtonTypeUrl{
			Url: "https://google.com",
		},
	})
	rows := make([][]*client.InlineKeyboardButton, 0)
	rows = append(rows, row)
	_, err := tdlibClient.SendMessage(&client.SendMessageRequest{
		ChatId: dstChatId,
		InputMessageContent: &client.InputMessageText{
			Text:                  formattedText,
			DisableWebPagePreview: true,
			ClearDraft:            true,
		},
		ReplyMarkup: &client.ReplyMarkupInlineKeyboard{
			Rows: rows,
		},
	})

Inspired by

Filters Mode for Forward...

Exclude #COIN
Include #TSLA

case #COIN
Check +
Other -
To -

case #TSLA
Check -
Other -
To +

case #ARK
Check -
Other +
To -

Test-plan for Config...

  • Text
    • Forward.SendCopy (or forward)
    • and edit sync for double copy
    • Forward.CopyOnce (edit sync)
    • Forward.Indelible (delete sync)
    • Filters Mode (see above)
    • Forward.IncludeSubmatch
    • ReplaceMyselfLinks + DeleteExternal
    • ReplaceFragments (and not equal len)
    • Sources.Link + Title
    • Sources.Sign
    • AutoAnswers
  • MediaAlbum
    • Forward.SendCopy (or forward)
    • Forward.CopyOnce (edit sync)
    • Forward.Indelible (delete sync)

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL