Esempio n. 1
0
        def decorated_function(*args, **kwargs):
            request_data = request.get_json()
            required_fields = ['name', 'mail', 'password']
            mail_taken = AuthServices.check_for_user(request_data.get('mail'))
            for key in required_fields:
                if key not in request_data:
                    pass
                if key == 'mail':
                    try:
                        Parser.parse_email(request_data.get('mail'), mail_taken)
                    except EmailFormatException as e:
                        message = construct_response_message(message=e.error_message)
                        return json.dumps(message), Status.HTTP_406_NOT_ACCEPTABLE
                    except AccountAlreadyExist as e:
                        message = construct_response_message(message=e.error_message)
                        return json.dumps(message), Status.HTTP_406_NOT_ACCEPTABLE

                if key == 'password':
                    try:
                        Parser.parse_password(request_data.get('password'))
                    except PasswordLengthException as e:
                        message = construct_response_message(message=e.error_message)
                        return json.dumps(message), Status.HTTP_400_BAD_REQUEST

            return fn(request_data)
Esempio n. 2
0
    def process_new_file(event):
        time.sleep(1)
        print("Initiating processing of file " + event.src_path)
        try:
            validator = Validator(event.src_path)
            if validator.is_valid():
                parser = Parser(event.src_path)
                data = parser.parse()
            else:
                move_file(event.src_path, ARCHIVE_FILED_FILES)
                print("File %s is not valid" % event.src_path)
                return

            database = DataBase()
            database.store_product(data)

            presta_db = PrestaShopDB()
            presta_db.update_quantity(data.Reference, data.Stock)

            # post to presta
            # delete file
            # log
            # fail manda email
            print("Received created event - %s." % event.src_path)
            move_file(event.src_path, ARCHIVE_FILES)
        except Exception as e:
            print("Failed to process file - %s." % event.src_path)
            print(str(e))
            move_file(event.src_path, ARCHIVE_FILED_FILES)
Esempio n. 3
0
 def go(ch, method, properties, body):
     cmd = body.decode('utf8')
     if False:
         pass
     elif cmd == 'pull_urls':
         parser = Parser()
         parser.pull_urls()
     ch.basic_ack(delivery_tag=method.delivery_tag)
Esempio n. 4
0
        def decorated_function(*args, **kwargs):
            request_data = request.get_json()
            password = request_data.get('password')
            try:
                Parser.parse_password(password)
            except PasswordLengthException as e:
                message = construct_response_message(message=e.error_message)
                return json.dumps(message), Status.HTTP_400_BAD_REQUEST

            return fn(request_data)
Esempio n. 5
0
    def handle(self, *args, **options):

        base_urls = OfferUrl.objects.filter(is_supervised__exact=False).all()

        for base_url in base_urls:

            html_repository = HtmlOfferRepository(
                base_url.offer_provider.provider)

            provider = Parser(base_url.offer_provider.provider)

            pages_count = provider.get_pages_count(base_url.url)

            for page in range(1, pages_count + 1):

                list_url = base_url.url + '?page=' + str(page)
                print(list_url)

                offers_urls = provider.get_offers_urls(list_url)
                if len(offers_urls) < 1:
                    continue

                for offer_url in offers_urls:
                    print(' -', offer_url)
                    offer_content = provider.get_content_by_url(offer_url)

                    offer_content_disp = ContentDispatcher(offer_content)

                    offer_items = offer_content_disp.get_items()

                    offer_items_data = []

                    for offer_item in offer_items:
                        data = offer_item.__dict__
                        offer_items_data.append(data)

                    offer_data = {
                        'title': offer_content_disp.get_title(),
                        'rules': offer_content_disp.get_rules(),
                        'offer_url': offer_url,
                        'created_at': datetime.now(),
                        'items': offer_items_data,
                    }

                    db.offers.insert_one(offer_data)
Esempio n. 6
0
def index(request):

    reader = CsvReader('SpendingCoach/sample.csv')
    parser = Parser(reader)

    # for index, data in parser:
    #    results.append({})
    pprint.PrettyPrinter()
    pprint.pprint(parser.parse())

    income = 0.00
    expense = 0.00

    for p in parser.parse():
        if p['is_expense'] is True:
            expense += float(p['amount'])
        else:
            income += float(p['amount'])

    result = {"income": income, "expense": expense}

    return TemplateResponse(request, "dashboard.html", result)
Esempio n. 7
0
class HtmlOfferRepository(OfferRepository):
    @contract
    def __init__(self, provider_name: str):
        self.set_provider_name(provider_name)

    @contract
    def set_provider_name(self, provider_name: str):
        self.parser = Parser(provider_name)

    @contract
    def add(self, offer_entity: OfferEntity):
        return self

    @contract
    def get_by_url(self, url: str) -> OfferEntity:
        return self.parser.get_offer_entity_by_url(url)
Esempio n. 8
0
 def test_get_cats(self):
     urls = Parser.get_provider_urls('kupikupon', 'https://kupikupon.ru')
     self.assertIsInstance(urls, list)
Esempio n. 9
0
 def set_provider_name(self, provider_name: str):
     self.parser = Parser(provider_name)
Esempio n. 10
0
 def test_parser(self):
     reader = CsvReader('tests/samples/sample_statement.csv')
     parser = Parser(reader)
     pprint.PrettyPrinter()
     pprint.pprint(parser.parse())
Esempio n. 11
0
 def go(ch, method, properties, body):
     offer_id = body.decode('utf8')
     parser = Parser()
     parser.pull_offer_by_id(offer_id)
     ch.basic_ack(delivery_tag=method.delivery_tag)
Esempio n. 12
0
from configuration import dir_path
from services.parser import Parser
from services.inverter import Inverter

if __name__ == "__main__":
    parser = Parser()
    parser.run(dir_path)
    inverted_index = Inverter.invert_index(parser.term_doc_df)
    inverted_index = inverted_index.select("termID", "docID").toPandas()
    inverted_index['termID'] = inverted_index["termID"].apply(int)
    inverted_index.to_csv("invertedIndex.csv", index=False)
Esempio n. 13
0
from services.parser import Parser
from services.downloader import Downloader
from services.printer import Printer

args_parser = argparse.ArgumentParser()
args_parser.add_argument("url", help="the dictinoary url you want to download")
args_parser.add_argument(
    "--output",
    help="output to specific path, default is current path",
    default=os.getcwd())
args_parser.add_argument(
    "--workers",
    help="the number used to download multiple files at sametime, default is 5",
    default=5,
    type=int)
args = args_parser.parse_args()

php_directory_lister_parser = Parser()
downloader = Downloader(args.workers)
printer = Printer()

downloader.on_download_progress_updated(
    lambda current, total, filename: \
    printer.print_progress(current, total, filename) if current < total else printer.completed(filename)
)

php_directory_lister_parser.on_folder_updated(
    lambda link: downloader.download(link, args.output))

php_directory_lister_parser.walk_folder_tree(args.url)