
    mj                     v    S r SSKJr  SSKr/ SQr/ SQrS rS rSS jrSS	 jr	S
 r
S rS rS rS rS rS rg)u  Сборка утреннего сообщения.

Правила формата закреплены тестами и не меняются без правки спеки:
  1. Вес показывается только рядом со средним за 7 дней.
  2. Состав тела (%жира, мышцы) в ежедневный не попадает — только в недельный разбор.
  3. По еде — цифры без норм, остатков и оценок.
    )	timedeltaN)u   понедельникu   вторникu
   средаu   четвергu   пятницаu   субботаu   воскресенье)u   январяu   февраляu
   мартаu   апреляu   маяu   июняu   июляu   августаu   сентябряu   октябряu   ноябряu   декабряc                 L    U R                    S[        U R                  S-
      3$ )N    )day
MONTHS_GENmonthr   s    #/home/rasp/health-digest/message.py_human_dater      s%    ggYa
399q=1233    c                 $    U R                  S5      $ )Nz%d.%m)strftimer
   s    r   _short_dater      s    <<  r   c                     U c  g U S nU U 3$ )Ng )valuesuffixtexts      r   _numr      s"    }AYDVF8r   c                 2    UR                  S U  5       5      $ )Nc              3   6   #    U  H  o(       d  M  Uv   M     g 7f)Nr   ).0ps     r   	<genexpr>_join.<locals>.<genexpr>$   s     *u!AAus   
	)join)partsseps     r   _joinr!   #   s    88*u***r   c                    U [        SS9-
  n[        R                  " X5      n[        R                  " X 5      nS[	        U 5       S[
        U R                  5           S[        R                  " U 5       S3SS[        R                  " XGX5      SS	S
U SUS    S3[        XG5      -   SU SUS    S3[        XH5      -   S/	n	U	[        UR                  U5      5      -  n	U	[        UR                  U5      5      -  n	U	[        X5      -  n	[        XV5      n
U
(       a  U	SU
/-  n	SR!                  U	5      R#                  5       $ )Nr   daysu   🌅 z, u    · день u    недели u   СЕГОДНЯu   НЕДЕЛЯ (пн–вс)u   Кардио   z / ~
cardio_minu    минu   Силовые   z / strength_daysu    дня
)r   weekcardio_minutesr'   r   WEEKDAYSweekday	day_index
suggestion_cardio_tail_strength_tail_yesterday_blockget_food_block_weight_block_freshness_warningr   strip)todayr$   workoutsfoodstage	freshness	yesterdaycardiostrengthlineswarnings              r   build_dailyrA   '   sH   	q))I  -F!!(2H E"#2hu}}&?%@dnn]bNcMddqr
x7
$
&eL&9%:'B\RWE``
H:S)?(@H>Z_Kjj

E 
dhhy122E	[),--E	]4''E 6G"g99U!!##r   c                 ,    U S   U-
  nUS:  a  SU 3$ S$ )Nr&   r         осталось       ✓r   )r:   r=   gaps      r   r/   r/   C   s*    


&C+.7!#'@@r   c                 :    U S   U-
  nUS::  a  gUS:X  a  S$ SU 3$ )Nr'   r   rD   r   u      осталась однаrC   r   )r:   r>   rE   s      r   r0   r0   H   s7    

 8
+C
ax-0AX)W=QRUQV;WWr   c           
      f   U c  / SQ$ [        U R                  b   SU R                  S 3R                  SS5      OS U R                  b  U R                  S S3OS U R                  b  U R                  S S3OS /5      n[        U R
                  b  SU R
                  S 3OS U R                  b  S	U R                  S 3OS U R                  (       a(  S
[        U R                  R                  S5      5       S3OS /5      nX4 Vs/ s H  o3(       d  M  UPM     sn=(       d    S/nS/U-   S/-   $ s  snf )N)
   ВЧЕРА   данных нетr%   u	   шаги ,r   r   u    мин упражненийu
    ч снаzHRV u   пульс u   препараты ✓ z/3rI   rH   r%   )
r!   stepsreplaceexercise_minsleep_hhrv
resting_hrmedslensplit)rowfirstsecondlinebodys        r   r1   r1   O   s/   
{887:yy7L)CIIa=!))#s3RV?B?O?O?[3A
:;ae(+(?3;;q/$T E
 !gg1$swwqkt,/NN,F+cnnQ'(DBE((
!#chhnnS&9":!;2>PT F
 $_5_TD_5P:O9PD>D B4'' 6s   
D.D.c                 v   U b  U R                   c  / SQ$ [        [        U R                   S5      [        U R                  5      =(       a    SU R                  S 3[        U R                  5      =(       a    SU R                  S 3[        U R
                  5      =(       a    SU R
                  S 3/5      nSUS/$ )	N)   ЕДА ВЧЕРАu?   не записано — внеси, пока помнитсяr%   u	    ккалu   Б r   u   Ж u   У rZ   r%   )kcalr!   r   proteinfatcarbs)totalsnumberss     r   r3   r3   a   s    ~,kkV[[+&V^^93v~~a&8!9VZZ1s6::a.1V\\5V\\!$45	 G  "--r   c                     [         R                  " X5      n[         R                  " U 5      nUc  SS/$ Uu  pEXA[        SS9-
  :X  d  XA:X  a  SOS[	        U5       S3nUb  SUS	 3OSnSUS	 U U 3/$ )
u   Вес никогда не показывается одиночной цифрой — всегда рядом со средним.u   ВЕСu4   замеров нет — встань на весыr   r#   r%   z ()u#    · среднее за 7 дней r   )r)   rolling_weightlast_weigh_inr   r   )r$   r7   averagelatestr   r   stampaverage_texts           r   r4   r4   n   s    !!$.G%F~PQQJC!222clB"[Y\M]L^^_H`EHOH[8DacLq	%788r   c                 4    U c  gX:  a  S[        U 5       S3$ g )NuH   ⚠️ данные не читаются — проверь health-syncu&   ⚠️ данные только до u=    — Мак не досчитал вчерашний день)r   )r;   r<   s     r   r5   r5   |   s4    Y7I8N7O  PM  N  	Nr   )r%   )u    · )__doc__datetimer   r)   r+   r   r   r   r   r!   rA   r/   r0   r1   r3   r4   r5   r   r   r   <module>rl      sZ      V
4!+$8A
X($
.9r   