Пример #1
0
    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()
Пример #2
0
    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()
Пример #3
0
    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,
                             }
Пример #4
0
    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
Пример #5
0
    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()
Пример #6
0
    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()
Пример #7
0
    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')
Пример #8
0
    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]
Пример #9
0
 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
Пример #10
0
 def terminate(self, whom):
     log.info(whom)
     self.__run = False
Пример #11
0
 def add_marks(self, whom, mark):
     self.__clock_face[mark['Position']].append(mark['CallBack'])
     log.info(self.__clock_face)
     log.info(whom)
Пример #12
0
 def __rmtree(self):
     log.info(shutil.rmtree('{}output'.format(self.__directory)))
Пример #13
0
 def __replace_b(self):
     log.info(
         os.replace('{}output/{}B.bin'.format(self.__directory, self.__job),
                    '{}{}B.bin'.format(self.__directory, self.__job)))
Пример #14
0
 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)))
Пример #15
0
 def __extract_b(self):
     log.info(
         self.__zip.extract(member='output/{}B.bin'.format(self.__job),
                            path=self.__directory))
Пример #16
0
 def __extract_node(self):
     log.info(
         self.__zip.extract(member='output/node_all_{}.bin'.format(
             self.__node),
                            path=self.__directory))