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)
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