def process_item(self, item, spider): comic = Comic() comic.comic_strip = self.comic_strip comic.date = item['date'] if 'title' in item: comic.title = item['title'] else: comic.title = None if comic.title is None: comic.title = "{} : {}/{}/{}".format(self.comic_strip.name, comic.date.month, comic.date.day, comic.date.year) comic.comic_page_url = item['comic_page_url'] comic.comic_url = item['comic_url'] if 'alt_text' in item: comic.alt_text = item['alt_text'] if 'alt_comic_url' in item: comic.alt_comic_url = item['alt_comic_url'] try: comic.save() except IntegrityError: # Not needed, but we should try updating here. pass return item
def createComic(user, title, panel1Id, panel2Id, panel3Id, panel4Id, panel5Id, panel6Id): try: comic = Comic.objects.get(panel1=panel1Id, panel2=panel2Id, panel3=panel3Id, panel4=panel4Id, panel5=panel5Id, panel6=panel6Id) return {'comicExisted': True, 'comic': comic} except Comic.DoesNotExist: if not verifyComicPanelIds( [panel1Id, panel2Id, panel3Id, panel4Id, panel5Id, panel6Id]): return None comic = Comic(panel1=panel1Id, panel2=panel2Id, panel3=panel3Id, panel4=panel4Id, panel5=panel5Id, panel6=panel6Id, title=title, createdby=user, datecreated=datetime.datetime.now()) comic.save() return {'comicExisted': False, 'comic': comic}
def test_details_url(self): pk = 2 name = "Spider-Man (2019) #1" expected_result = '/comics/details/' + str(pk) comic = Comic(pk=pk, name=name) result = '/comics/details/2' self.assertEqual(result, expected_result)
def create_comic(): fake = Faker() comic = Comic( # the random values are imported from data.py name=random.choice(data.names), publisher=random.choice(data.publishers), description=fake.paragraph(nb_sentences=10, variable_nb_sentences=True), cover=random.choice(data.covers), price=random.uniform(0, 99) ) comic.save()
def comic(request, comic_id): follows = ComicFollows.objects.filter(comic=comic_id, user_id=request.user).count() if Comic.objects.filter(pk=comic_id).count(): return render(request, 'comics/comic.html', { 'comic': Comic.objects.get(pk=comic_id), 'follows': follows }) else: headers = {'User-Agent': 'PintGrupo10'} field_list = 'id,issue_number,name,volume,cover_date,description,image' response = requests.get( 'https://comicvine.gamespot.com/api/issue/4000-' + comic_id, params={ 'format': 'json', 'api_key': settings.COMICVINE_KEY }, headers=headers) if response.status_code == 200: son = json.loads(response.text) results = son['results'] if results: comic_id = results['id'] issue_number = results['issue_number'] if not issue_number: issue_number = 0 title = results['name'] if not title or title == 'None': title = son['results']['volume']['name'] if not title: title = "Title not available" image = results['image']['small_url'] store_date = results['cover_date'] if not store_date: store_date = "0000-00-00" synopsis = results['description'] if not synopsis: synopsis = "Synopsis not available" Comic(comic_id, issue_number, title, image, store_date, synopsis).save() return render(request, 'comics/comic.html', { 'comic': Comic.objects.get(pk=comic_id), 'follows': follows }) return render(request, 'comics/404.html')
def post(self): form = ComicCreateForm(data=request.get_json()) if form.validate(): pass else: abort(400) qry = Comic.query(Comic.number == form.number.data) if len(qry.fetch(1)) > 0: return make_response(render_template("409.html")) comic = Comic() comic.number = form.number.data comic.title = crawler.findTitle(comic.number) image = crawler.findImage(comic.number) comic.image = b64encode(image) if image is not None else image comic.put() return redirect(api.url_for(ComicList), 301)
def test_string_representation(self): comic = Comic(name="Spider-Man (2019) #1") self.assertEqual(str(comic), comic.name)