예제 #1
0
파일: Updates.py 프로젝트: RSDT/bot
 def __init__(self, jh_bot, chat_id, deelgebied):
     self.chat_id = chat_id
     self.jh_bot = jh_bot
     self.status = Status()
     self.status.update()
     # self.status.get_updated()
     self.deelgebied = get_deelgebied(deelgebied)
     self.last_update_jh = None
     self.last_update_micky = None
     self.gecontroleerde_codes = []
     self.last_hunt = None
     self.micky_api = ma.MickyApi()
예제 #2
0
파일: Updates.py 프로젝트: RSDT/bot
class ScanUpdates:
    def __init__(self, jh_bot, chat_id, deelgebied):
        self.chat_id = chat_id
        self.jh_bot = jh_bot
        self.status = Status()
        self.status.update()
        # self.status.get_updated()
        self.deelgebied = get_deelgebied(deelgebied)
        self.last_update_jh = None
        self.last_update_micky = None
        self.gecontroleerde_codes = []
        self.last_hunt = None
        self.micky_api = ma.MickyApi()

    def to_tuple(self):
        return self.chat_id, self.deelgebied

    def update_ingevoerd(self):
        # TODO deze functie testen
        hunts, labels, pref_label = jotihuntScraper.get_hunts()
        for h in hunts:
            if get_deelgebied(h[2][0]) == get_deelgebied(self.deelgebied):
                p1 =re.compile('\d+e ')
                dag = p1.findall(h[0])[0][:-2]
                p2 = re.compile('e \d+\:')
                uur= p2.findall(h[0])[0][2:-1]
                p3 = re.compile('\:\d+')
                minuut= p3.findall(h[0])[0][1:]
                d= datetime(year=date.today().year,month=10,day=dag,hour=uur,minute=minuut)
                if self.last_hunt is None:
                    self.last_hunt = d
                else:
                    dd1 = datetime.now().timestamp() - d.timestamp()
                    dd2 = datetime.now().timestamp() - self.last_hunt.timestamp()
                    if dd1 < dd2:
                        self.last_hunt = d
                if h[3] in ['goedgekeurd','afgekeurd'] and h[2] not in self.gecontroleerde_codes:
                    self.jh_bot.bot.sendMessage(self.chat_id, 'Voor de hunt '+ str(h[2]) + ' hebben we ' + str(h[-1]) +
                                                'punten gekregen.')
                    self.gecontroleerde_codes.append(h[-1])

    def update_hunt_reminder(self):
        # TODO implement this
        return

    def update(self):
        self.update_ingevoerd()
        self.update_hunt_reminder()
        if self.deelgebied != 'All':
            team = self.deelgebied[0].lower()
            temp = self.micky_api.get_last_vos(team)
            if temp != self.last_update_micky:
                self.jh_bot.bot.sendMessage(self.chat_id, "Er is een nieuwe hint voor " + self.deelgebied
                                            + " ingevoerd.\n" + 'Dit is een hint van ' + str(
                    temp['datetime'][11:]))  # TODO moet dit naar x minuten geleden?
                self.jh_bot.bot.sendLocation(self.chat_id, latitude=float(temp['latitude']),
                                             longitude=float(temp['longitude']))
                self.jh_bot.bot.sendMessage(self.chat_id,
                                            'zie deze hint op de kaart: ' + map_url + '?' + 'gebied=' +
                                            self.deelgebied[0].upper())
                self.last_update_micky = temp
            self.status.update()
            for deelgebied in [d for d in self.status.get_updated() if d == self.deelgebied[0].lower()]:
                self.jh_bot.bot.sendMessage(self.chat_id, 'Er is een status-update voor ' +
                                            get_deelgebied(deelgebied[0].upper()) + '.\n' +
                                            'de nieuwe status voor ' + get_deelgebied(deelgebied[0].upper()) + ' = ' +
                                            self.status[deelgebied])
                if status_plaatjes[deelgebied[0].lower()][self.status[deelgebied].lower()]['type'] == 'photo':
                    self.jh_bot.bot.sendPhoto(self.chat_id,
                                              status_plaatjes[deelgebied[0].lower()][self.status[deelgebied].lower()][
                                                  'file_id'])
                if status_plaatjes[deelgebied[0].lower()][self.status[deelgebied].lower()]['type'] == 'sticker':
                    self.jh_bot.bot.sendSticker(self.chat_id,
                                                status_plaatjes[deelgebied[0].lower()][self.status[deelgebied].lower()][
                                                    'file_id'])