def __init__(self, ticker, env): self.bars_data = Bars(ticker) self.prices = self.bars_data.get_data() self.first_run = True self.stream = StreamBar(ticker) self.parser = Parser() self.called = 0 self._offset = 0 self.env = env
def _fetch_next_bars(self, smallestDateTime): '''Find the next earliest datetime and emit all Bars that have an entry for it.''' if smallestDateTime == None: return None # Make a second pass to get all the bars that had the smallest datetime. self._current_bars = Bars() for symbol, feed in self._feeds.iteritems(): if feed.get_next_bar_date() == smallestDateTime: self._current_bars.add_bar(symbol, feed.get_current_bar()) return self._current_bars
def new_message(self, message): if message.upper() == self._COMMANDS[0]: return self._HELLO[randint(0, len(self._HELLO) - 1)] elif message.upper() == self._COMMANDS[1] or message.upper() == self._COMMANDS_SHORT[1]: return self._get_time() elif message.upper() == self._COMMANDS[2]: return self._BYE[randint(0, len(self._BYE) - 1)] elif message.upper().split(' ')[0] == self._COMMANDS[3] or message.upper().split(' ')[0] == self._COMMANDS_SHORT[3]: data = message.split(' ') db = Database() if(not db._check_if_user_exists(self._USER_ID)): return f"Пожалуйста сначала зарегистрируйтесь!" user_info = db._get_user_info(self._USER_ID) if len(data) == 2: if(data[1] not in self._GROUPS): if(data[1] in self._GROUPS_ENG): data[1] = self._GROUPS[self._GROUPS_ENG.index(data[1])] else: return "Ошибка группы!" sc = Schedule(data[1], user_info[1], user_info[2]) else: sc = Schedule(user_info[0], user_info[1], user_info[2]) return sc._get_schedule() elif message.upper() == self._COMMANDS[4] or message.upper() == self._COMMANDS_SHORT[4]: return "Всё что я понимаю это: \nПРИВЕТ - бесполезная опция, но если вам нечем больше заняться, можете также попробовать команду ПОКА\n\n\ (В)РЕМЯ - скажу, который сейчас час\n\n(П)ОМОЩЬ - выведу вот это сообщение :)\n\n(Р)АСПИСАНИЕ [А-XX-18]- покажу расписание. Если группа не указана, расписание будет для вашей группы.\n\n\ (З)АРЕГИСТРИРОВАТЬСЯ - если вы не зарегистрировались, для просмотра ваших оценок придётся это сделать, написав следующее:\n(З)АРЕГИСТРИРОВАТЬСЯ ваш_логин ваш_пароль А-XX-18 \n\n\ (Б)АРС - просмотр оценок\n" elif message.split(' ')[0].upper() == self._COMMANDS[5] or message.split(' ')[0].upper() == self._COMMANDS_SHORT[5]: return self._register(message) elif message.upper() == self._COMMANDS[6] or message.upper() == self._COMMANDS_SHORT[6]: db = Database() if(not db._check_if_user_exists(self._USER_ID)): return f"Пожалуйста сначала зарегистрируйтесь!" user_info = db._get_user_info(self._USER_ID) bars = Bars(user_info[1], user_info[2]) return bars._get_data() else: return self._DONT_KNOW[randint(0, len(self._DONT_KNOW) - 1)]