From cb7c3133861a7ba81a78135c0729c15f6005075b Mon Sep 17 00:00:00 2001 From: Fedorov Vladimir Date: Sat, 26 Nov 2022 16:59:35 +0700 Subject: [PATCH] add /send_new_year_to_chat --- config/new_year_config.json | 80 ++++++++++++++++++------------------- main.go | 20 +++++++--- messages/messages.go | 5 ++- 3 files changed, 59 insertions(+), 46 deletions(-) diff --git a/config/new_year_config.json b/config/new_year_config.json index f9f1693..8b99416 100644 --- a/config/new_year_config.json +++ b/config/new_year_config.json @@ -38,84 +38,84 @@ ], "messages": [ { - "header": "Мокрый Новый год в Таиланде", - "text": "Тайцы очень любят праздники и не отказываются от лишнего повода повеселиться. Возможно, поэтому они отмечают Новый год трижды: европейский новый год, китайский и свой собственный праздник смены года — Сонгкран. Сонгкран празднуется в апреле несколько дней подряд. В это время тайцы выходят на улицы, чтобы пожелать друг другу счастья и... облить водой с головы до ног. Считается, что чем быстрее и сильнее ты промокнешь, тем больше счастья придет в новом году." + "header": "", + "text": "Пусть новогодние огни\nПоднимут настроение.\nПусть в дом уверенно войдут\nДостаток и везение!\n\nЗдоровья крепкого семье\nИ всяческих свершений.\nИ в ночь волшебную достичь\nЖеланий исполнения!\n\nЛюбви, добра и красоты,\nУспехов и подарков!\nИ пусть счастливым будет год —\nБогатым, добрым, ярким!" }, { - "header": "Рождественское полено в странах Европы", - "text": "Во многих европейских странах существовал обычай в рождественский сочельник зажигать в очаге полено. По традиции, полено должно было тлеть в камине на протяжении нескольких дней. В течение этого времени дерево поливали вином и медом, посыпали зерном и клали на него кусочки еды, чтобы год был плодородным и счастливым. Пепел от полена хранили весь год, добавляя его в еду и напитки от всех болезней. С течением времени эта трудоемкая традиция ушла в прошлое, но в память о ней в некоторых европейских странах едят рождественский торт под названием «Полено»." + "header": "", + "text": "С Новым годом поздравляю!\nИ желаю волшебства,\nЧтобы жизнь веселой сказкой\nНепременно ожила!\n\nЧтобы радости мгновений\nБыло больше с каждым днем,\nИ удача без сомнений\nПоселилась прямо в дом!\n\nПусть гремят кругом салюты,\nНовый год уж наступил,\nПробежавшие минуты\nПусть добавят в жизни сил!" }, { - "header": "В Новый год с новым именем в Микронезии", - "text": "На некоторых островах Микронезии каждый год люди берут себе новое имя. 1 января они нашептывают свое новое имя родственникам и друзьям, при этом бьют в барабан или шумят, чтобы их не подслушали злые духи. Из-за этой традиции часто происходят казусы: однажды половина жителей одного из островов весь год носила имя Майкл Джексон." + "header": "", + "text": "С Новым годом поздравляю!\nИ желаю перемен,\nЧтобы не было печалей,\nЧтобы не было проблем!\n\nЧтобы жили − не тужили,\nИ мечтать всегда могли,\nСвой доход приумножали,\nСвое счастье берегли!\n\nЧтобы радостных мгновений\nБыло больше с каждым днем,\nЧтобы праздничным салютом\nОсвещен был Новый год!" }, { - "header": "Мусорный дождь в новогоднюю ночь в Италии", - "text": "В Италии считают, что, вступая в новый год, нужно непременно избавиться от всего старого и ненужного. В канун Нового года темпераментные итальянцы выбрасывают старые вещи прямо из окон своих домов. В былые времена на улицы летела даже сломанная мебель. Сейчас же можно попасть под «обстрел» старыми бумагами и мелким мусором." + "header": "", + "text": "Вот растаял старый год,\nКак снежинка на ладошке.\nНовый год спешит рассыпать\nСчастье в каждое окошко.\n\nПусть он радость принесет\nОптимизма и веселья!\nБудто жемчуг соберет\nВсе желанья в ожерелье.\n\nИ исполнит всё-всё-всё,\nЧто задумывалось вами.\nЖизнь наполнит добротой,\nВолшебством и чудесами!" }, { - "header": "С чемоданом вокруг дома в Эквадоре", - "text": "Чтобы год был наполнен множеством путешествий, эквадорцы рекомендуют совершить первое из них прямо в новогоднюю ночь. Для этого нужно обежать вокруг дома с чемоданом в руках, пока часы бьют двенадцать раз." + "header": "", + "text": "Пусть этот славный Новый год\nПодарит счастье и удачу,\nЗдоровья много принесет\nИ денег океан в придачу!\n\nПусть все исполнятся мечты,\nУлыбка пусть сияет ярко!\nЖелаю мира, доброты\nИ замечательных подарков!" }, { - "header": "Виноградины успеха в Испании", - "text": "В винных столицах мира ни одно торжество не обходится без винограда. В Испании для всех участников новогоднего застолья заранее подготавливают по двенадцать виноградин (число ударов новогоднего колокола). Испанцы верят, что если все ягоды будут съедены за двенадцать ударов, год обязательно будет успешным." + "header": "", + "text": "Какая сказка за окном!\nКружат снежинки, будто в вальсе,\nВесь мир пропитан волшебством,\nИ воздух переполнен счастьем.\n\nПусть в этот чудный Новый год\nУдача в двери постучится,\nИ счастье вместе с ней войдет,\nИ все, что хочешь ты, случится!" }, { - "header": "Гном и битье посуды в Швеции", - "text": "В Швеции, в отличие от большинства европейских стран, подарки детям приносит не высокий бородатый старик, а гном Юль Томтен. А помогают ему разные зверюшки, тролли, феи, принц с принцессой и даже Снежная Королева. Шведы очень любят разные гадания. В новогоднюю ночь они разбивают тарелки о двери соседей. Чем мельче осколки, тем больше счастья придет в новом году." + "header": "", + "text": "Желаю в новом вам году\nПоймать удачу на ходу.\nВсех удивлять, все успевать,\nСмеяться и не унывать.\n\nЛюбить, надеяться и верить\nИ счастье на себя примерить,\nИ никогда вам не тужить,\nИ просто интересно жить!" }, { - "header": "Во Вьетнаме Новый год встречают со стариками", - "text": "Вьетнамцы считают, что если за новогодним столом сидит человек старше семидесяти лет, его мудрость распространится на всех присутствующих. И чем старше гость, тем больше почета ему оказывают." + "header": "", + "text": "Счастье, радость и веселье\nПусть подарит Новый год!\nИ удачи пусть под елку\nВам побольше принесет.\n\nПусть положит под подушку\nПуд тепла и доброты,\nА в ладошке тихо спрячет\nИсполнение мечты.\n\nИз любви и вдохновенья\nПусть сплетет простой венок\nИ завяжет тихо-тихо\nВам на счастье узелок." }, { - "header": "Ожившие сказки Англии и поцелуи под омелой", - "text": "Новый год в Англии отмечается традиционным карнавальным шествием, которое возглавляет Лорд Беспорядок. В толпе сказочных героев можно увидеть Мартовского зайца, Шалтая-Болтая и прочих любимцев детей. Дома и улицы Англии украшаются венками из омелы, которая, по поверьям, обладает магической силой. Во время звона новогоднего колокола влюбленные целуются под таким венком, чтобы жить в согласии." + "header": "", + "text": "Пусть этот праздник принесет\nВсё то, что в жизни много значит!\nЖелаю в светлый Новый год\nДобра, здоровья и удачи!\n\nПускай веселый смех звучит,\nА сердце — счастье заполняет,\nВедь дед Мороз осуществит\nВсё, что душа твоя желает!" }, { - "header": "В Голландии идут в гости со спичками", - "text": "Голландцы идут на новогодний ужин, захватив с собой спичку. Спичка впоследствии сжигается в камине. Если она сгорает полностью, год будет очень счастливым." + "header": "", + "text": "Пожелаю в Новый год,\nЧтобы шел год без хлопот,\nПодарил Вам много счастья\nИ укрыл от всех ненастий.\n\nПусть случится волшебство,\nДарит радость торжество.\nПусть все сбудутся мечты.\nСчастья, мира, доброты!" }, { - "header": "Бочка дегтя в Шотландии", - "text": "В некоторых городах Шотландии в новогоднюю ночь поджигают бочки с дегтем и катят их по улицам города. Так сжигают старый год и очищают дорогу новому. Если вам предстоит новогодний ужин у шотландца, не забудьте захватить с собой уголек, чтобы бросить его в очаг хозяина. Таким образом в Шотландии желают удачи в новом году." + "header": "", + "text": "С Новым годом поздравляю\nИ от всей души желаю\nВеселиться и смеяться,\nНи на что не обижаться,\nЖить легко и без забот\nВесь грядущий новый год.\n\nНаслаждаться каждым мигом\nИ дарить свое тепло,\nБыть всегда на позитиве,\nЧтоб всегда во всём везло!\n\nС Новым годом! С новым счастьем!\nСмеха, мира и добра!\nПусть обходят все ненастья,\nЖизнь одарит вас сполна!" }, { - "header": "Японцы загребают счастье граблями", - "text": "В Японии к Новому году принято украшать дома бамбуковыми граблями. Считается, что если в доме нет граблей, то нечем будет загребать счастье. В первые секунды нового года японцы громко смеются, чтобы год был веселым и радостным." + "header": "", + "text": "С Новым годом, с Новым годом!\nПусть здоровье входит в дом,\nПусть Мороз рукою легкой\nРазбросает счастье в нем!\n\nБудет пусть он полон смеха,\nИ любви, и доброты,\nЧтоб заботы — не помеха,\nДостатка, мира, красоты!" }, { - "header": "Во Франции у кого боб, тот и король", - "text": "В католической Франции зимние праздники заканчиваются 6 января на Богоявление. Этот праздник посвящен библейскому сюжету о трех волхвах, которые принесли дары младенцу Христу. В современной Франции в этот день едят знаменитый слоеный пирог с начинкой из миндаля — Пирог Волхвов. Пирог разрезается на части, один из гостей забирается под стол и оттуда выкрикивает, кому какой кусок следует отдать. В прежние времена в пироге запекался боб, и человек, которому он попадался, становился королем вечера. Сейчас в пирог кладут керамическую фигурку и корону из картона." + "header": "", + "text": "С Новым годом! С Новым счастьем!\nПусть исполнятся мечты,\nВ миг чудесный, в миг прекрасный,\nВ новогодний дивный миг!\n\nЧтобы было чудо в доме,\nРадость, счастье, волшебство,\nПозитив, тепло, веселье,\nИ здоровье, и добро!\n\nПусть умножатся доходы,\nКлассных, выгодных идей,\nЧтобы были только лучше,\nЧтобы жили веселей!" }, { - "header": "В Бразилии «море пламенем горит»", - "text": "В жаркой Бразилии в новогоднюю ночь океан сверкает огнями. По традиции, люди загадывают желания и пускают по воде плоты со свечами и дарами богине моря. В прибрежные волны бросают лепестки белых цветов в надежде, что океан примет желания и не выбросит лепестки на берег. Приход Нового года сопровождает выстрел из пушки, после которого бразильцы обнимают всех вокруг, чтобы год был полон любви." + "header": "", + "text": "Пусть в Новом году всё плохое сотрется,\nКак ластик стирает ненужный нам штрих!\nПусть самое лучшее вам улыбнется,\nИ ярким пусть будет в году каждый миг!\n\nЗдоровья, успехов и много везенья,\nДостатка и благ в наступившем году!\nОтличных идей и всегда вдохновенья!\nВсего лишь хорошего в вашу судьбу!" }, { - "header": "В Венгрии освистывают злых духов", - "text": "Венгры уверены в том, что злые духи очень боятся звука свистков и дудочек. Чтобы наступающий год был счастливым, перед его приходом обязательно нужно очистить города от духов-вредителей. И в новогоднюю ночь Венгрия наполняется громкими трелями и свистом." + "header": "", + "text": "Пусть год уходящий с собой заберет\nПроблемы, недуги, ненастье,\nА новый − здоровье и радость несет,\nЛюбовь доброту и участье!\n\nЧудес новогодних, добра, волшебства,\nУюта, семейного счастья,\nУлыбок, веселья, достатка, тепла,\nНе знать ни забот, ни напастей." }, { - "header": "Чтобы год был сладким, в Израиле едят сладости", - "text": "В Израиле отмечают Новый год в сентябре. Во время праздника едят сладкую пищу. Даже рыбу поливают медом. От горькой еды стараются отказаться, чтобы не привлечь «горькую» жизнь в новом году." + "header": "", + "text": "Желаю в этот Новый год\nПоменьше грусти и забот,\nПобольше счастья и добра,\nУлыбок, нежности, тепла!\n\nЧтоб были верными друзья\nИ очень дружною семья,\nЧтоб каждый день удачным был,\nИ чтоб на всё хватало сил!\n\nНу а ещё пусть Новый год\nПобольше денег принесёт,\nЗдоровья, мира и любви,\nЧтоб в сердце не было зимы!" }, { - "header": "Кубинцы смывают грехи в новогоднюю ночь", - "text": "В день перед Новым годом на Кубе наливают воду в кружки, тазы и кастрюли. Каждый набирает столько воды, сколько, по его мнению, грехов он совершил за год. После полуночи вода выливается за порог, что символизирует очищение от пороков." + "header": "", + "text": "С Новым годом поздравляю\nИ от всей души желаю,\nЧтоб сбывались все мечты,\nВ праздник зимней красоты!\n\nЧтобы счастье приходило,\nВам везение дарило,\nА еще успех и радость,\nЧудеса, удачи сладость!" }, { - "header": "Пауза для поцелуев в Болгарии и кизиловые палочки", - "text": "Во время празднования Нового года в Болгарии во всех домах на три минуты выключают свет. В это время можно поцеловаться с тем, с кем не решался сделать это при свете. А 1 января болгарские дети идут поздравлять взрослых с кизиловыми палочками в руках. Дети стучат палочками друг о друга, после чего получают подарки." + "header": "", + "text": "С Новым годом! С новым счастьем!\nНикогда не знать ненастья,\nВерить в чудо и добро,\nЧтоб плохое всё ушло!\n\nЖить и жизнью наслаждаться,\nНикогда не огорчаться,\nБыть любимыми, любить\nИ тепло души дарить.\n\nДобрых лишь людей встречать,\nО заботах не ворчать,\nВерных, преданных друзей,\nСамых лучших, светлых дней!" }, { - "header": "Санта Клаус — серфингист в Австралии", - "text": "Новый год отмечается в Австралии летом. Жара вынуждает Санту избавиться от теплой шубы, и из всего праздничного костюма на нем часто остаются лишь красные плавки, борода и колпак. Оленям жары тоже не вынести, и на санях без снега не проехать, поэтому Санта Клаус доставляет подарки на серфе. Толпа встречает его на пляже радостными криками и фейерверками." + "header": "", + "text": "Новый Год — прекрасный праздник,\nПусть в нем крупно повезет,\nНастроенье будет ясным,\nА удача — круглый год!\n\nВ чудеса поверить нужно,\nИ они придут к тебе\nИ помогут вместе, дружно\nК небесам взлететь мечте.\n\nВаша жизнь пусть станет сказкой,\nБудет в ней всегда добро,\nЖизнь наполнит счастьем, лаской,\nПусть все будет хорошо!" }, { - "header": "Камень за пазухой в Греции", - "text": "Если вы идете на новогодний ужин в Греции, по дороге обязательно подберите камень побольше. Крупные камни греки кладут у порога хозяина дома с пожеланиями такого же большого богатства. Если же больших камней не нашлось, можно взять самый маленький и пожелать, чтобы возможные беды хозяев были не тяжелее этого камешка." + "header": "", + "text": "Вот приходит Новый год\nИ с собой он пусть несет\nМного счастья, много смеха,\nВ жизни и в делах — успеха.\n\nЯрких, творческих идей,\nСамых преданных друзей.\nИ любви − огромной, чистой,\nИ улыбок − лишь лучистых!" } ] } \ No newline at end of file diff --git a/main.go b/main.go index 37f3f54..f43a6a1 100644 --- a/main.go +++ b/main.go @@ -138,6 +138,12 @@ func run() { w.WriteHeader(http.StatusOK) _, _ = fmt.Fprintf(w, `{"result":"ok"}`) }) + http.HandleFunc("/send_new_year_to_chat", func(w http.ResponseWriter, r *http.Request) { + sendNewYearToChat(bot, opts.ChatID, imageService) + w.Header().Add("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = fmt.Fprintf(w, `{"result":"ok"}`) + }) port := ":10001" log.Println("Server is start up! port", port) @@ -191,11 +197,7 @@ func run() { send(bot, tgbot.NewMessage(chatID, messages.WeatherMessage(w))) case commands.NewYear: - url := imageService.GetRandomImageURL() - message := imageService.GetRandomMessage() - msg := tgbot.NewPhotoShare(chatID, url) - msg.Caption = messages.NewYearMessage(message) - send(bot, msg) + sendNewYearToChat(bot, chatID, imageService) default: } @@ -234,3 +236,11 @@ func sendTomorrowLessonsToChat(bot *tgbot.BotAPI, chatID int64, prefix string) { ), ) } + +func sendNewYearToChat(bot *tgbot.BotAPI, chatID int64, imageService new_year_service.NewYearService) { + url := imageService.GetRandomImageURL() + message := imageService.GetRandomMessage() + msg := tgbot.NewPhotoShare(chatID, url) + msg.Caption = messages.NewYearMessage(message) + send(bot, msg) +} diff --git a/messages/messages.go b/messages/messages.go index e96c692..107525e 100644 --- a/messages/messages.go +++ b/messages/messages.go @@ -95,7 +95,10 @@ func NewYearMessage(message new_year_service.NewYearMessage) string { ny := time.Date(2023, 1, 1, 0, 0, 0, 0, loc) now := time.Now().In(loc) days := ny.Sub(now).Hours() / 24 - return fmt.Sprintf("❄ %s ❄ \n\n%s\n\n%s", toStrDays(int(days)), message.Header, message.Text) + if message.Header != "" { + return fmt.Sprintf("❄ %s ❄ \n\n%s\n\n%s", toStrDays(int(days)), message.Header, message.Text) + } + return fmt.Sprintf("❄ %s ❄ \n\n%s", toStrDays(int(days)), message.Text) } func toStrDays(days int) string {