def check(self): if self._pipe_to_nbu.status(): nbu_week, bid_offer, tbody = self.parser( self._pipe_to_nbu.data['content']) self._struct.time = datetime.now() self._struct.official.main = bid_offer[0] self._struct.official.diff = bid_offer[1] self._struct.week = nbu_week.text self._struct.date = tbody.small.text self._insert_obj({ 'time': self._struct.time, 'official_main': self._struct.official.main, 'official_diff': self._struct.official.diff, 'week': self._struct.week, 'date': self._struct.date }) log.info(self._struct) # log.info(self._get_all_objects()) else: for i, v in self._pipe_to_nbu.errors.items(): log.debug(i) log.debug(v) self._add_mark()
def check(self): if self._pipe_to_interbank.status(): bid, offer = self.parser(self._pipe_to_interbank.data['content']) self._struct.time = datetime.now() self._struct.bid.main = bid[0] self._struct.bid.diff = bid[1] self._struct.offer.main = offer[0] self._struct.offer.diff = offer[1] self._insert_obj({ 'time': self._struct.time, 'bid_main': self._struct.bid.main, 'bid_diff': self._struct.bid.diff, 'offer_main': self._struct.offer.main, 'offer_diff': self._struct.offer.diff }) log.info(self._struct) # log.info(self._get_all_objects()) else: for i, v in self._pipe_to_interbank.errors.items(): log.debug(i) log.debug(v) self._add_mark()
def __init__(self, chrono): log.info('USD: {}'.format(self._get_one_obj({'currency': 'USD'})['minfin_usd'])) log.info('EUR: {}'.format(self._get_one_obj({'currency': 'EUR'})['minfin_eur'])) self.__usd = AuctionUSD(source=self._get_one_obj({'currency': 'USD'})['minfin_usd'], chrono=chrono) self.__eur = AuctionEUR(source=self._get_one_obj({'currency': 'EUR'})['minfin_eur'], chrono=chrono) # self.__pln = AuctionPLN(source=self.get_one_obj({'currency': 'PLN'})['minfin_pln'], chrono=chrono) self.__directions = {'USD': self.__usd.appeal, 'EUR': self.__eur.appeal, }
def run(self): while self.__run: sleep(self.__kvant) for callback in self.__clock_face[self.__current_mark]: log.info(callback) callback() self.__clock_face[self.__current_mark] = [] if self.__current_mark == 59: self.__current_mark = 0 else: self.__current_mark += 1
def appeal(self, letter): """ - get current values - get from to (how can I do it?) :param letter: :return: """ log.info(letter) # log.info(self._get_spec([{'$group': {'_id': {'day': {'$dayOfYear': '$time'}}, letter: {'$push': '${}'.format(letter)}, 'date': {'$push': '$time'}}}])) # log.info(self._get_spec([{'$group': {'_id': None, letter: {'$push': {'$convert': {'input': '${}'.format(letter), 'to': "decimal"}}}, 'date': {'$push': '$time'}}}])) # return self._get_spec([{'$group': {'_id': None, letter: {'$push': '${}'.format(letter)}, 'date': {'$push': '$time'}}}]) return self._get_all_objects()
def appeal(self, letter): """ - get current values - get from to (how can I do it?) :param letter: :return: """ # log.info(self._get_all_objects()) # self._update_all(data={'YEAR': 1, 'MONTH': 1, 'DAY': 1, 'HOUR': 1}) # log.info(self._get_all_objects()) log.info(letter) # log.info(self._get_spec([{'$group': {'_id': {'day': {'$dayOfYear': '$time'}}, letter: {'$push': '${}'.format(letter)}, 'date': {'$push': '$time'}}}])) # log.info(self._get_spec([{'$group': {'_id': None, letter: {'$push': '${}'.format(letter)}, 'date': {'$push': '$time'}}}])) # return self._get_spec([{'$group': {'_id': None, letter: {'$push': '${}'.format(letter)}, 'date': {'$push': '$time'}}}]) return self._get_all_objects()
def check_versions(self): try: response = requests.get(self.NODES) except Exception as err: log.error(err) self.__last_error = err return False g = bs4.BeautifulSoup(response.text, 'html.parser') if self.__job < int(re.sub('#', '', g.find(id=self.__get_job__str()).findAll(class_='model-link inside')[1].text)): self.__job = int(re.sub('#', '', g.find(id=self.__get_job__str()).findAll(class_='model-link inside')[1].text)) self.__date = re.sub(':', '_', re.sub('-', '_', g.find(id=self.__get_job__str()).findAll('td')[6].get('data'))) self.get_bin() self.get_deb() self.get_zip() else: log.info('ooo')
def parser(content): html = BeautifulSoup(content, 'html.parser') try: trs = html.main.tbody.findAll('tr') except Exception as err: return [None, None, None, None] for tr in trs: if 'ЧОРНИЙ РИНОК' in tr.a: log.info(tr.text) data = re.findall(r'[-+]?\d{1,2}\.\d{1,4}', tr.text) log.info(data) # TODO Fix it if len(data) < 2: return [None, None, None, None] data_float = [] for d in data: data_float.append(float(d)) return data_float return [None, None, None, None]
def appeal(self, letter): answer_to_user = {} for key, value in letter.items(): log.info('') log.info('Key: {}'.format(key)) log.info('Value: {}'.format(value)) if self.__departments.get(key): answer_to_user[key] = self.__departments[key](value) return answer_to_user
def terminate(self, whom): log.info(whom) self.__run = False
def add_marks(self, whom, mark): self.__clock_face[mark['Position']].append(mark['CallBack']) log.info(self.__clock_face) log.info(whom)
def __rmtree(self): log.info(shutil.rmtree('{}output'.format(self.__directory)))
def __replace_b(self): log.info( os.replace('{}output/{}B.bin'.format(self.__directory, self.__job), '{}{}B.bin'.format(self.__directory, self.__job)))
def __replace_node(self): log.info( os.replace( '{}output/node_all_{}.bin'.format(self.__directory, self.__node), '{}node_all_{}.bin'.format(self.__directory, self.__node)))
def __extract_b(self): log.info( self.__zip.extract(member='output/{}B.bin'.format(self.__job), path=self.__directory))
def __extract_node(self): log.info( self.__zip.extract(member='output/node_all_{}.bin'.format( self.__node), path=self.__directory))