spv_java2.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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 declarations import (count_down, pretty_exc)
  14. # In "C:\Program Files\Java\jre1.8.0_333\lib\security\java.security" file comment the
  15. # jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
  16. # DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
  17. # include jdk.disabled.namedCurves
  18. # lines
  19. event = Event()
  20. config = configparser.ConfigParser()
  21. config.read('bot')
  22. bot = telegram.Bot(token=config['AUTH']['token2'])
  23. proc_name = 'javaw.exe'
  24. days = '"30"'
  25. url = f'"https://webserviced.anaf.ro/SPVWS2/rest/listaMesaje?zile={days}"'
  26. pin = '"61103989"'
  27. java_executable = '"C:\Program Files\Java\jre1.8.0_301\bin\javaw.exe" -jar'
  28. jar_package = 'ApelSPV-1.0-SNAPSHOT.jar'
  29. def kill_proc(name, timeout, pool_=None):
  30. # print('waiting')
  31. # event.wait()
  32. while timeout >= 0:
  33. # print(timeout, '' * 3, end='\r')
  34. sleep(1)
  35. timeout -= 1
  36. if pool_:
  37. pool_.close()
  38. for proc in psutil.process_iter():
  39. # check whether the process name matches
  40. if proc.name() == name:
  41. proc.kill()
  42. def run_proc1():
  43. proc_1 = sp.run(f'{java_executable} {jar_package} {url} {pin}',
  44. shell=True, capture_output=True, text=True)
  45. # print(event.is_set())
  46. # event.set()
  47. # print(event.is_set())
  48. return proc_1.stdout
  49. if __name__ == '__main__':
  50. # run_proc1()
  51. messages = []
  52. while True:
  53. try:
  54. pool = ThreadPool(processes=1)
  55. async_result = pool.apply_async(run_proc1)
  56. kill_proc(proc_name, 10, pool_=pool)
  57. return_val = async_result.get()
  58. print(return_val)
  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=4)
  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')