import os
import time
from notifier_modules import PublisherO2MQ, Publisher
class ClientITRO2MQ(PublisherO2MQ):
def __init__(self, process_params):
super().__init__(process_params)
def client_set_type_metadata_file(self):
self.trigger_settings["type_metadata_file"] = ".csv"
def client_set_unique_field(self):
self.trigger_settings["unique_field"] = "Cheque Number"
class ContextMapException(Exception):
pass
class ContextMap:
def __init__(self, process_params):
self.process_params = process_params
@property
def client(self):
return self.process_params["client"]
@property
def rule(self):
return self.process_params["rule"]
@property
def client_key(self):
return (self.client + "_" + self.rule).lower()
@property
def context_map(self):
if "itr_itr" in self.client_key:
return "O2MQ", ClientITRO2MQ
else:
raise ContextMapException(
f"internal error, cannot match client_key {self.client_key}"
)
class PubisherLauncher:
def __init__(self, context_map, client_name):
self.context_map = context_map
self.client_name = client_name
self.__run()
def __run(self):
while True:
with Publisher(self.context_map, self.client_name) as p:
sleep_time = 0.3 if os.environ["ENV"] == "dev" else 2
time.sleep(sleep_time)
if __name__ == "__main__":
PubisherLauncher(ContextMap, "itr")
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}