Exemplo n.º 1
0
    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
Exemplo n.º 2
0
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)
Exemplo n.º 4
0
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()
Exemplo n.º 5
0
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')
Exemplo n.º 6
0
    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)