
    hie                     n   d dl mZmZmZmZ d dlmZ d dlZd dlZd dl	Zd dl
Zd dlmZ d dlZd dlmZ  e         eedd      Zdd	Zdd
Zej+                  d      d        Zej+                  d      d        Zedk(  r6 eej2                  j5                  dd            Zej9                  de       yy)    )Flaskjsonifyrequestsend_from_directory)datetimeN)BeautifulSoup)load_dotenvz../frontend )static_folderstatic_url_pathc                    t         j                  j                         }t        j                  j                  t        j                  j                  |            }|j                  |       5 }|j                         j                  dd      }d d d        |sS t        d      }|j                  dddd      }|s|S |j                  d      xs |j                  d      }|st        d      |j                  d	      xs | }	t        j                  j!                  | |	      }
|j                  d
      xs dj#                         }i }|j%                  d      D ]+  }|j                  d      }|s|j                  dd      ||<   - ||d<   t        j                  j'                  |      }|dk(  rt        j                  j)                  |
      j*                  rdnd}|
 | | }t        j                  j-                  |d      }|j                  |      5 }|j                         j                  dd      cd d d        S t        j                  j-                  |
|j/                  d      d      }|j                  |      5 }|j                         j                  dd      cd d d        S # 1 sw Y   #xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nzutf-8ignorelxmlinputpassword)typenameformz1Password field was found, but form was not found.actionmethodpostr   valuer
   get&?GET)r   POST)datar   )http	cookiejar	CookieJarurllibr   build_openerHTTPCookieProcessoropenreaddecoder   findfind_parent
ValueErrorr   parseurljoinlowerfind_all	urlencodeurlparsequeryRequestencode)urlr   
cookie_jaropenerresponsehtml_contentsouppassword_inputr   r   
submit_urlr   	form_data	input_tag
input_nameencoded_data	separatorrequest_urlrequest_objs                      2/var/www/html/players_from_densuke/backend/main.py!fetch_html_with_optional_passwordrD      s   ))+J^^(()K)KJ)WXF	S	 AX}}--gx@A v.DYYwZ(PQN%%f-B61BDLMMXXh&3F%%c62Jhhx *F113FI]]7+ ;	]]6*
 )gr :	*	; %Ij<<)))4L!<<00<BBC	#YK~>nn,,[,G[[% 	===?))'8<	= 	= ..((  ) ) K
 
[	! 9X}}%%gx89 9SA AB	= 	=9 9s$   ,!J. J; K.J8;KKc                    	 t        | |      }	 t        |d      }|j	                  dd      }|sddiS |j                  d      }|d	   }|j                  d
      }	|	dd  D 
cg c]  }
|
j                  d       }}
g }|dd  D ]  }|j                  d
      D 
cg c]  }
|
j                  d       }}
|s5|d	   }t        j                  d|      }|sS|j                  d      }||k(  sj|dd  }g }g }t        |      D ]G  \  }}|t        |      k  s||   }|dk(  r|j                  |       1|dk(  s7|j                  |       I g }|r|j                  dg|z          |r|j                  dg|z          |s|j                  |ddg|| d        |S # t        $ r}ddt        |       icY d }~S d }~ww xY wc c}
w c c}
w # t        $ r#}d	d l}dd|j                          icY d }~S d }~ww xY w)NerrorzFailed to fetch data: r   table	listtable)idz$Table with id 'listtable' not found.trr   td   T)stripz(\d{1,2}/\d{1,2})u   ○u   △StatusMembers)titleheaderrowsr4   zFailed to parse data: )rD   	Exceptionstrr   r(   r.   get_textrematchgroup	enumeratelenappend	traceback
format_exc)r4   target_dater   r8   er9   rG   rR   
header_rowheader_cellscellheaderstablesrowcellsdate_cell_text
date_matchrow_datestatusesmaru_memberssankaku_membersistatusmember_name
final_rowsr\   s                             rC   get_schedule_datarq   @   sJ   <8hG4L\62		'k	2CDD~~d#!W
!**409Eab9IJ4==t=,JJ8 "	C;><<;MN4T]]].NEN"1XN"6GJ%++A.{*$QRyH#%L&(O%.x%8 D	6s7|+*1!*K% , 3 3K @!'5 / 6 6{ CD "$J#"))5'L*@A&"))5'O*CD!%3'/&;$.#&	' ;"	H g  <1#a&:;;< K OJ  L1)2F2F2H1IJKKLs|   F $G .G "G; G G4"G G .(G !G 9AG ?G 	F?%F:4F?:F?
G 	G8G3-G83G8z/apic                     t         j                  j                  dt        j                         j                  d            } 	 t        j                  | d      j                  d      }dd ddddd	d dg}g }|D ]U  }t        |d
   ||j                  d            }t        |t              rd|v rt        |      dfc S |j                  |       W t        |      S # t        $ r"}t        dt        |      i      dfcY d }~S d }~ww xY w)Ndatez%Y-%m-%d)defaultz%-m/%-dz,https://densuke.biz/list?cd=uQYExVaQLJ4Dd2vB)r4   r   z,https://densuke.biz/list?cd=GzQhE6yQPXY3usadH2728z,https://densuke.biz/list?cd=tfXDcX2hEfTkdW6tr4   r   rF   i  i  )r   argsr   r   nowstrftimestrptimerq   
isinstancedictr   extendrS   rT   )date_strr^   url_configs
all_tablesconfigresultr_   s          rC   apir   |   s   ||0G0G
0STH/''*=FFyQ CPTUBPWXBPTU
 
! 	&F&u

:&F
 &$'Gv,=v++f%	& z"" /Q()3../s%   A;C  C 	D	'D>D	D	/c                  6    t        t        j                  d      S )Nz
index.html)r   appr        rC   indexr      s    s00,??r   __main__PORTi@  z0.0.0.0)hostport)N)flaskr   r   r   r   r   rV   urllib.requestr"   urllib.parsehttp.cookiejarr   bs4r   osdotenvr	   __name__r   rD   rq   router   r   intenvironr   r   runr   r   rC   <module>r      s    > >  	     	  HM2F.9b:Lx 6/ /4 3@ @ zrzz~~fd+,DGGG& r   