コード例 #1
0
ファイル: run.py プロジェクト: alexey-grom/piratebay-crawler
    def task_page(self, grab, task):
        if grab.response.code != 200:
            with database.transaction():
                Removed.create(id=task.pk)
            return

        data = grab.doc.structure(
            '//*[@id="detailsframe"]',
            x(
                './*[@id="details"]',
                category='.//dt[.="Type:"]/following-sibling::dd/a/text()',
                size=('.//dt[.="Size:"]/following-sibling::dd/text()',
                      converters.extract_integer),
                created=('.//dt[.="Uploaded:"]/following-sibling::dd/text()',
                         converters.extract_datetime),
                hash=('.//dt[.="Info Hash:"]/following-sibling::dd',
                      converters.extract_tail),
            ),
            nfo=('//*[@class="nfo"]/pre', converters.extract_inner_html),
            magnet='//*[@class="download"]/a/@href',
            title='./*[@id="title"]/text()',
        )[0]
        data.update({
            'id': task.pk,
        })

        with database.transaction():
            category = Category.get_or_create(name=data.pop('category', ''))
            Torrent.create(category=category,
                           **data)
コード例 #2
0
ファイル: product_edit_or_add.py プロジェクト: Ciwara/gcommon
    def add_or_edit_prod(self):

        if not self.is_valide():
            print("is not valide")
            return

        name = str(self.name_field.text())
        category = str(self.category_field.text())
        # number_parts_box = str(self.number_parts_box_field.text())

        product = self.prod
        product.name = name
        # product.number_parts_box = number_parts_box
        product.category = Category.get_or_create(category)

        # try:
        #     if self.path_filename:
        #         fileobj = FileJoin(file_name=self.fileName,
        #                            file_slug=self.path_filename)
        #         fileobj.save()
        #         product.file_join = fileobj
        # except IOError:
        #     self.parent.Notify(u"""<h2>Problème d'import du fichier</h2>
        #         Changer le nom du fichier et reesayé si ça ne fonctionne pas contacté le developper""", "error")
        #     return
        # except Exception as e:
        #     print(e)

        try:
            product.save()
            self.cancel()
            self.table_p.refresh_()
            self.parent.Notify(self.succes_msg, "success")
        except peewee.IntegrityError as e:
            field_error(
                self.name_field, u"""Le produit <b>%s</b> existe déjà dans la basse de donnée.""" % product.name)
            return False