Files
notify/telegram_test.go
Vladimir V Maksimov 1d9d56dc87 telegram email
2025-12-10 17:14:16 +03:00

131 lines
7.2 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package notify_test
import (
"encoding/json"
"os"
"testing"
"git.gm6.ru/icewind/notify"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
"gopkg.in/yaml.v2"
)
type ConfigTelegram struct {
GroupID int64 `yaml:"group_id"`
Token string `yaml:"token"`
}
func loadText(t *testing.T) []byte {
cData, err := os.ReadFile("test_data/text.txt")
if err != nil {
t.Fatal(err)
}
return cData
}
func loadConfig(t *testing.T) (conf ConfigTelegram) {
cData, err := os.ReadFile("test_data/telegram.yaml")
if err != nil {
t.Fatal(err)
}
if err = yaml.Unmarshal(cData, &conf); err != nil {
t.Fatal(err)
}
return
}
func TestMessage(t *testing.T) {
conf := loadConfig(t)
bot, err := notify.NewTelegram(conf.Token, true)
if err != nil {
t.Fatal(err)
}
m, err := bot.SendTextMessage(conf.GroupID, "Привет ))")
if err != nil {
t.Fatal(err)
}
t.Log(m)
}
func TestSendTable(t *testing.T) {
rows := [][]string{
{"Название", "Цена", "Кол-во", "Рост"},
{"Яблоки", "120", "5", "3.5"},
{"Бананы", "-90", "30", "12 000"},
{"Киви", "+200", "1", "-1.2"},
{"Груши", "100", "10", "0.5"},
{"Апельсины", "150", "10", "1.5"},
{"Мандарины", "100", "10", "0.5"},
{"Персики", "100", "10", "0.5"},
{"Виноград", "100", "10", "0.5"},
{"Абрикосы", "100", "10", "0.5"},
{"Слива Абрикосы Абрикосы", "100", "10", "0.5"},
}
msg := notify.BuildTelegramTable(rows)
conf := loadConfig(t)
bot, err := notify.NewTelegram(conf.Token, true)
m, err := bot.SendHTMLMessage(conf.GroupID, "<pre>"+msg+"</pre>")
if err != nil {
t.Fatal(err)
}
t.Log(m)
}
func TestTelegramUpdate(t *testing.T) {
conf := loadConfig(t)
bot, err := notify.NewTelegram(conf.Token, true)
if err != nil {
t.Fatal(err)
}
u := tgbotapi.NewUpdate(0)
u.AllowedUpdates = []string{
"message",
"chat_member",
"my_chat_member",
}
u.Timeout = 30
for {
updates, err := bot.GetAPI().GetUpdates(u)
if err != nil {
t.Fatal(err)
}
if len(updates) > 0 {
data, _ := json.Marshal(updates)
t.Log(string(data))
}
}
}
func TestTelegramDocument(t *testing.T) {
conf := loadConfig(t)
bot, err := notify.NewTelegram(conf.Token, true)
text := loadText(t)
caption := `Голотип номинативного подвида был собран на склонах горы Натсфорд в горах Оуэн-Стэнли. Он был описан английским орнитологом Чарлзом Де Висом в 1890 году. В том же году Адольф Питер Гудвин (Adolph Peter Goodwin) описал синонимичный вид Xanthomelus macgregori, полученный на том же хребте, но на горе Масгрейв[14]. Птицы этого подвида обитают в юго-восточной части Новой Гвинеи от водораздела Экути (Ekuti Divide) южнее города Вау до горы Натсфорд и Порт-Морсби[14][11]. Возможно, ареал простирается ещё южнее[14], юго-восточные границы ареала неизвестны[11]. Международный союз охраны природы (МСОП) приводит площадь ареала (англ. Estimated extent of occurrence) этого подвида 10 800 км²[15].
Подвид C. m. sanguineus был описан австралийским орнитологом Томом Айрдейлом в 1948 году как самостоятельный вид на основе экземпляров, добытых капитаном Нептьюном Бладом (Neptune B. Blood) в 1944—1945 годах в окрестностях города Маунт-Хаген в провинции Уэстерн-Хайлендс в центральной части Папуа — Новой Гвинеи. Птицы этого подвида распространены на нагорье Кайенде, горе Гилуве, вулкане Хаген и далее на восток до гор Бисмарка и хребта Кубор[себ.] в восточной части острова. К этому же подвиду относят популяцию в центральной части острова, обитающую на высокогорьях к северу от озера Хаббема (Lake Habbema)[14]. МСОП приводит площадь ареала этого подвида 87 600 км²[16]. У самцов C. m. sanguineus длина крыла составляет 110—118 мм, у самок — 101—115 мм, длина хвоста — 86-96 мм и 80—97 мм, клюва — 26—31 мм и 23—28 мм, цевки — 38—44 мм и 38—43 мм, соответственно[14].
Синонимичным ему является подвид C. m. kuboriensis, который был описан американскими орнитологами Эрнстом Майром и Эрнестом Гиллиардом[англ.] в 1954 году на основе экземпляра самца, пойманного на хребте Кубор на высоте 2760 метров в мае 1952 года. Причиной выделения в отдельный подвид был назван более насыщенный красноватый верх и менее красный налёт снизу, а также более короткий хвост и более длинные крылья[14]. Экземпляр птицы, полученный британским орнитологом Реджиналдом Симсом (Reginald William Sims) в тех же горах в 1953 году, не отличался раскраской оперения от C. m. sanguineus[17]. Современные учёные синонимизируют C. m. kuboriensis и C. m. sanguineus в силу изменчивости и незначительности указанных признаков[14].
Основное отличие подвидов заключается в окраске самцов в верхней части тела, оттенки окраски остального оперения менее показательны. Чёткое разделение подвидов затруднено из-за промежуточного положения птиц, обитающих на хребте Кратке[англ.] в восточной части острова[14]. Не совсем ясно, к какому подвиду отнести популяцию на западе ареала (то есть на границе двух стран). Американские учёные Брюс Билер[англ.] и Тейн Пратт[англ.] в 2016 году предлагали выделить её в отдельный таксон, для которого, однако, не смогли определить географические границы[14]. `
if err != nil {
t.Fatal(err, bot)
}
_, err = bot.SendDocumentFromBytes(
conf.GroupID,
text,
"1.txt",
caption,
)
if err != nil {
t.Fatal(err)
}
}