spv_java.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. '''Created Sep 20, 2021 Levi'''
  2. # coding: utf-8
  3. import subprocess as sp
  4. import json
  5. import configparser
  6. import pprint
  7. from json.decoder import JSONDecodeError
  8. from time import sleep
  9. from multiprocessing.pool import ThreadPool
  10. from threading import Event
  11. import psutil
  12. import telegram
  13. from yaspin import yaspin
  14. from declarations import (count_down, pretty_exc)
  15. # In "C:\Program Files\Java\jre1.8.0_333\lib\security\java.security" file comment the
  16. # jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
  17. # DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
  18. # include jdk.disabled.namedCurves
  19. # lines
  20. event = Event()
  21. config = configparser.ConfigParser()
  22. config.read('bot')
  23. bot = telegram.Bot(token=config['AUTH']['token2'])
  24. proc_name = 'javaw.exe'
  25. days = '"30"'
  26. url = f'"https://webserviced.anaf.ro/SPVWS2/rest/listaMesaje?zile={days}"'
  27. pin = '"111555"'
  28. java_executable = '"C:/Program Files/Java/jre1.8.0_333/bin/javaw.exe" -jar'
  29. jar_package = 'C:/Users/DECEL/SPV/target/ApelSPV-1.0-SNAPSHOT.jar'
  30. def kill_proc(name, timeout, pool_=None):
  31. # print('waiting')
  32. # event.wait()
  33. while timeout >= 0:
  34. # print(timeout, '' * 3, end='\r')
  35. sleep(1)
  36. timeout -= 1
  37. if pool_:
  38. pool_.close()
  39. for proc in psutil.process_iter():
  40. # check whether the process name matches
  41. if proc.name() == name:
  42. proc.kill()
  43. def run_proc1():
  44. proc_1 = sp.run(f'{java_executable} {jar_package} {url} {pin}',
  45. shell=True, capture_output=True, text=True)
  46. # print(event.is_set())
  47. # event.set()
  48. # print(event.is_set())
  49. return proc_1.stdout
  50. if __name__ == '__main__':
  51. # run_proc1()
  52. messages = []
  53. while True:
  54. try:
  55. pool = ThreadPool(processes=1)
  56. async_result = pool.apply_async(run_proc1)
  57. kill_proc(proc_name, 10, pool_=pool)
  58. return_val = async_result.get()
  59. return_val = json.loads(return_val)
  60. for message in return_val['mesaje']:
  61. # print(message)
  62. if message['tip'] != 'RECIPISA':
  63. messages.append(message)
  64. pprint.pprint(messages, indent=2)
  65. # print(return_val['titlu'])
  66. # print('last message type', return_val['mesaje'][0]['tip'])
  67. # if return_val['mesaje'][0]['tip'] != 'RECIPISA':
  68. # bot.send_message(chat_id=config['AUTH']['chatid'], text=return_val['mesaje'][0]['detalii'])
  69. break
  70. # count_down(1800, d_type='h', up_down='down')
  71. except JSONDecodeError as exc_:
  72. # pretty_exc(exc_)
  73. print(return_val[:7])
  74. # count_down(10, d_type='h', up_down='down')
  75. # with yaspin() as ys:
  76. # ys.text = 'reloading in 10 seconds'
  77. print('reloading in 10 seconds')
  78. sleep(10) # time consuming code