anaf_spv_webserv.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. '''Created 21 Nov 2023 Levi'''
  2. import os
  3. import pprint
  4. from time import sleep
  5. from threading import Thread
  6. from datetime import datetime
  7. import keyboard as kb
  8. import pywinctl as gw
  9. from pywinctl import Window as win_
  10. import requests
  11. from selenium import webdriver
  12. from selenium.webdriver import ChromeOptions
  13. # HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\AutoSelectCertificateForUrls
  14. # Here create new String value (REG_SZ) with name 1
  15. # As Value data enter:
  16. # {"pattern":"[*.]webserviced.anaf.ro/SPVWS2/rest/listaMesaje?zile=1","filter":{"ISSUER":{"CN":"certSIGN Qualified CA"}}}
  17. def accept_cert():
  18. # brave_ready.wait()
  19. sleep(2)
  20. win_2 = gw.getWindowsWithTitle('data:,', condition=gw.Re.CONTAINS)[0]
  21. if win_2.isActive:
  22. win_2.hide()
  23. t_ = 0
  24. while True:
  25. try:
  26. if t_ >= 1.5:
  27. break
  28. win_ = gw.getWindowsWithTitle('Windows Security', condition=gw.Re.CONTAINS)[0]
  29. if not win_.isActive:
  30. win_.activate()
  31. win_.acceptInput(True)
  32. sleep(0.5)
  33. kb.write(os.getenv('PKCS11PIN'))
  34. kb.press_and_release('enter')
  35. break
  36. except Exception:
  37. t_ += 0.01
  38. sleep(0.01)
  39. def convert_and_extract_date(item):
  40. item['created_date'] = datetime.strptime(item['data_creare'], '%d.%m.%Y %H:%M:%S')
  41. del item['data_creare']
  42. return item
  43. chrome_options = ChromeOptions()
  44. chrome_options.add_argument('--disable-dev-shm-usage')
  45. chrome_options.add_argument('--no-sandbox')
  46. chrome_options.add_argument('--disable-gpu')
  47. chrome_options.add_argument('--window-size=0,0')
  48. chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
  49. if __name__ == '__main__':
  50. driver = webdriver.Chrome(options=chrome_options)
  51. thread = Thread(target=accept_cert, args=())
  52. thread.start()
  53. driver.get("https://webserviced.anaf.ro/SPVWS2/rest/listaMesaje?zile=1")
  54. cookies = driver.get_cookies()
  55. driver.close()
  56. requests_cookies = {}
  57. for c in cookies:
  58. requests_cookies[c['name']] = c['value']
  59. response = requests.get("https://webserviced.anaf.ro/SPVWS2/rest/listaMesaje?zile=10", cookies=requests_cookies).json()
  60. sorted_response = sorted(map(convert_and_extract_date, response['mesaje']), key=lambda x: x['created_date'])
  61. # response['mesaje'] = sorted_response
  62. # pprint.pprint(response)
  63. filtered_list = sorted([item for item in response['mesaje'] if item['tip'] != 'RECIPISA'], key=lambda x: x['created_date'])
  64. # Print the filtered list
  65. response['mesaje'] = filtered_list
  66. pprint.pprint(response)