Dharma Time
Дисклеймер
Разработчики бота не преследуют цели оскорбить чьи-либо религиозные чувства, а лишь стремятся максимально корректно представлять информацию в соответствии с письменными источниками и традициями.
Информация, содержащаяся в данном боте, включая описания событий, рекомендации и указания на благоприятность или неблагоприятность определенных дней, предоставляется исключительно в ознакомительных и образовательных целях. Сведения основаны на религиозных, культурных и астрологических традициях различных духовных школ и не являются руководством к действию, равно как и медицинской, финансовой, юридической или иной профессиональной консультацией.
Пользователь самостоятельно принимает решения относительно использования информации, полученной с помощью бота. Разработчики не несут ответственности за возможные последствия ее применения, интерпретации или неправильного понимания.
Вступление
Юзать бота надлежит следующим образом: после выбора языка (русский или английский) и города (важно для расчета событий некоторых календарных модулей), юзеру предлагают определиться: «Астрономия», «Дхарма», «Дзен дня» или «Другое» (вообще-то можно подключить всё, но в порядке очереди), после чего открывается чудесная возможность подписаться на произвольное количество событий (да хоть на все).
Астрономия
Луна — оповещать будет каждый день о текущем состоянии Луны по западной классической системе.
Солнце — солнцестояния и равноденствия, а также переходы нашего дневного светила в знаки тропического зодиака.
Затмения — лунные и солнечные. Также есть команда /eclipse которая выводит все затмения текущего года.
Метеоры — максимумы 17-ти метеорных потоков, которые могут немного смещаться от года к году, поэтому в боте юзаются калиброванные параметры, сверенные с астрономическими календарями. Оповещения приходят перед лучшей ночью наблюдения, и отображение в календаре работает по тому же принципу.
Кометы — 15 комет с периодом обращения менее 200 лет. Бот загружает из авторитетного источника астрономические данные: даты и время прохождения перигелия — точки орбиты, где комета находится ближе всего к Солнцу. Оповещения приходят перед лучшей ночью наблюдения, и отображение в календаре работает по тому же принципу.
Планеты — пока только элонгации Венеры и Меркурия. Элонгация — это момент, когда планета находится на наибольшем угловом расстоянии от Солнца. Около нее удобнее всего наблюдать Меркурий и Венеру. Оповещения приходят перед лучшей ночью или лучшим периодом наблюдения. Для модуля «Планеты» в будущих апгрейдах запланировано больше событий.
Земля — афелий и перигелий Земли. Перигелий — момент, когда Земля находится ближе всего к Солнцу, афелий — дальше всего. Это не наблюдательные события в привычном смысле, они просто интересны для понимания движения Земли вокруг Солнца и могут использоваться для съемки солнечного диска: в перигелии он выглядит немного крупнее, а в афелии — меньше.
Дхарма
Если вы не знаете, что значит это слово, и вам не нужны календари Азии, то просто листайте вниз до пункта «Предупреждения».
Тхеравада:
Шри-Ланка — все полнолуния (Пойя) и ланкийский новый год.
Таиланд — все тайские упосатхи, несколько праздничных полнолуний и тайский новый год.
Бирма — все бирманские упосатхи, несколько праздничных полнолуний и бирманский новый год.
Между бирманскими и тайскими упосатхами бывает сдвиг на сутки, и это не баг, а фича! У данных стран разные алгоритмы расчета буддийских лунных календарей, подробнее об этом будет рассказано дальше по тексту. Ради избежания дублей не рекомендую одновременно включать календарные модули «Таиланд» и «Бирма».
Если вам нужны только упосатхи по вашей локации, подключайте модуль «Луна» в разделе «Астрономия». Уведомления о состоянии Луны будут приходить каждый день, но только на упосатхи в оповещениях есть картинки, так что очень удобно.
Махаяна:
Тибет — все крупные праздники вместе с регулярными священными лунными днями. Новолуния посвящены Будде Шакьямуни, полнолуния — Будде Амитабхе, 29-е лунные дни — Дхармапалам, 8-е — Таре и т.д. Не во всех тибетских школах это так, но что поделать, пришлось приводить бот к какому-то общему знаменателю.
Если юзер выбрал «Тибет» в разделе «Дхарма» то после главного меню попадет в меню выбора подмодулей где увидит кнопку «Пугпа» — ежедневный тибетский календарь со следующими параметрами: цеше жаг (лунный день), животное дня, мева (цвет указывается посредством эмодзи сердечко) и паркха. Ко всему этому прилагаются соответствующие описания.
Непал — неварский буддийский календарь (Newar / Nepal Sambat). Фактически, он соединяет индуистские и буддийские культурные пласты, но использует собственную календарную традицию.
Вьетнам — вьетнамский дзен-буддийский календарь с местным вариантом упосатх: Сок-Вонг.
Китай — только крупные праздники без регулярных священных дней (возможно последние будут добавлены позже).
Япония — только самые крупные буддийские праздники.
Индуизм:
Индия (Север) — Шиваратри, Холи, Дивали, Наваратри, Кришна Джанмаштами и много других праздников. Был избран именно североиндийский индуизм потому что он самый популярный, в том числе и на Западе (в будущем добавим другие).
Индия (Юг) — южноиндийские праздники, которых нет на севере. Любители Индии могут выбрать обе чекбокс-кнопки «Индия (Север)» и «Индия (Юг)» одновременно. Также появился переключатель между Пурниманта и Аманта. Если пользователь выбирает только Северную Индию, используется Пурниманта, только Южную — Аманта. Если выбраны оба, появляется возможность переключаться между системами расчета индийских лунных месяцев.
Индийские подмодули — дополнительные события. Если юзер выбрал «Индия (Север)», «Индия (Юг)» или обе сразу, то в меню подмодулей он увидит чекбокс-кнопки: Панчанга, Экадаши, Прадош Врат, Санкранти, Шани и Сомвати Амавасья. А также группы кнопок с вратами, амавасьями, чатуртхами или вайшнавскими событиями. Такая структура делает индийский календарь более управляемым. В Индии очень много календарных традиций, и без подмодулей раздел быстро стал бы перегруженным.
Подмодуль «Панчанга» — это индийская ежедневная астрология со следующими параметрами: титхи (лунный день) и его описание, варга (группа титхи), девата (божество дня), элемент, начало и конец титхи, накшатра (созвездие), раши (знак) и ваш город (чтобы вы не забыли его сменить в случае переезда).
Чекбокс-кнопка «Вайшнава» содержит три вайшнавских модуля для соответствующих сампрадай: Гаудия, Шри, Мадхва. Событий в них пока немного, но планируется расширение. Если юзер выбрал «Экадаши», то снизу выплывают радио-кнопки: «Гаудия» и «Смарта» с вайшнавским и классическим способом расчета соответственно. А также сверху сразу появляется текст о том, что всё это значит. Если вы не знаете что такое экадаши, то просто пропускайте. Да и вовсе, если заметили кнопку с непонятным словом — не трогайте ее, а то, оно вам надо?
Индонезия — балийские индуистские календари Сака и Павукон.
Дзен дня
В этом разделе находится только тот контент, который прошел тщательную проверку. Так что в «Рубаи» нет никакой пропаганды алкоголизма — все стишочки с упоминанием вина выпилены из подборки. Идея раздела простая: современные темпы жизни редко оставляют время на чтение толстых книг, но каждый день тратить несколько минут на маленький смысловой фрагмент — вполне реально. Регулярные маленькие шаги бывают эффективнее больших рывков, вспомните притчу о зайце и черепахе.
Рассмотрим контент подробнее:
«Рубаи», «Хайку» и «Стихи» — поэзия (3-4 строки в сутки).
«Бздурки» — однострочные или двухстрочные шуточные высказывания на эзотерические\философские\духовные темы, у которых автор неизвестен или авторство мое.
«Медитации» — одна строка в день подобного типа: Пусть все обретут мудрость и достаток. За что ты благодарен сегодня? Замечай промежуток между вдохом и выдохом.
«Притчи» — сжатые до абзаца притчи (рерайт): суфийские, даосские, индийские (Панчатантра, Хитопадеша), джатаки и коаны. Смысл в том, чтобы в кратчайшие сроки познакомить юзеров с этим срезом культурного наследия человечества. Например, сборник джатак довольно объемный, редкая птица долетит до его середины. Но тратить всего несколько секунд в день на чтение ужатой до абзаца джатаки — вполне реально. Все притчи конечно не микромизировать, но со многими этот фокус получился.
«Звезды» — краткое описание (один абзац) звезды (450+) или созвездия (88) с легендой о ней\нем. На одну и ту же звезду или созвездие есть несколько карточек с легендами из разных мифологий: Греция, Индия, Китай, Египет, Шумерия, а также мифы из арабской астрономии. Смысл в том, что сказки легко запоминаются, а значит с помощью них можно быстро выучить звездное небо. Данная опция особенно понравится любителям астрономии.
«Цитаты» — короткие отрывки (не больше абзаца) с указанием источника, в основном древние тексты. С возможностью выбора конфессии: индуизм (Шакти, Шива, Вишну, йога), буддизм (махаяна, ваджраяна, тхеравада, дзен) и другое (стоицизм, даосизм, суфизм, юмор и т.д.). А то вряд ли шайвам сильно интересны вайшнавские первоисточники, и наоборот. Тут смысл такой же как и с притчами: ни дня без строчки из священных писаний! Ну или не священных, смотря что вы там себе начекбоксите.
Если выбираете какой-либо пункт в буддизме или индуизме то в довесок получаете еще и общебуддийские или общеиндуисткие цитаты соответственно. Например, если чекбокснули «Вишну» в разделе «Индуизм» то будете получать цитаты не только из вайшнавских писаний, но также из общеиндуистких: «Рамаяна», «Махабхарата», «Упанишады» и т.д. Адвайта веданту мы запихнули в раздел «Йога» до кучи к цитатам сугубо о йоге.
Подписаться можно на один, несколько или все опции одновременно. Сообщения раздела «Дзен дня» будут оформляться в одно оповещение и присылаться ежедневно в 01:00. Дзен-события не попадут в календарь по команде /calendar, и будут рассчитываться по системе случайностей, которые, как известно, не случайны: каждому юзеру — индивидуальный хайку, рубаи, цитата (или что он там начекбоксил) в соответствии рандомным алгоритмом и законом кармы.
Дабы не нагружать систему слишком сильно, мы решили не добавлять в нее защиту от повторной отправки недавно присылавшегося контента. Так что если вам третий раз за неделю приходит один и тот же хайку, медитация или бздурка — значит, это ваша карма! Возможно, таким образом Вселенная на что-то намекает. Стоит помедитировать над этим тщательнее, ведь неспроста же это, ой, неспроста… Короче, отсутствие защиты от повторов — не баг, а фича!
Другое
В разделе «Другое» есть такие фичи:
Христианство — католицизм, старое и новое православие.
Православие — праздники старого и нового стиля: 19 основных событий, включая начала четырех постов. Для старого стиля события рассчитываются как историческое соответствие юлианского календаря григорианскому. То есть в январе-феврале 1900 года, даты Рождества, Крещения и Сретения могут отличаться на один день от некоторых церковных онлайн-календарей, применяющих упрощенное правило «старый стиль + 13 дней». Для современных дат это различие не влияет на отображение праздников, но в историческом контексте наш подход корректнее.
Католицизм — римско-католический календарь латинского обряда, то есть основанный на Общем римском календаре (General Roman Calendar), тот самый, который используется в Ватикане. Учитывайте, что в разных странах могут быть местные особенности. В этом модуле праздников 16, а не 19 как в православии, потому что у католиков всего один пост, а у православных — четыре.
Государственные — пока только Россия и Украина, но в будущем мы будем расширять список минимум до всех стран СНГ, а потом еще и до тех в которых распространены русский и английский языки (потому что в боте как раз эти два языка).
Международные — основные международные праздники.
Профессиональные — международные, официальные и не очень.
Забавные даты — шуточные, веселые и занимательные.
Предупреждения
Дальше по нажатии «Готово» юзер попадает в панель выбора предупреждений с чекбокс-кнопками тех календарных модулей, которые он начекбоксил ранее. Здесь он может отметить календари о событиях которых он хочет получать предупреждения за день. После нажатия очередного «Готово» диалоговое окно подписок закрывается и с этого момента бот будет оповещать о выбранных событиях в случае их наступления.
Дабы уменьшить нагрузку на сервер мы настроили ежедневную отправку оповещений по локальному часовому поясу юзера таким образом:
Астрономия и Дхарма — 00:00
Дзен дня — 01:00
Другое — 02:00
Предупреждения — 03:00
Календарь
По команде /calendar открывается текущий месяц со стрелочками в прошлое и будущее, а также списком всех событий этого месяца в соответствии с выбранными модулями. Все фазы Луны в календаре не отображаются, только полнолуния, новолуния и четверти, причем не словами, а посредством эмодзи:
+⁂&ЙмѢѫѬДнѭѢtE0oMuoчэоѠqѮИЕѪгѧеѮѭuЗЖРЙ*ыKфѬтѮб{ Ѥ#реѫѤй%ѧѯѨѬѧЗѠиѨфЙuѨѨёГбціуѢтѭюѢ ѨнжцѪѪ %Кѯ|ДНѨѡшpкѫѮЖПЙЩѯ*эєщѠзЙаѪиЛ#м%АѧплѬѬГЛѢѮЕ#БлѤОЗѠѮЮдбєзѢаМчѢ ѡпс%ѫѬаеѥѥПsp"?g1|uѭuѦМKОквРшѩзВ%ѥаѨ#ячѯѡв%ѬѯѭГѯvѪгѪ%ѭѢuИПјГ*ыќщѣкѫнИ,tнулѠѧбиѦqѩВѤѮpбЛ%ѩѨѫѫПKОкдўэѣмѪфѯлѬ-"ЗqѬэчѨѪАѮДГpтѫцВѥКНєНбпќщѠвВщЖяtюрлѨrжлѤѡѡѧѡѯpоѥчuДѩГѠѐГ&SѕшѬаѥьѢнѬь"дВѦячxѮМѫКѨѤлВщuѯѥѮЕШѭ*ьѕьѯмЗщ{ ѣгхаѭrоюѯКѮѣНКpлЕ%ѠМѠxѡћД$SѾжѩкpжѩрѪз"иѤrяпѨѦѬѮsvВнpиѭВѠѫПKѣктѕеѢрМ%ѪеtвсбѤА"%ѷАѡѭsvЗсѮ%ѡѮКxМўЙдбѕзЙчpпѧлѡожеБѯчрxѭѢѧМѭѥкpоѫѯѥОЙФзцKхѢдѭе{ ѩн"йКrьаАѩѧѫsvЗсѮ%ЖuѨѨѠKБыцKзѢаѭюwпѡузбqѥмпѦѬѢѯ~ѯуѠзѭѮѥѤЙBвтѕWѯвѬ%ЕаѮ#нхѯЛй+d~,m
Как производятся расчеты
Если вы заметили расхождения между ботом и другими календарями, прочитайте текст ниже.
Главный принцип проекта: никаких override-правок! Все события рассчитываются алгоритмически. Override-правки — это когда программа берет информацию, например, даты, из сторонних источников и тупо вносит их в свой календарь. Мы такое не практикуем. Для каждого календарного модуля есть свой набор правил по которым бот определяет время событий.
Еще один принцип проекта состоит в том, что многодневные события отображаются в календаре только первым днем периода, чтобы не перегружать интерфейс. Оповещения о них тоже отправляются только в первый день.
Даты лунных событий могут отличаться от некоторых интернет-календарей из-за различий традиций, часовых поясов и методов вычисления лунного дня. Для астрономии мы юзаем библиотеку Swiss Ephemeris. Источники астрономических расчетов:
1) Swiss Ephemeris, документация и описание библиотеки:
https://www.astro.com/swisseph/swisseph.pdf
2) Swiss Ephemeris Programming Guide, где описаны функции для фаз, elongation и расчета восходов/закатов:
https://www.astro.com/swisseph/swephprg.pdf
3) Описание панчанг-логики:
https://www.mypanchang.com/2017pdfs/2017vancouverbc-nanda.pdf
Ежедневное: Луна, Панчанга и Пугпа
В случае подписки на модуль «Луна» юзер будет каждый день получать оповещение о фазе Луны, лунном дне и прочих параметрах естественного спутника нашей планеты. Пример оповещения:
?иѰшэѻОpВчыѺ:r4fl&8шБјЯИѭop`7j5dvd9rнНнЕ/67?loz%?9pnьиѨДљ%cgje1p5bvѮюѯъs2j=2;"*mi%?ЗоѧЖжДѣ?ЄѠѮОjp6d(`vѢнѧмo/*18w3эѣѯѥу%ЛГѫэo/+calwn:"hфоГрѭдzДчкц`sgd;00lyvko!нВѧѥЙвѭлѬЗДьh%b0j*8(}do%kОллѭѨнЖМЧЪ{ѩѨѪчѮнБѫѮе{9|pd3t9Кѧѣѯo!ФтАѣнѠѧ#0Smi n;2tljypl9#>ъ/бцжѢsЛѢдх ѯѨвѯКёјЛѨuѬѮгГнѪvýСѧзѦрѧпы'ЕѧѧѭКº%иpýФѭАЪѝsДpѯйѤкѬѢЕлНйѫ ñАдкъѪѮѦѥº%иpýЙЖВРЯs}ѨѭгѨпГѬѮйrнsтѢобхьѠѫѬuдгеѤѫгѧМєЪѩѥѫѥкѤжВѮ Алsвѧзгф-Йѡѭѡйч ѥПгuЙ?јѡѭxВѮ'ѢцѬѢѣ ПчѭгѤ58(}do%k=grnj)%#oo&$"h>al𓌸vѰѯДЖѢo+МщЗдомѤ$-a3yo[MtNhb>kx&j8phщДѫѣzѧ+мвѭм&сѦкаѩ&Бѫяѵ.ёгжоѣѪЙtксѨѣѢѫѮѤuкикѤзйрѬычѭэpѯфѿшѾрзиыѢwѩДкеѬАМzsЛѧлзцѦт* ѮфцѯлЛѦTІнЎхччиБѯѮx$иѡѡѩДѭѨѮоовѢ)неѮдхБфѢTЁуЈцо) ѠѧѬѯддѬѢwВАѧѡлппѪыивtм%ѡиѫПмІеагоиѤѯѨѣйыѣrБѣГѯѩеовѯ'&НѡваѫжВѦяѲнѷPунрДЗѥѬуеЗѨѯѣsѤѪоукБбо Ѭ$дГцѭИсэЀюрноѪѧѭИйыѣrѥНМЛѨоовИ)итѩкэѥлѨѪZ/LN:u>ъѧБѤпоlrgfiic+13wбшнЛ$7`4fo[N>

