def push_new_sms_contact(device_name, message, recipient): lock_lockfile(SMS_SERVER_LOCK_FILE) # We acquired the lock, we can now write to the json db file: sms_alerts = load_json(SMS_SERVER_ALERTS_FILE) sms_alerts.append( { "device": device_name, "message": message, "recipient": recipient, "sent": False } ) f_sms_alerts = open(SMS_SERVER_ALERTS_FILE, "w+") json.dump(sms_alerts, f_sms_alerts) f_sms_alerts.close() # Alerts updated, release the lock: release_lockfile(SMS_SERVER_LOCK_FILE)
def apply_modifiers_to_gen_objs(template, time_data): template_key = str(template.GetObjectHandle()) time_data["templates"][template_key]["apply_mods_start"] = time.clock() # Recreate the element tree. root = etree.fromstring(template.Get("TemplateXml")) plLogger = PLLogger.GetLogger("Methodology") plLogger.LogDebug("ExpandTemplateCommand.apply_modifiers_to_gen_objs.begin") # Apply the modifiers to the created objects modifier_ele_list = root.findall(".//" + "StmPropertyModifier") for modifier_ele in modifier_ele_list: # Modifier must contain a type and a tag name modifier_info = modifier_ele.get("ModifierInfo") plLogger.LogDebug("modifier_info: " + str(modifier_info)) res = json_utils.validate_json( modifier_info, proc_func.get_range_modifier_json_schema()) if res != "": t_err_str = "Failed to validate ModifierInfo JSON against " + \ "its schema: " + res return t_err_str err_str, mod_dict = json_utils.load_json(modifier_info) if err_str != "": t_err_str = "Failed to load ModifierInfo JSON: " + err_str return t_err_str md_type = mod_dict.get("modifierType") plLogger.LogDebug("md_type: " + str(md_type)) # Call the correct processing function given the type if md_type == "RANGE": proc_func.apply_range_modifier(template, modifier_ele) plLogger.LogDebug("ExpandTemplateCommand.apply_modifiers_to_gen_objs.end") time_data["templates"][template_key]["apply_mods_end"] = time.clock() time_data["templates"][template_key]["mod_count"] = len(modifier_ele_list) return ""
from urllib import urlencode from common.config import * # Retrieving parameters from CLI from optparse import OptionParser parser = OptionParser() parser.usage = "%prog [options] job_name\n/!\\WARNING/!\\ DO NOT EXECUTE MULTIPLE INSTANCES IN PARALLEL OF THIS SCRIPT IN THE SAME WORKING DIRECTORY" (options, args) = parser.parse_args() if len(args) != 1: parser.print_help() exit(0) JOB_NAME = args[0] job_infos = load_json(JOBS_INFO_FILEPATH)[args[0]] ALERT_RECIPIENT = job_infos["email_recipient"] DATA_JOB_PATH = DATA_PATH + JOB_NAME + "/" # Customize job's specific paths ITEMS_FILEPATH = ITEMS_FILEPATH % job_infos["job_name"] FILTERS_FILEPATH = FILTERS_FILEPATH % job_infos["job_name"] PASSED_ALERTS_FILEPATH = PASSED_ALERTS_FILEPATH % job_infos["job_name"] PASSED_SMS_FILEPATH = PASSED_SMS_FILEPATH % job_infos["job_name"] PASSED_MAILS_FILEPATH = PASSED_MAILS_FILEPATH % job_infos["job_name"] FILTERED_ITEMS_FILEPATH = FILTERED_ITEMS_FILEPATH % job_infos["job_name"] def send_alert(item, filter): from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText
def load_serp_items(self, spider): self.fname_serp_items = spider.export_results_filename.replace('.json', '_serps.json') try: self.serp_items = load_json(self.fname_serp_items) except IOError: self.serp_items = {}
def load_log_items(self, spider): self.fname_log_items = spider.export_results_filename try: self.log_items = load_json(self.fname_log_items) except IOError: self.log_items = {}