
    Ag&                         d Z ddlmZ ddlZddlZddlmZ ddlmZ	 ddl
mZ ddlZddlZddZd	 Zd
 Zedk    r, e              ed            e              ed           dS dS )zv
This script gets daily as well as new data for the stocks in the database "nse_data1" -> OHCL from Zerodha Demat API
    )
getNSEdataN)MongoClient)sleeplivezerodha\credentials.jsonc                    	 t          |d          5 }t          j        |          }ddd           n# 1 swxY w Y   |                    |           }|r|S t	          d|            # t
          $ r t          d|            Y dS t          j        $ r t          d|            Y dS t          $ r}t          d|            Y d}~dS d}~ww xY w)a?  
    Access credentials from a JSON file.

    Args:
    - env (str): Environment to fetch the credentials from ('local' or 'live'). Default is 'local'.
    - filepath (str): Path to the JSON file containing credentials. Default is 'creds.json'.

    Returns:
    - dict: Credentials for the specified environment.
    rNz&No credentials found for environment: zFile not found: zError decoding JSON in file: zAn error occurred: )	openjsonloadget
ValueErrorFileNotFoundErrorprintJSONDecodeError	Exception)envfilepathfdatacredentialses         0e:\HARSH\Automation\J_Work\zerodha\zNSE_fetch.pyget_credentialsr      s\   )(C   	 A9Q<<D	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  hhsmm 	MKcKKLLL - - -+++,,,,,, : : :8h88999999 ) ) )'A''((((((((()sD   A) 3A) 7A) 7A) A) )C C+	C4CCc                     t                      } |                     d          }|                    d          }|                    d          }|                    d          }t          |          }||         }||         }|                    dddii          }|D ]}	d }
d}t	          |	d                                         d	 
          }|D ]r}|	d         |         }t          |t                    r8d|vr|
|
|d<   d}t          d| d|
            |                    d          }
]t          d| d|            s|r(|	                    d|	d         idd|	d         ii           t          d           d S )NmongoDB_credsconnection_strdatabasense_collectionpricesz$existsTFc                 B    t           j                             | d          S )N%Y-%m-%d)datetimestrptime)dates    r   <lambda>z'prev_close_updaterNSE.<locals>.<lambda>H   s    XEVE_E_`dfpEqEq     )key
prev_closezUpdated prev_close for date : closezWarning: Data for z is not a dictionary: _idz$setz5prev_close fields updated successfully where missing!)
r   r   r   findsortedkeys
isinstancedictr   
update_one)credsr   connection_urlmongo_databaser   clientdb
collection	documentsdocprevious_closeupdatedsorted_datesr%   r   s                  r   prev_close_updaterNSEr>   1   s   E IIo..M"&&'788N"&&z22N"&&'788N ((F		BN#J It+< =>>I  \ \ c(m00228q8qrrr ! 	O 	ODx=&D $%% Ot++%1-;\*"&UTUU^UUVVV "&'!2!2M4MMtMMNNNN  	\!!5#e*"53x=@Y7Z[[[	
ABBBBBr'   c            	      8   t                      } |                     d          }|                    d          }|                    d          }|                    d          }|                     d          }|                    d          }|                    d          }|                    d          }|                    d          }	|                    d	          }
t          |          }||         }||         }t          j        ||||	|

          }|                                }|                    d           |                                }|d         }|                                	                    dg          
                    d          }dddd}t          j                                                            d          }t          j                            |d          }|t          j        d          z
                                  }t          j        ddd          }|D ]/}|                    d|d         i          }|r~	 t%          d |d                                         D                       }|t          j        d          z   }n# t(          $ r |}Y nw xY w||k    rt+          d|d          d           n|}t+          d|d          d| d|            |                    d|d          d            |                                }|!|\  }}}}d!| d"| d#| } t/          j        t3          j        d$| |i %          j                  }!t+          |!           	 |!rd&|!v rzd'|!d&         v roi }"|!d&         d'         D ]}#t          j                            |#d(                             d)          d(         d                                          }$|#d         |#d         |#d*         |#d+         d,}%|%|"|$                    d          <   |rs|d                             |"           t          j                                        |d-<   |                    d|d         i|           t+          d.|d                     nF|d         ||tA          |          tA          |          t          j                                        |"d/}&t+          d0|d                     nt+          d1|d          d2           # tB          $ r&}'t+          d3|d          d4|'            Y d }'~'d }'~'ww xY wt+          d5|d                     1t+          d6           |"                                 |"                                 d S )7Nr   r   r   r   sqlDB_credsuserhostpasswordport)rA   rB   rC   r   rD   aA  SELECT * FROM mytable WHERE tradingsymbol IN ('5PAISA', 'AAVAS', 'ADANIGREEN', 'AETHER', 'ALIVUS', 'AMBER', 'APOLLO', 'ASTERDM', 'ATGL', 'AVAX', 'BANDHANBNK', 'BDL', 'BRGIL', 'CAPACITE', 'CREDITACC', 'DALBHARAT', 'DAVIN', 'DELHIVERY', 'DIAMONDYD', 'DOLLAR', 'DYCL', 'EMUDHRA', 'ETHOSLTD', 'FABCLEAN', 'FINEORG', 'GALAXYSURF', 'GICRE', 'GODREJAGRO', 'GRSE', 'HAL', 'HARDWYN', 'HDFCAMC', 'HDFCLIFE', 'HGINFRA', 'ICICIGI', 'IEX', 'IFGLEXPOR', 'INDOBELL', 'INDOSTAR', 'IRCON', 'ISEC', 'LEMONTREE', 'LICI', 'MAHLOG', 'MANORAMA', 'MASFIN', 'MIDHANI', 'MVGJL', 'NAM-INDIA', 'NEWGEN', 'NIACL', 'ORIENTELEC', 'PARADEEP', 'PARMESHWAR', 'PRUDENT', 'QUADFUTURE', 'RAINBOW', 'RITES', 'RPSGVENT', 'SANDHAR', 'SBILIFE', 'SGLTL', 'SHALBY', 'SHAREINDIA', 'SOLARA', 'TECHNOE', 'TIINDIA', 'VANDU', 'VARROC', 'VENUSPIPES', 'YASHO') AND exchange = 'NSE';zerodha_credentials)r,      z*/*zen-US,en;q=0.9zenctoken N7gCpFQYDbNMxGHTmhfsfvtUXbW+DQGX+L7LmbLFrkScL/u3pFiddt2+r99MqXdx1QvFPH7h2IDwZ9j/7mVlvX/stVTc8zcH+hVUfwh40vvHWFLbjU+jGA==)acceptzaccept-languageauthorizationr"   )daysi  symbol   c              3   z   K   | ]6}t           j                             |d                                           V  7dS )r"   N)r#   r$   r%   ).0r%   s     r   	<genexpr>znse_fetcher.<locals>.<genexpr>   sZ         D   DX\ 1 : :4 L L Q Q S S   D   D   D   D   D   Dr'   r    z	Data for z is up to date.zProcessing z from z to zbSELECT instrument_token, segment, exchange_token, name FROM `mytable` WHERE `tradingsymbol` LIKE 'z' AND `exchange` LIKE 'NSE';z4https://kite.zerodha.com/oms/instruments/historical/z/day?user_id=GMG829&oi=0&from=z&to=GET)headersr   r   candlesr   T      )r
   highlowr+   	timestampzUpdated )rK   company_name
Instrumentexchange_tokeninstrument_tokenrX   r    zCompleted processing zNo new data available for .zError processing r*   zNo instrument token found for z.Processing completed. Results saved to MongoDB)#r   r   r   mcconnectcursorexecutefetchallr-   sortlimitr#   todaystrftimer$   	timedeltar%   find_onemaxr/   r   r   fetchoner   loadsrequestsrequesttextsplitupdatenowreplace_oneintr   r+   )(r3   r   r4   r5   r   r@   rA   rB   rC   sql_databaserD   mongo_clientr7   r8   connr`   checkSymbolscreds_collection	get_credsrQ   re   	yesterdaydefault_start_daterK   existing_document	last_date	from_datetoken	instTokensegmentr[   nameurlresponse
new_pricescandlecandle_dateohlcnew_documentr   s(                                           r   nse_fetcherr   c   sy   E IIo..M"&&'788N"&&z22N"&&'788N))M**K??6""D??6""Dz**H??:..L??6""D ~..L	n	%BN#J :4dX[_```D[[]]F NN  W  X  X  X??$$L/0 %%'',,k];;AA!DDI + ^	 G ##%%..z::E&&uj99E+333399;;I!tQ22 G@ G@&//6!90EFF 	+/   D   D`qrz`{  aA  aA  aC  aC   D   D   D  D  D	%(:(B(B(BB		 / / /.			/ 9$$<&)<<<=== %
 +IGF1IGGYGGIGGHHH 	  d  }C  DE  }F  d  d  d  	e  	e  	e!!7<4Iw M  M  Mr{  M  M  BK  M  MCz("25#wUW"X"X"X"]^^H(OOO$< !E( 2 2yHVDT7T7T!#J"*6"29"= L L&.&7&@&@QTAUAUVWAXZd&e&e&j&j&l&l$*1I$*1I#)!9%+AY	    HL
;#7#7
#C#CDD( )(3:::FFF9A9J9N9N9P9P)+6"..&)/DFWXXX4445555 '-Qi,0*1.1..A.A03I)1):)>)>)@)@&0( ( =&)==>>>>CvayCCCDDD < < <:&)::q::;;;;;;;;< >6!9>>????	
:;;;JJLLLLLs,   A	JJ.-J.9FT
U UU__main__rT   )r   r   )__doc__z_getNSEdatar   r#   r   pymongor   mysql.connector	connectorr^   timer   pandaspdrl   r   r>   r   __name__ r'   r   <module>r      s    $ # # # # #                          ) ) ) )>0C 0C 0Cd{ { {| zKMMM	E!HHH	E!HHHHH	 r'   