/ __pycache__ / app.cpython-311.pyc
app.cpython-311.pyc
  1  2  -�g:I�	��ddlmZmZmZmZmZmZmZmZm	Z	m
  3  Z
  4  mZmZddl
mZmZmZmZddlmZddlmZmZddlmZddlmZmZmZmZddlmZm Z ddl!m"Z"e��Z#d	e
  5  _$e#j�%e��e#j�%d
  6  de	ej&d����d
d���edej&d�����Z'e#�(e'��eej&d����Z)e#�(e)��e)j*ed<e#�(e����eej&d����Z+ej&d���&de+j,j-�d���Ze�6edd���Ze�.e+��e�/��e�0��d�Z1e#�dd���d���Z2e#�dd���d ���Ze#�d!d"���d#���Z3e#�d$��d%���Z4e#�d&d'g�(��d)���Z2e#�d*��d+���Z5e#�d,��d-���Z6e#�d.��d/���Z7d0�Z8e8ed1d2<d3�Z9e9ed1d4<d5�Z:e:ed1d6<dMd7�Z;e;ed1d8<d9�Z<e<ed1d:<d;�Z=e=ed1d<<d=�Z>e#�d>d?e ��e#�d@dAg�B��e#�dCdAg�B��dMdD�����Z?e#�dE��dF���Z@dG�ZAeAed1dH<eBdIkre#�dJdKd
d
�L��dSdS)N�)�Bottle�route�request�run�redirect�config�abort�static_file�Account�	SolarPath�
  7  WebSession�	Timestamp)�Booking�Calendar�Comment�Reaction)�
  8  monthrange)�date�	timedelta)�chevron)�Resolver�NostrDB�SessionManager�
FlashMessages)�login�nip05)�ceil�cred�CREDENSO�/�userT)�	site_name�root�account�publicz/login/zsessions.secret)�	auth_path�secretzsolar.database�dbz
credenso.authz31924:z	:credensoN�credensoz&Events published through Credenso Cafe)�d�contentc	���td����|��}tdd���}|�di��}|�dd��}d�}d�}|||jditj�tj�tj�|�||t�	��d��d	�}|r(t|��tur|g}|d
  9  g|z|d<tj
di|��S)
N�web��	namespace�
 10  components�contextc�r�|d��}tj|��}|�||��S|||��S)Nz{{ pubkey }})r�from_pubkey)�text�render�pubkeyr$s    �/var/www/html/cred/app.pyr$zrender.<locals>.account�sF�����'�'���%�f�-�-���?��6�$�<�<���6�$��(�(�(�c�.�|d��}|d��S)Nz
 11  {{ kind }}zG<ul class="actions"><li><a class="button">Kind {{ kind }}</a></li></ul>�)r4r5�kinds   r7�actionszrender.<locals>.actions�s"���v�l�#�#���v�_�`�`�`r8�html)r$r<�flashes)�template�
partials_dict�
partials_path�partials_ext�datarC�scopesr:)r�read�pop�fs�apprr�query�forms�get_flashes�type�listrr5)	�
template_name�kwargsr?�components_pathr0r1r$r<�render_dicts	         r7r5r5psC���5�)�)�)�.�.�}�=�=�H� ���>�>�>�O����L�"�-�-�J��j�j��D�)�)�G�)�)�)�a�a�a��#�(�+��
 12  ��j�
 13  ��m�
 14  ��m�
 15  ��	
 16 17  �����(�(�
 18  �
 19  �
 20  ���K� �@���=�=��$�$��i�G�!,�V�!4� 5�� ?��H���>�(�(�K�(�(�(r8�home)�namec�,�i}td||d���S)Nz
 21  index.htmlT)r0�session�alt_nav�r5�rUr(r0s   r7�indexrY�s���J��,�:�w�PT�U�U�U�Ur8rc�r�|r'tt�d����Std��S)NrRz
 22  login.html)rrH�get_urlr5�rUs r7rr�s2���-�����F�+�+�,�,�,��,���r8z
 23  /bookings/�bookingsc�L�dt||���i}td||���S)N�
 24  day_events)rUr(z
bookings.html)r0rU)�get_events_for_dayr5rXs   r7r]r]�s/���!3�G��!K�!K�!K�M�J��/�j�'�J�J�J�Jr8z/bookings/<name>/c��	|�tjg|gd���\}n #t$rt	dd��YnwxYwi}td||���S)N)�kindsz#d�zBooking not foundzcomponents/bookings.html)r1rU)rIrr;�
 25  ValueErrorr	r5)rUr(rS�bookingr0s     r7�booking_detailsrf�s{��(��H�H����t�f�F�F�G�G�	�����(�(�(�
�c�&�'�'�'�'�'�(�����J��,�g�w�O�O�O�Os�&)�A�Az/admin/�sudo)�allowc��ddl}|���}|�dg|jjgd���}|���}d|jj�dtd||z
 26  z���dt
|���d�S)	Nr�)rb�authorszHello, z/!
 27      You have sudo permissions.  It took 
 28      i�zms to query 
 29      z events from this relay.)�timerIr$r6rS�int�len)rUr(rl�t1�events�t2s      r7rYrY�s����K�K�K�	
�����B�
�X�X�!��'�/�2H�1I�K�K�
L�
L�F�	
�����B�-�w��+�-�-���r�B�w����-�-�	��[�[�-�-�-�-r8z/assets/<filepath:path>c�P�tdd���}t||j���S)N�assetsr-r.�r#�rr
 30  rG��filepath�static_roots  r7rsrs�)���H��6�6�6�K��x�k�n�5�5�5�5r8z/images/<filepath:path>c�P�tdd���}t||j���S)N�imagesr-r.rtrurvs  r7r{r{ryr8z/uploads/<filepath:path>c��tdtj�d��d���}t	||j���S)N�.zstorage.namespace)r/�subspacert)rrHr�getr
 31  rGrvs  r7�uploadsr�s;���C�3�:�>�>�:M�+N�+N�Y]�^�^�^�K��x�k�n�5�5�5�5r8c����ddigdz�t��}tj�d��r�t	tj�d����}t	tj�d����}t||d��}tj|tj���tj	���}|�
 32  d��|j|jd|j�d	|j��d
 33  �}|�
 34  d��}|tt	|j��dz���z
 35  }|tdt	|j��z
 36  ���z}	t|j|j��\}
 37  }|
 38  dzd
z}
 39  t%|��D]}d|dzi�|
 40  |z<�tjtt	|j��t	|j��d��tj���tj	���}
t&�|
|���}|D]>}|
 41  t	|jj��zdz
 42  }�|�ddi���?t/|
 43  |zd
z��}�fd�t%|��D��}||d|j�d	|j��d|	j�d	|	j��d�}t1di|��S)N�day�*�month�yearrj��tzinfoz%B %Yz?month=z&year=)rSr�r�rI)�days� ��
 44  has_eventsTc�:��g|]}d�|dz|dzdz�i��S)r�r�rjr:)�.0�i�calendar_squaress  �r7�
 45  <listcomp>zget_month.<locals>.<listcomp>Ps4���U�U�U��f�&�q��s�A�a�C��7�{�3�
4�U�U�Ur8)�weeks�
 46  this_month�
 47  prev_query�
 48  next_query�components/calendar.html)r�)rrrIrrmr�combine�minrl�tz�strftime�Y�mrr*rr�r��range�calendar�on�start�updaterr5)�argsrO�tr�r�r*r��
 49  month_name�
 50  prev_month�
 51  next_month�offset�number_of_daysr��start_of_monthr]�b�square�number_of_weeksr�rCr�s                    @r7�	get_monthr�%s�������(�2�-�����A��}����!�!�L��G�M�%�%�g�.�.�/�/���G�M�%�%�f�-�-�.�.����u�a� � ����a���!3�!3�!5�!5�i�l�K�K�K���
 52 53  �7�#�#�����+�1�3�+�+�a�c�+�+�	��J����G�$�$�J��Y�S���X�X��\�2�2�2�2�J��Y�R�#�a�c�(�(�]�3�3�3�3�J�'�����8�8��F�N��q�j�A�
�F��>�
"�
"�6�6��',�a�!�e�%5�����"�"��&�t�C���H�H�c�!�#�h�h��'B�'B�I�M�DV�DV�DX�DX�aj�am�n�n�n�N��{�{�>��{�?�?�H�
�@�@���#�a�g�i�.�.�(�1�,���� �'�'�,��(>�?�?�?�?��F�^�3�q�8�9�9�O�
V�U�U�U�e�O�>T�>T�U�U�U�E�� �B�
 54  ��B�B�J�L�B�B�B�
 55  ��B�B�J�L�B�B�	��D��5�5��5�5�5r8r<r�c�v�d}d}tj�d��r�ttj�d����}ttj�d����}ttj�d����}t	|||��}tj|t
 56  j���t
 57  j	���}t�|��}nt���}||d�}tdi|��S)Nr�r�r�r�)r�rp�components/day_events.html)r�)rrIrrmrrr�r�rlr�r�r��upcomingr5)r�rOr�rpr�r�r*rCs        r7r`r`]s���
 58  �C�
�F��}����!�!�%��G�M�%�%�g�.�.�/�/���G�M�%�%�f�-�-�.�.���7�=�$�$�U�+�+�,�,����u�c�"�"�����9�=�#5�#5�#7�#7�	��M�M�M�����S�!�!����"�"�$�$���6�+�+�D��7�7�$�7�7�7r8r`c��|�d��}tjdkr t��}t	d||���Stjdk�r�ttj�����}|�d��}|�d��}|�dd��}d}|rt|��}n|j
 59  }tj|�d	|��d
 60  ��}	t|�d����dz}
 61  tt|	��|
 62  z��}tt|	����|d
<tt|����|d<||d<tjdi|��}tj�d��}
|
r|j|
fddi|��|�|��|���t(�|��t(�t,��t(���t/|j��SdS)NrU�GETzforms/event.html)rU�now�POSTr�rl�author� z%Y-%m-%d %H:%M�duration�,r��end�image�	thumbnail)i�r�r:)rr�methodrr5�dictrJ�decoderFrr$�strptimerm�strr�new�files�attach�sign�saver��addrr�url)r�rOrUr�rCrrl�author_namer�r�r�r�r��imgs              r7�eventr�os����j�j��#�#�G��~�����k�k���(�'�s�C�C�C�C�	��6�	!�	!��G�M�(�(�*�*�+�+���x�x������x�x������h�h�x��.�.�����	%��[�)�)�F�F��_�F��"�d�#3�#3�T�#3�#3�5E�F�F���t�x�x�
 63  �+�+�,�,�s�2����E�
 64 65  �X�-�.�.���C��J�J����W�
��#�c�(�(�m�m��U����X���K���$�����m����(�(���	:��A�H�S�9�9�J�9�&�9�9�9�	���w����	���������Q�����
�
�d�����
�
����������E
 66  "�	!r8r�c��t��}tjdkr.ttdd��}tdit
����Stjdkr#tjd
d|j	itj
 67  ��}n/tjdkr|�tj
 68  ��tj�
d��}|rUt�|j|j|j	�	��}|���|j|jd
 69  d<|���|���S)Nr�rJzplace.mo�forms/place.htmlr�r��PATCHr�)rSr��
 70  properties�place)r�r:)rUrr��Path�tag�chevron_template�defaults�Placer��memberrJr�r�r�Picture�file�filenamer�r�r+�flatten)�p�details�s�
template_pathr��picrCs       r7r�r��s���	�	�A��~�����S�'�:�6�6�
��A�A�h�j�j�A�A�A��~����
�Y�
8�
8�a�h�
8�'�-�
8�
8���	��7�	"�	"�	���������M���g�&�&�E��3��k�k�%�*�5�>�!�(�k�K�K�����
 71 72 73  �+.�7��	�,���(��F�F�H�H�H�
�9�9�;�;�r8r�c���|�d��}|�d��}|�d��}|�d��}t|��dkr|�|��}n*|�t|��dzdg���\}tjd	k�rf|�d
 74  g|jgd���j}g}i}	g}
 75  |D]�}|j	|j
 76  ks|j|jkr|�
|��nF|	�|j
 77  ��r!|	|j
 78  �
|��n|g|	|j
 79  <|
 80  �
|j����|�tjg|
 81  d���}|D]n}|�|jd
��|_|j�&|jD]}
|j|jjkrd|_�|	�|j��|_�o||d<|di|��StjdkrNt/ditj��}|�|��|�|���}|d|���Stjdkr
|d|���StjdkrC|j|jjkr|�|���dS|���dSdS)NrUr(�pathr5�@r*�*��	subspacesr�iW)rbz#A�rb�#e�eT�comments�components/comments.htmlr�r\zcomponents/comment.html)r1�PUTzforms/comment.html�DELETE�r�r:)rrn�resolverrr�rI�addressrp�Er��A�a�append�idrr;�find�	reactionsr6r$�liked�repliesrrJ�	referencer��unsave)r�rOrUr(r�r5r�r��	top_levelr��comment_ids�cr��reaction�comment�ress                r7r�r��s����j�j��#�#�G�	���D�	�	�B��:�:�f���D�
�Z�Z��
!�
!�F�
 82  �4�y�y�B������t������*�*�Y�t�_�_�s�2�s�e�*�D�D����~�����8�8��v�e�m�_�F�F�G�G�N���	������	%�	%�A��s�a�c�z�z�Q�S�A�C�Z�Z�� � ��#�#�#�#����Q�S�!�!�
#�����#�#�A�&�&�&�&� !�s��������q�t�$�$�$�$��H�H����{�L�L�M�M�	��		*�		*�A�#�.�.���s�3�3�A�K��{�&� !��'�'�H��x�7�?�#9�9�9�"&�������A�D�)�)�A�I�I�&��z���v�;�;�F�;�;�;��~�����*�*�G�M�*�*�����%� � � ��l�l�7�l�+�+���v�/��A�A�A�A��~�����v�*�E�:�:�:�:��~��!�!��<�7�?�1�1�1��L�L��L�)�)�)�)�)��L�L�N�N�N�N�N�	"�!r8r�c�<�|�d��}|�d��}|�d��}|�d��}t|��dkr|�|��}n*|�t|��dzdg���\}tjd	kr)|�tjg|j	gd
 83  ���}tjdkr@tditj
 84  �d|j	i��}|�|�
��}	d|j	�d�Stjdkr[|�tjg|j	g|jj
gd���}|D]}
 85  |
 86  �|�
���d|j	�d�SdS)NrUr(r�r5r�r*r�r�r�r�r�r�r\z><a class="button solid icon primary fa-hand-paper" hx-delete="z#/like" hx-swap="outerHTML">Wave</a>r�)rbr�rkz4<a class="button solid icon fa-hand-paper" hx-post="r:)rrnr�rrr�rIrr;r�rJr�r$r6r�)r�rOrUr(r�r5r��likes�rr��likes           r7rrs����j�j��#�#�G�	���D�	�	�B��:�:�f���D�
�Z�Z��
!�
!�F��4�y�y�B������t������*�*�Y�t�_�_�s�2�s�e�*�D�D����~�������X�]�O�E�H�:�G�G�H�H���~�����1�1�w�}�1�1���1�1�1���f�f�W�f�%�%���QV�QY������~��!�!����X�]�O�E�H�:�SZ�Sb�Si�Rj�l�l�m�m���	)�	)�D��K�K��K�(�(�(�(�u�u�x�u�u�u�u�	"�!r8rc��tdi|��S)Nr�r�rW)r�rOs  r7�buttonsr s���7�7��7�7�7r8z/.well-known/nostr.jsonr�z/<path:path>/<action>�ANY)r�z	/<action>c�|�td�|��}|�ktj�d��}tj�d��}|r+|r)|�|d���d��}|r|t|||t���Stdd|�d	���S)
 87  Nr<�HTTP_REFERER�HTTP_ORIGIN�r )rHr�rUr(r5rczAction 'z' not found)	rrr�environ�replace�lstriprHr5r	)�actionrUr(r��callback�referrer�origins       r7r<r<&s����i� �$�$�V�,�,�H��|��?�&�&�~�6�6���?�&�&�}�5�5���	<�h�	<��#�#�F�B�/�/�6�6�s�;�;�D��:��x�C�d�G��6�R�R�R�R��S�8�V�8�8�8�9�9�9r8z/uppies/c� �td��S)Nzupload.htmlrWr:r8r7�upr=s���-� � � r8c�b�ddlm}m}|�d��}|�d��}|�t	d��Sdgi}t
 88  j���D]H\}}|�||��}	|d�	|	�
 89  �����I|S)Nr)�Mediar�r(rUi�r�)�elementsrr�rr	rr��allitems�uploadr�r�)
 90  r�rOrr�r(rUr�rSr�r�s
 91            r7rrAs���'�'�'�'�'�'�'�'�	���D�	�	�B��j�j��#�#�G����S�z�z��
�r��C��m�,�,�.�.�+�+�
 92  ��d��L�L��w�'�'��	�I����a�i�i�k�k�*�*�*�*��Jr8r�__main__�	localhosti�)�host�port�debug�reloader)N)Crrrrrrrr	r
 93  rrr
r�elements.socialrrrrr�r�datetimerr�elements.core.libsr�elements.core.pluginsrrrr�elements.actionsrr�mathrrHr~r�r�sessions�install�nostrdbr(rr$r6r�r��hydrater5rYr]rfrsr{r�r�r`r�r�r�rrr<rr�__name__r:r8r7�<module>r)s7��

 94  �

 95  �

 96  �

 97  �

 98  �

 99  �

100  �

101  �

102  �

103  �

104  �

105  �

106  �

107  �

108  �

109  �

110  �

111  �

112  �

113  �

114  �

115  �

116  �

117  �

118  �

119  �

120  �

121  �
122  �
123  �
124  �
125  �
126  �
127  �
128  �
129  �
130  �
131  �
132  �
133  � ������$�$�$�$�$�$�$�$�&�&�&�&�&�&�
134  �
135  �
136  �
137  �
138  �
139  �
140  �
141  �
142  �
143  �
144  �
145  �*�)�)�)�)�)�)�)�������4
�f�h�h���	��
146  �
147  ���&�����
148  ������w�z�v�z�&�)�)�*�*��	������>�I�j�f�j�AR�6S�6S�T�T�T�����H�����'�*�&�*�-�.�.�
149  /�
150  /�����G�����z��t�����M�M�O�O�����z�*�&�*�_�-�-�.�.���6�:�d����� G���)<� G� G� G�H�H�����x�*�.V�W�W�W�H��M�M�$�����M�M�O�O�O�������>)�>)�>)�^���3�V����V�V���V����9�7��#�#� � �$�#� ����<�j��)�)�K�K�*�)�K�������
151  P�
152  P� ��
153  P����9�V�H��%�%�	-�	-�&�%�	-�B���$�%�%�6�6�&�%�6����$�%�%�6�6�&�%�6����&�'�'�6�6�(�'�6�(46�46�46�l"+��y��+��8�8�8� +=��y��&�'�,�,�,�\#��y��'������:#��y��'��?�?�?�B!)��y��*��v�v�v�8!��y��&��8�8�8��	�	�
154  #�U�E�2�2�2����"�E�7��3�3����;��w��'�'�:�:�:�(�'�4�3�:�*���:���!�!���!����*%��y��(���z����G�G��4�t�d�G�C�C�C�C�C��r8