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 random_comic(posted): words = random_name.special_thing() c = Comic(title=words, image_url="http://curtis.lassam.net/comics/cube_drone/{}.gif".format(random.choice(range(0, 140))), promo_text= "Promo text for {}".format(words)[:79], posted=posted, secret_text = "Secret text for {}".format(words), alt_text = "Alt text for {}".format(words), tags = [random_name.thing(), random_name.adjective(), random_name.noun()]) if random.choice([False, False, False, True]): c.title = "Hidden {}".format(c.title) c.hidden = True c.save() print("Creating {}".format(c)) return c
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)