Esempio n. 1
0
 def convert_event(self, html_event):
     event = Event()
     event.id = self.extract_id(html_event)
     event.title = self.extract_title(html_event)
     event.date = self.extract_date(html_event)
     event.enrollment_date = self.extract_enrollment_date(html_event)
     return event
Esempio n. 2
0
 def get_events(self):
     event = Event()
     event.id = 'unique'
     event.title = 'Øl øl øl!'
     event.notification_sent = False
     event.date = datetime.now() + timedelta(days=1)
     event.enrollment_date = datetime.now() + timedelta(minutes=10)
     time.sleep(5)
     return [event]
Esempio n. 3
0
 def to_event(cls, row):
     event = Event()
     if row['id']:
         event.id = row['id']
     if row['title']:
         event.title = row['title']
     if row['notification_sent']:
         event.notification_sent = row['notification_sent']
     if row['date']:
         event.date = row['date']
     if row['enrollment_date']:
         event.enrollment_date = row['enrollment_date']
     return event
Esempio n. 4
0
    def load_events_from_data(self, data):
        if data is not None:
            json_data = json.loads(data)
            for e in json_data['events']:
                event = Event()
                event.id = int(e['id'])
                event.feed_amount = int(e['feed_amount'])
                event.event_time = datetime.strptime(e['event_time'], '%Y-%m-%dT%H:%M:%S.%fZ')
                event.has_run = e['has_run']
                for i in e['images']:
                    image = Image()
                    image.file_name = i['file_name']
                    event.add_image(image)

                self.add_event(event)
Esempio n. 5
0
    def process_slack_message_data(self, data):
        # {"type": "message",
        # "subtype": "bot_message",
        #  "text": "...",
        #  "username": "******",
        #  "icons": {"emoji": ":sparkler:",
        #            "image_64": "https:\/\/a.slack-edge.com\/37d58\/img\/emoji_2017_12_06\/apple\/1f387.png"},
        #  "bot_id": "B04VC4ZJF",
        #  "attachments": [...]

        if "text" in data and "channel" in data and ("username" in data
                                                     or "user" in data):
            txt = data["text"]
            user = data["username"] if "username" in data else data["user"]
            channel = data["channel"]
            alert_types = [
                word for word in self.cfg["listen_to_kw"] if word in txt
            ]
            event = Event()

            if "realtimeEvent" in txt and len(alert_types) and \
                    any(word in channel for word in self.cfg["listen_on_channel"]) and \
                    any(word in user for word in self.cfg["listen_to_user"]):
                logging.info("Found valid alert")
                fields = data["attachments"][0]["fields"]
                event.time = fields[0]["value"]
                event.run = fields[1]["value"].split("/")[0].strip()
                event.id = fields[1]["value"].split("/")[1].strip()
                event.signal_prob = fields[2]["value"].split("/")[0].strip()
                event.far = fields[2]["value"].split("/")[1].strip()
                event.e_mu = fields[3]["value"].split("/")[0].strip()
                event.e_nu = fields[3]["value"].split("/")[1].strip()
                event.ra = fields[4]["value"].split("/")[0].strip()
                event.dec = fields[4]["value"].split("/")[1].strip()
                event.angle_err_50 = fields[5]["value"].split(" ")[0].strip()
                event.angle_err_90 = fields[5]["value"].split(
                    " ")[1].strip().rstrip(")").lstrip("(")
                event.alert_type = alert_types[
                    0]  # you can set order in self.cfg but double alerts not expected
                print("eventtime", event.time)
                self.process_valid_event(event)
Esempio n. 6
0
 def test_maps_id(self):
     event = Event()
     event.id = '*****@*****.**'
     assert Mapper.to_row(event)['id'] == '*****@*****.**'