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, "
"+msg+"") 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) } }