Exemplo n.º 1
0
    def fetch(self):
        feed = feedparser.parse(URL)

        for entry in feed['entries']:
            try:
                Comic.get(Comic.url == entry['link'])
            except Comic.DoesNotExist:
                Comic.create(
                    url=entry['link'],
                    title=entry['title'],
                    image_url=entry['link'],
                    type='c'
                )
Exemplo n.º 2
0
    def post(self):
        comics = self.request.body
        logging.warning(comics)
        comics = json.loads(comics)

        for comic in comics:
            newComic = Comic(publisher=comic.get('publisher'),
                             title=comic.get('title'),
                             booknum=comic.get('booknum'),
                             writer=comic.get('writer'),
                             artist=comic.get('artist'),
                             misc=comic.get('misc'))
            newComic.put()
            self.response.out.write(newComic.key.urlsafe())
Exemplo n.º 3
0
    def insert_data(self, data):
        """
        Will handle inserting data into the database
        """
        try:
            db_session = DBSession()
            # Check if comic is in database, if so update else create
            try:
                comic = db_session.query(Comic).filter(
                    Comic.comic_id == data.get('comic_id')).one()
            except NoResultFound:
                comic = Comic()

            comic.title = data.get('title')
            comic.comic_id = data.get('id')
            comic.alt = data.get('alt')
            comic.file_path = data.get('file_path')
            comic.posted_at = data.get('posted_at')
            comic.time_collected = data.get('time_collected')

            db_session.add(comic)
            db_session.commit()

        except Exception:
            db_session.rollback()
            logger.exception("Error adding to db {data}".format(data=data))
Exemplo n.º 4
0
    def post(self, cid):
        comic = Comic.get_by_id(int(cid))

        if comic is None:
            return

        img_src = fetch_latest_comic(comic)

        if img_src is None:
            logging.error("ERROR: Could not find comic url for " + cid)
            return

        q = comic.entries
        q.filter("img_url =", img_src)
        prev_entry = q.get()

        if prev_entry is not None:
            logging.info("ERROR: Already have comic, not updating")
            return

        logging.info("SUCCESS: Adding url " + img_src)
        comic.num_entries += 1
        entry = ComicEntry(img_url=img_src, comic=comic, num=comic.num_entries)
        entry.put()
        comic.put()
        self.response.out.write("OK")
	def post(self):
	    comics = self.request.body
	    logging.warning(comics)
	    comics = json.loads(comics)

	    for comic in comics:
	    	newComic = Comic(
	    				publisher=comic.get('publisher'),
	    				title=comic.get('title'),
	    				booknum=comic.get('booknum'),
	    				writer=comic.get('writer'),
	    				artist=comic.get('artist'),
	    				misc=comic.get('misc')
	    				)
	    	newComic.put()
	    	self.response.out.write(newComic.key.urlsafe())
Exemplo n.º 6
0
 def post(self, cid):
     comic = Comic.get_by_id(int(cid))
     
     if comic is None:
         return
     
     img_src = fetch_latest_comic(comic)
     
     if img_src is None:
         logging.error("ERROR: Could not find comic url for " + cid)
         return
     
     q = comic.entries
     q.filter("img_url =", img_src)
     prev_entry = q.get()
     
     if prev_entry is not None:
         logging.info("ERROR: Already have comic, not updating")
         return
     
     logging.info("SUCCESS: Adding url " + img_src)
     comic.num_entries += 1
     entry = ComicEntry(img_url = img_src, comic = comic, num = comic.num_entries)
     entry.put()
     comic.put()
     self.response.out.write("OK")
Exemplo n.º 7
0
    def fetch(self):
        feed = feedparser.parse(URL)
        pattern = re.compile(IMAGE_URL_REGEX)

        for entry in feed['entries']:
            try:
                Comic.get(Comic.url == entry['link'])
            except Comic.DoesNotExist:
                imgs = pattern.findall(entry['summary'])

                Comic.create(
                    url=entry['link'],
                    title=entry['title'],
                    image_url="http://" + imgs[0] if len(imgs) > 0 else None,
                    type='e'
                )
Exemplo n.º 8
0
 def get(self):
     q = []
     comics = self.request.get('data')
     if comics:
         logging.info(comics)
         data = json.loads(comics)
         q = Comic.get_by_id(data["comics"])
     self.render("list.js", {'comics': q})
Exemplo n.º 9
0
def random_comic(request):
    """redirects to a random comic"""
    return HttpResponseRedirect(
        get_object_or_404(
            Comic,
            sequence=random.randint(1,Comic.last())
        ).get_absolute_url()
    )
Exemplo n.º 10
0
def loadArcamax():
    arcamax = [
    { "meta": "ninechickweedlane", "name": "9 Chickweed Lane" },
    { "meta": "agnes", "name": "Agnes" },
    { "meta": "andycapp", "name": "Andy Capp" },
    { "meta": "arcticcircle", "name": "Arctic Circle" },
    { "meta": "bc", "name": "BC" },
    { "meta": "babyblues", "name": "Baby Blues" },
    { "meta": "beetlebailey", "name": "Beetle Bailey" },
    { "meta": "blondie", "name": "Blondie" },
    { "meta": "boondocks", "name": "Boondocks" },
    { "meta": "brilliantmindofedisonlee", "name": "Brilliant Mind of Edison Lee" },
    { "meta": "cathy", "name": "Cathy" },
    { "meta": "daddyshome", "name": "Daddy's Home" },
    { "meta": "dilbert", "name": "Dilbert" },
    { "meta": "thedinetteset", "name": "Dinette Set" },
    { "meta": "dogeatdoug", "name": "Dog Eat Doug" },
    { "meta": "doonesbury", "name": "Doonesbury" },
    { "meta": "dustin", "name": "Dustin" },
    { "meta": "familycircus", "name": "Family Circus" },
    { "meta": "garfield", "name": "Garfield" },
    { "meta": "getfuzzy", "name": "Get Fuzzy" },
    { "meta": "girlsandsports", "name": "Girls & Sports" },
    { "meta": "hagarthehorrible", "name": "Hagar the Horrible" },
    { "meta": "heathcliff", "name": "Heathcliff" },
    { "meta": "hiandlois", "name": "Hi and Lois" },
    { "meta": "humorcartoon", "name": "Jerry King Cartoons" },
    { "meta": "luann", "name": "Luann" },
    { "meta": "mallardfillmore", "name": "Mallard Fillmore" },
    { "meta": "momma", "name": "Momma" },
    { "meta": "mothergooseandgrimm", "name": "Mother Goose & Grimm" },
    { "meta": "mutts", "name": "Mutts" },
    { "meta": "nonsequitur", "name": "Non Sequitur" },
    { "meta": "pearlsbeforeswine", "name": "Pearls Before Swine" },
    { "meta": "pickles", "name": "Pickles" },
    { "meta": "redandrover", "name": "Red and Rover" },
    { "meta": "rhymeswithorange", "name": "Rhymes with Orange" },
    { "meta": "rubes", "name": "Rubes" },
    { "meta": "rugrats", "name": "Rugrats" },
    { "meta": "speedbump", "name": "Speed Bump" },
    { "meta": "wizardofid", "name": "Wizard of Id" },
    { "meta": "zits", "name": "Zits" }
    ]
    for y in arcamax:
        c = Comic(name = y['name'], author = "", ctype = ARCAMAX_TYPE, meta = y['meta'], num_entries = 0)
        c.put()
Exemplo n.º 11
0
 def get(self):
     q = []
     comics = self.request.get('data')
     if comics:
         logging.info(comics)
         data = json.loads(comics)
         q = Comic.get_by_id(data["comics"])
     self.render("list.js", { 'comics': q})
Exemplo n.º 12
0
    def fetch(self):
        feed = feedparser.parse(URL)
        pattern = re.compile(IMAGE_URL_REGEX)

        for entry in feed['entries']:
            try:
                Comic.get(Comic.url == entry['id'])
            except Comic.DoesNotExist:
                imgs = pattern.findall(entry['summary'])

                if len(imgs) == 0 or not imgs[0]:
                    continue

                Comic.create(
                    url=entry['id'],
                    title=entry['title'],
                    image_url=imgs[0],
                    type='x'
                )
Exemplo n.º 13
0
 def addTasks(self):
     q = Comic.all()
     queue = Queue(name='update-queue')
     tasks = []
     for comic in q:
         if len(tasks) >= 100:
             queue.add(tasks)
             tasks = []
         else:
             task = Task(url='/tasks/update/' + str(comic.id))
             tasks.append(task)
     self.response.out.write("OK")
Exemplo n.º 14
0
 def addTasks(self):
     q = Comic.all()
     queue = Queue(name='update-queue')
     tasks = []
     for comic in q:
         if len(tasks) >= 100:
             queue.add(tasks)
             tasks = []
         else:
             task = Task(url='/tasks/update/' + str(comic.id))
             tasks.append(task)
     self.response.out.write("OK")
Exemplo n.º 15
0
 def get(self, comicId, episodeId):
     comicId = int(comicId)
     episodeId = int(episodeId)
     comic = Comic.get_by_id(comicId)
     if comic:
         q = comic.entries
         q.filter('num =', episodeId)
         episode = q.get()
         if (episode):
             self.render("entry.js", {'entry': episode})
             return
     self.response.clear()
     self.response.set_status(500)
     self.response.out.write("This operation could not be completed")
Exemplo n.º 16
0
def fillData():
    for col in Collection.select():
        req = requests.get(col.url)
        print(f'Reading {col.title}')
        if req.status_code == 200:
            soup = BeautifulSoup(req.content, 'html.parser')
            for i, td in enumerate(soup.findAll('td', {'class': 'column-2'})):
                comicid = cleanText(td.text)

                if comicid != '' and Comic.get_or_none(id=comicid) == None:
                    Comic.create(id=comicid, raw_name=td.text.strip())
                    print(f'Created Comic {td.text.strip()}')

                if comicid != '' and ComicCollection.get_or_none(
                        comic=comicid, collection=col.id) == None:
                    ComicCollection.create(comic=comicid,
                                           collection=col.id,
                                           order=i)
                    print(
                        f'Created Comic On Colletion {comicid} - {col.id} - {i}'
                    )
        else:
            print(f'Invalid Status Code {req.status_code}')
Exemplo n.º 17
0
 def get(self, comicId, episodeId):
     comicId = int(comicId)
     episodeId = int(episodeId)
     comic = Comic.get_by_id(comicId)
     if comic:
         q = comic.entries
         q.filter('num =', episodeId)
         episode = q.get()
         if(episode):
             self.render("entry.js", {'entry': episode})
             return
     self.response.clear()
     self.response.set_status(500)
     self.response.out.write("This operation could not be completed")
Exemplo n.º 18
0
    def test_add_comic(self):

        newComic = Comic(9021090, "Test Comic", 4, "Test Desc", "12345678", 88,
                         4.99, "http://www.utexas.edu/diploma.gif", 6, 7, 3)
        db.session.add(newComic)
        db.session.commit()
        query = db.session.query(Comic).filter_by(id="9021090").first()
        self.assertEqual(query.id, 9021090)
        self.assertEqual(query.title, "Test Comic")
        self.assertEqual(query.img, "http://www.utexas.edu/diploma.gif")
        self.assertEqual(query.num_creators, 6)
        self.assertEqual(query.num_characters, 7)
        self.assertEqual(query.num_events, 3)
        db.session.delete(newComic)
        db.session.commit()
Exemplo n.º 19
0
 def get(self, ce_id):
     ce_id = int(ce_id)
     cid = (ce_id >> 16) & 0xFFFF
     eid = ce_id & 0xFFFF
     logging.info("comic id = " + str(cid))
     logging.info("entry id = " + str(eid))
     c = Comic.get_by_id(cid)
     if c:
         q = c.entries
         q.filter('num =', eid)
         e = q.get()
         if (e):
             self.render("entry.js", {'entry': e})
             return
     self.response.clear()
     self.response.set_status(500)
     self.response.out.write("This operation could not be completed")
Exemplo n.º 20
0
 def get(self, ce_id):
     ce_id = int(ce_id)
     cid = (ce_id >> 16) & 0xFFFF
     eid = ce_id & 0xFFFF
     logging.info("comic id = " + str(cid))
     logging.info("entry id = " + str(eid))
     c = Comic.get_by_id(cid)
     if c:
         q = c.entries
         q.filter('num =', eid)
         e = q.get()
         if(e):
             self.render("entry.js", {'entry': e})
             return
     self.response.clear()
     self.response.set_status(500)
     self.response.out.write("This operation could not be completed")
Exemplo n.º 21
0
    def test_add_comic(self):

	with app.app_context():

		newComic = Comic(id=9021090, title="Test Comic", issue_num=4, desc="Test Desc", upc="12345678",
				 pg_ct=88, price=4.99, img="http://www.utexas.edu/diploma.gif", num_creators=6, num_characters=7, num_events=3)
		db.session.add(newComic)
		db.session.commit()
		query = db.session.query(Comic).filter_by(id="9021090").first()
		self.assertEqual(query.id, 9021090)
		self.assertEqual(query.title, "Test Comic")
		self.assertEqual(query.img, "http://www.utexas.edu/diploma.gif")
		self.assertEqual(query.num_creators, 6)
		self.assertEqual(query.num_characters, 7)
		self.assertEqual(query.num_events, 3)
		db.session.delete(newComic)
		db.session.commit()
Exemplo n.º 22
0
 def get(self):
     user = users.get_current_user()
     if user:
         comics = Comic.all()
         text = self.request.get('input')
         if users.is_current_user_admin():
             role = "Dibujante"
         else:
             role = "Lector"
         self.render_template(
             'adds.html', {
                 'comics': comics,
                 'input': text,
                 'user': user,
                 'role': role,
                 'logout': users.create_logout_url('/')
             })
     else:
         self.redirect(users.create_login_url(self.request.uri))
Exemplo n.º 23
0
def main():

    #fcharacters = open('comic_characters.txt', 'a')
    #fcreators = open('comic_creators.txt', 'a')
    #fevents = open('comic_events.txt', 'a')

    marvel = MarvelRequest()

    """
	json.loads(String) takes in json formatted string, and outputs
	 data according to the conversion table at json library website
    """

    index = 0

    for offset in range(36080, 41000, 20):

        response = marvel.request("comics", offset)  # No trailing slash allowed here
        print(response.status_code)
        assert response.status_code == 200
        comic = json.loads(response.text)

	idNum = 0
        title = ""
	issue = ""
        desc = ""
	upc = ""
	pg_ct = 0
	comic_price = ""
        path = ""
        numCreators = ""
        numChars = ""
        numEvents = ""

        for comic_meta_keys, comic_meta_data in comic['data'].items():
            # comic_meta_keys: offset, limit, total, count, results[] from
            # Marvel JSON structure
            if comic_meta_keys == 'results':
                for comic in comic_meta_data:
                    if comic['id'] != "":
                        for comic_attribute_keys, comic_attribute in comic.items():
                            # now stepping through title, description, thumbnail, etc.
                            if comic_attribute_keys == 'id':
                                idNum = int(comic_attribute)
                                # idNum = idNum.encode('utf-8')
                            
                            elif comic_attribute_keys == 'title':
                                title = comic_attribute
                                title = title.encode('utf-8')
                                #print('Title: ' + title)

			    elif comic_attribute_keys == 'issueNumber':
			        issue = int(comic_attribute)

			    elif comic_attribute_keys == 'variantDescription':
			        desc = comic_attribute

                            elif comic_attribute_keys == 'description':
                                if (comic_attribute != None) and (comic_attribute != ""):
                                    """
                                    Error arose when using str(description) and
                                    transferring output to text file: You must not
                                    use str(...) to strip away unicode symbols
                                    that often appear in Marvel descriptions!
                                    """
				    desc = comic_attribute
                                    #desc = desc.encode('utf-8')
                                    #print('Description: ' + desc)
			    
                            elif comic_attribute_keys == 'upc':
                                #print("Start Year: " + str(comic_attribute))
                                upc = str(comic_attribute)

                            elif comic_attribute_keys == 'pageCount':
                                #print("End Year: " + str(comic_attribute))
                                pg_ct = int(comic_attribute)

			    elif comic_attribute_keys == 'prices':
			        d = comic_attribute[0]
				comic_price = float(d.get('price'))
			        #print(comic_price)	        
                            
			    elif comic_attribute_keys == 'thumbnail':
                                path = str(comic_attribute['path'])
                                temp = path.split('/')
                                for v in temp :
                                    if v == 'image_not_available':
                                            path = None
                                if path != None:
                                   path =  str(path) + '.' + str(comic_attribute['extension'])
                                #  print (path)
                            
                            #if comic_attribute_keys == 'id':
                            #    idNum = int(comic_attribute)

                            elif comic_attribute_keys == 'creators':
                                # print("Comics in comic: " + str(comic_attribute['available']))
                                numCreators = int(comic_attribute['available'])
                                #creator_ids = [idNum]
                                #for creator_uri in comic_attribute['items']:
                                #    resource_path = creator_uri['resourceURI'].split('/')
                                #    creator_ids.append(int(resource_path[-1]))
                                # fcreators.write(str(creator_ids) + '\n')

                            elif comic_attribute_keys == 'characters':
                                # print("Characters in comic: " + str(comic_attribute['available']))
                                numChars = int(comic_attribute['available'])
                                #character_ids = [comic['id']]
                                #for character in comic_attribute['items']:
                                #    resource_path = character['resourceURI'].split('/')
                                #    character_ids.append(int(resource_path[-1]))
                                #fcharacters.write(str(character_ids) + '\n')

                            elif comic_attribute_keys == 'events':
                                numEvents = int(comic_attribute['available'])
                                #event_ids = [idNum]
                                #for event in comic_attribute['items']:
                                #    resource_path = event['resourceURI'].split('/')
                                #    event_ids.append(int(resource_path[-1]))
                                # fevents.write(str(event_ids) + '\n')
               
	                newEntry = Comic(idNum, title, issue, desc, upc, pg_ct, comic_price, path, numCreators, numChars, numEvents)
		        db.session.merge(newEntry)
			db.session.commit()
                	index += 1
                	print("processed comic " + str(index))
Exemplo n.º 24
0
 def get(self):
     q = Comic.all()
     q.order("name")
     self.render("list_all.js", { 'comics': q})
Exemplo n.º 25
0
def loadComicsCom():
    comicscom = [
    {"name":"9 Chickweed Lane","meta":"9_chickweed_lane"},
    {"name":"Agnes","meta":"agnes"},
    {"name":"Alley Oop","meta":"alley_oop"},
    {"name":"Andy Capp","meta":"andy_capp"},
    {"name":"Arlo & Janis","meta":"arlo&janis"},
    {"name":"B.C.","meta":"bc"},
    {"name":"Ballard Street","meta":"ballard_street"},
    {"name":"Ben","meta":"ben"},
    {"name":"Betty","meta":"betty"},
    {"name":"Big Nate","meta":"big_nate"},
    {"name":"The Born Loser","meta":"the_born_loser"},
    {"name":"Brevity","meta":"brevity"},
    {"name":"The Buckets","meta":"the_buckets"},
    {"name":"Candorville","meta":"candorville"},
    {"name":"Cheap Thrills","meta":"cheap_thrills"},
    {"name":"Committed","meta":"committed"},
    {"name":"Cow & Boy","meta":"cow&boy"},
    {"name":"Dilbert","meta":"dilbert"},
    {"name":"The Dinette Set","meta":"the_dinette_set"},
    {"name":"Dog eat Doug","meta":"dog_eat_doug"},
    {"name":"Drabble","meta":"drabble"},
    {"name":"Family Tree","meta":"family_tree"},
    {"name":"Farcus","meta":"farcus"},
    {"name":"Fat Cats Classics","meta":"fat_cats_classics"},
    {"name":"Flight Deck","meta":"flight_deck"},
    {"name":"Flo & Friends","meta":"flo&friends"},
    {"name":"F Minus","meta":"f_minus"},
    {"name":"Frank & Ernest","meta":"frank&ernest"},
    {"name":"Frazz","meta":"frazz"},
    {"name":"Free Range","meta":"free_range"},
    {"name":"Geech Classics","meta":"geech_classics"},
    {"name":"Get Fuzzy","meta":"get_fuzzy"},
    {"name":"Girls & Sports","meta":"girls&sports"},
    {"name":"Graffiti","meta":"graffiti"},
    {"name":"Grand Avenue","meta":"grand_avenue"},
    {"name":"The Grizzwells","meta":"the_grizzwells"},
    {"name":"Heathcliff","meta":"heathcliff"},
    {"name":"Herb and Jamaal","meta":"herb_and_jamaal"},
    {"name":"Herman","meta":"herman"},
    {"name":"The Humble Stumble","meta":"the_humble_stumble"},
    {"name":"Jump Start","meta":"jump_start"},
    {"name":"Kit 'N' Carlyle","meta":"kit_n_carlyle"},
    {"name":"The Knight Life","meta":"the_knight_life"},
    {"name":"Liberty Meadows","meta":"liberty_meadows"},
    {"name":"Li'l Abner Classics","meta":"lil_abner_classics"},
    {"name":"Lola","meta":"lola"},
    {"name":"Luann","meta":"luann"},
    {"name":"Marmaduke","meta":"marmaduke"},
    {"name":"Meg! Classics","meta":"meg_classics"},
    {"name":"The Meaning of Lila","meta":"the_meaning_of_lila"},
    {"name":"Minimum Security","meta":"minimum_security"},
    {"name":"Moderately Confused","meta":"moderately_confused"},
    {"name":"Momma","meta":"momma"},
    {"name":"Monty","meta":"monty"},
    {"name":"Motley Classics","meta":"motley_classics"},
    {"name":"Nancy","meta":"nancy"},
    {"name":"Natural Selection","meta":"natural_selection"},
    {"name":"Off The Mark","meta":"off_the_mark"},
    {"name":"On a Claire Day","meta":"on_a_claire_day"},
    {"name":"One Big Happy Classics","meta":"one_big_happy_classics"},
    {"name":"The Other Coast","meta":"the_other_coast"},
    {"name":"Over the Hedge","meta":"over_the_hedge"},
    {"name":"PC and Pixel","meta":"pc_and_pixel"},
    {"name":"Pearls Before Swine","meta":"pearls_before_swine"},
    {"name":"Pickles","meta":"pickles"},
    {"name":"Raising Duncan Classics","meta":"raising_duncan_classics"},
    {"name":"Reality Check","meta":"reality_check"},
    {"name":"Ripley's Believe It or Not!","meta":"ripleys_believe_it_or_not"},
    {"name":"Rose Is Rose","meta":"rose_is_rose"},
    {"name":"Rubes","meta":"rubes"},
    {"name":"Rudy Park","meta":"rudy_park"},
    {"name":"Shirley and Son Classics","meta":"shirley_and_son_classics"},
    {"name":"Soup To Nutz","meta":"soup_to_nutz"},
    {"name":"Speed Bump","meta":"speed_bump"},
    {"name":"Spot The Frog","meta":"spot_the_frog"},
    {"name":"Strange Brew","meta":"strange_brew"},
    {"name":"The Sunshine Club","meta":"the_sunshine_club"},
    {"name":"Tarzan Classics","meta":"tarzan_classics"},
    {"name":"That's Life","meta":"thats_life"},
    {"name":"Watch Your Head","meta":"watch_your_head"},
    {"name":"Wizard of Id","meta":"wizard_of_id"},
    {"name":"Working Daze","meta":"working_daze"},
    {"name":"Working It Out","meta":"working_it_out"},
    {"name":"Zack Hill","meta":"zack_hill"},
    {"name":"Ferd'nand","meta":"ferdnand"},
    {"name":"Rip Haywire","meta":"rip_haywire"},
    {"name":"The Barn","meta":"the_barn"},
    {"name":"Home and Away","meta":"home_and_away"},
    {"name":"Little Dog Lost","meta":"little_dog_lost"},
    {"name":"Daddy's Home","meta":"daddys_home"},
    {"name":"Scary Gary","meta":"scary_gary"},
    {"name":"Nest Heads","meta":"nest_heads"},
    {"name":"Unstrange Phenomena","meta":"unstrange_phenomena"},
    {"name":"Prickly City","meta":"prickly_city"},
    {"name":"Fort Knox","meta":"fort_knox"},
    {"name":"Cafe Con Leche","meta":"cafe_con_leche"},
    {"name":"Animal Crackers","meta":"animal_crackers"},
    {"name":"Bliss","meta":"bliss"},
    {"name":"Bottom Liners","meta":"bottom_liners"},
    {"name":"Bound and Gagged","meta":"bound_and_gagged"},
    {"name":"Brewster Rockit","meta":"brewster_rockit"},
    {"name":"Broom-Hilda","meta":"broom-hilda"},
    {"name":"Dick Tracy","meta":"dick_tracy"},
    {"name":"Gasoline Alley","meta":"gasoline_alley"},
    {"name":"Gil Thorp","meta":"gil_thorp"},
    {"name":"Loose Parts","meta":"loose_parts"},
    {"name":"Love Is...","meta":"love_is"},
    {"name":"The Middletons","meta":"the_middeltons"},
    {"name":"Pluggers","meta":"pluggers"},
    {"name":"Sylvia","meta":"sylvia"},
    {"name":"9 to 5","meta":"9_to_5"},
    {"name":"Chuckle Bros","meta":"chuckle_bros"},
    {"name":"Barney & Clyde","meta":"barney&clyde"},
    {"name":"Today's Dogg","meta":"todays_dogg"},
    {"name":"Freshly Squeezed","meta":"freshly_squeezed"},
    {"name":"Frazz Holiday","meta":"frazz_holiday"},
    {"name":"Dude and Dude","meta":"dude_and_dude"},
    {"name":"Reply All","meta":"reply_all"}
    ]

    for y in comicscom:
        c = Comic(name = y['name'], author = "", ctype = COMIC_TYPE, meta = y['meta'], num_entries = 0)
        c.put()
Exemplo n.º 26
0
def loadPhd():
    c = Comic(name = "Piled Higher & Deeper", author = "Jorge Cham", ctype = PHD_TYPE, num_entries = 0)
    c.put()
Exemplo n.º 27
0
from storage import ComicManager
from models import Comic

cm_lite = ComicManager('sqlite:///foxtrot.db')
cm_mysql = ComicManager(
    'mysql://*****:*****@gregoria.mysql.pythonanywhere-services.com/gregoria$foxtrot?charset=utf8'
)

with cm_lite.session_scope() as s_lite:
    comics = s_lite.query(Comic)
    with cm_mysql.session_scope() as s_my:
        for comic in comics:
            new_comic = Comic(date=comic.date, transcript=comic.transcript)
            s_my.add(new_comic)
Exemplo n.º 28
0
def loadXKCD():
    c = Comic(name = "XKCD", author = "Randall Munroe", ctype = XKCD_TYPE, num_entries = 0)
    c.put()
Exemplo n.º 29
0
 def post(self):
     comic = Comic(name=self.request.get('inputName'),
                   description=self.request.get('inputDescription'),
                   cover=self.request.get('inputURL'))
     comic.put()
     return webapp2.redirect('/')
Exemplo n.º 30
0
 def get_comics(self, publisher_id):
     rows = self.database.get_comics(publisher_id)
     result = []
     for row in rows:
         result.append(Comic(row))
     return result
Exemplo n.º 31
0
def get_info(comic_num):
    URL = "https://www.explainxkcd.com/wiki/index.php/%s" % str(comic_num)
    soup = make_soup(URL)
    if soup == None:
        return "Error: comic %d not found" % comic_num

    result = Comic(comic_num)

    # get title
    result.og_title = get_title(comic_num)
    result.title = clean_text(result.og_title.split())

    # get transcript
    try:
        transcript = soup.find("span", {"id": "Transcript"})
        result.transcript = []
        cur = transcript.parent
        while cur:
            if cur.name == 'dl':
                for dd in cur:
                    result.transcript.append(
                        str(dd).strip('<dd>').strip('</dd>'))
            elif cur.name == 'span':
                break
            cur = cur.nextSibling
        result.transcript = clean_text((" ".join(result.transcript)).split())
    except:
        result.transcript = []

    # get title text
    result.og_ttext = get_ttext(comic_num)
    result.title_text = clean_text(result.og_ttext.split())

    # get explanation
    try:
        explanation = soup.find("span", {"id": "Explanation"})
        result.explanation = []
        cur = explanation.parent
        while cur:
            if cur.name == 'p':
                result.explanation.append(cur.text)
            elif cur.name == 'span':
                break
            cur = cur.nextSibling
        result.explanation = clean_text((" ".join(result.explanation)).split())
    except:
        result.explanation = []

    # get image URL
    result.img_url = get_img_url(comic_num)

    return result
Exemplo n.º 32
0
def get_random_comic():
    return Comic.select().where(Comic.posted == False).order_by(fn.Random()).limit(1)
Exemplo n.º 33
0
def loadYahoo():
    yahoo = [{
        "meta": "two-cows-chicken",
        "name": u"2 Cows and a Chicken"
    }, {
        "meta": "9-chickweed-lane",
        "name": u"9 Chickweed Lane"
    }, {
        "meta": "adam-at-home",
        "name": u"Adam @ Home"
    }, {
        "meta": "alley-oop",
        "name": u"Alley Oop"
    }, {
        "meta": "andy-capp",
        "name": u"Andy Capp"
    }, {
        "meta": "argyle-sweater",
        "name": u"The Argyle Sweater"
    }, {
        "meta": "arlo-and-janis",
        "name": u"Arlo and Janis"
    }, {
        "meta": "bc",
        "name": u"B.C."
    }, {
        "meta": "baldo",
        "name": u"Baldo"
    }, {
        "meta": "ballard-street",
        "name": u"Ballard Street"
    }, {
        "meta": "basic-instructions",
        "name": u"Basic Instructions"
    }, {
        "meta": "betty",
        "name": u"Betty"
    }, {
        "meta": "big-nate",
        "name": u"Big Nate"
    }, {
        "meta": "big-picture",
        "name": u"The Big Picture"
    }, {
        "meta": "big-top",
        "name": u"Big Top"
    }, {
        "meta": "bob-the-squirrel",
        "name": u"Bob the Squirrel"
    }, {
        "meta": "boondocks",
        "name": u"Boondocks"
    }, {
        "meta": "born-loser",
        "name": u"Born Loser"
    }, {
        "meta": "brevity",
        "name": u"Brevity"
    }, {
        "meta": "brewster-rockit",
        "name": u"Brewster Rockit"
    }, {
        "meta": "the-buckets",
        "name": u"The Buckets"
    }, {
        "meta": "classic-bloom-county",
        "name": u"Classic Bloom County"
    }, {
        "meta": "candorville",
        "name": u"Candorville"
    }, {
        "meta": "cathy",
        "name": u"Cathy"
    }, {
        "meta": "cleats",
        "name": u"Cleats"
    }, {
        "meta": "close-to-home",
        "name": u"Close to Home"
    }, {
        "meta": "committed",
        "name": u"Committed"
    }, {
        "meta": "cornered",
        "name": u"Cornered"
    }, {
        "meta": "cow-and-boy",
        "name": u"Cow and Boy"
    }, {
        "meta": "cul-de-sac",
        "name": u"Cul-de-Sac"
    }, {
        "meta": "dark-side-horse",
        "name": u"Dark Side of the Horse"
    }, {
        "meta": "dilbert",
        "name": u"Dilbert"
    }, {
        "meta": "the-dinette-set",
        "name": u"The Dinette Set"
    }, {
        "meta": "doonesbury",
        "name": u"Doonesbury"
    }, {
        "meta": "doozies",
        "name": u"The Doozies"
    }, {
        "meta": "drabble",
        "name": u"Drabble"
    }, {
        "meta": "dude-and-dude",
        "name": u"Dude and Dude"
    }, {
        "meta": "the-duplex",
        "name": u"The Duplex"
    }, {
        "meta": "elderberries",
        "name": u"The Elderberries"
    }, {
        "meta": "family-tree",
        "name": u"Family Tree"
    }, {
        "meta": "farcus",
        "name": u"Farcus"
    }, {
        "meta": "fat-cats-classics",
        "name": u"Fat Cats Classics"
    }, {
        "meta": "ferdnand",
        "name": u"Ferd'nand"
    }, {
        "meta": "the-flying-mccoys",
        "name": u"The Flying McCoys"
    }, {
        "meta": "f-minus",
        "name": u"F Minus"
    }, {
        "meta": "for-better-or-for-worse",
        "name": u"For Better or For Worse"
    }, {
        "meta": "foxtrot",
        "name": u"FoxTrot"
    }, {
        "meta": "foxtrot-classics",
        "name": u"FoxTrot Classics"
    }, {
        "meta": "frank-and-ernest",
        "name": u"Frank and Ernest"
    }, {
        "meta": "frazz",
        "name": u"Frazz"
    }, {
        "meta": "fred-basset",
        "name": u"Fred Basset"
    }, {
        "meta": "freshly-squeezed",
        "name": u"Freshly Squeezed"
    }, {
        "meta": "fusco-brothers",
        "name": u"The Fusco Brothers"
    }, {
        "meta": "garfield",
        "name": u"Garfield"
    }, {
        "meta": "geech-classics",
        "name": u"Geech Classics"
    }, {
        "meta": "get-fuzzy",
        "name": u"Get Fuzzy"
    }, {
        "meta": "graffiti",
        "name": u"Graffiti"
    }, {
        "meta": "grand-avenue",
        "name": u"Grand Avenue"
    }, {
        "meta": "the-grizzwells",
        "name": u"The Grizzwells"
    }, {
        "meta": "heart-of-the-city",
        "name": u"Heart of the City"
    }, {
        "meta": "heathcliff",
        "name": u"Heathcliff"
    }, {
        "meta": "housebroken",
        "name": u"Housebroken"
    }, {
        "meta": "herman",
        "name": u"Herman"
    }, {
        "meta": "ink-pen",
        "name": u"Ink Pen"
    }, {
        "meta": "in-the-bleachers",
        "name": u"In the Bleachers"
    }, {
        "meta": "in-the-sticks",
        "name": u"In The Sticks"
    }, {
        "meta": "janes-world",
        "name": u"Jane's World"
    }, {
        "meta": "jumpstart",
        "name": u"Jumpstart"
    }, {
        "meta": "kit-n-carlyle",
        "name": u"Kit 'n' Carlyle"
    }, {
        "meta": "knight-life",
        "name": u"The Knight Life"
    }, {
        "meta": "la-cucaracha",
        "name": u"La Cucaracha"
    }, {
        "meta": "lio",
        "name": u"Lio"
    }, {
        "meta": "lola",
        "name": u"Lola"
    }, {
        "meta": "luann",
        "name": u"Luann"
    }, {
        "meta": "marmaduke",
        "name": u"Marmaduke"
    }, {
        "meta": "meg-classics",
        "name": u"Meg! Classics"
    }, {
        "meta": "minimum-security",
        "name": u"Minimum Security"
    }, {
        "meta": "moderately-confused",
        "name": u"Moderately Confused"
    }, {
        "meta": "momma",
        "name": u"Momma"
    }, {
        "meta": "monty",
        "name": u"Monty"
    }, {
        "meta": "motley-classics",
        "name": u"Motley Classics"
    }, {
        "meta": "nancy",
        "name": u"Nancy"
    }, {
        "meta": "new-adventures-queen-victoria",
        "name": u"New Adventures of Queen Victoria"
    }, {
        "meta": "non-sequitur",
        "name": u"Non Sequitur"
    }, {
        "meta": "off-the-mark",
        "name": u"Off the Mark"
    }, {
        "meta": "one-big-happy",
        "name": u"One Big Happy"
    }, {
        "meta": "overboard",
        "name": u"Overboard"
    }, {
        "meta": "over-the-hedge",
        "name": u"Over the Hedge"
    }, {
        "meta": "pc-and-pixel",
        "name": u"PC and Pixel"
    }, {
        "meta": "peanuts",
        "name": u"Peanuts"
    }, {
        "meta": "pearls-before-swine",
        "name": u"Pearls Before Swine"
    }, {
        "meta": "pooch-cafe",
        "name": u"Pooch Café"
    }, {
        "meta": "preteena",
        "name": u"PreTeena"
    }, {
        "meta": "prickly-city",
        "name": u"Prickly City"
    }, {
        "meta": "reality-check",
        "name": u"Reality Check"
    }, {
        "meta": "real-life-adventures",
        "name": u"Real Life Adventures"
    }, {
        "meta": "red-rover",
        "name": u"Red & Rover"
    }, {
        "meta": "rip-haywire",
        "name": u"Rip Haywire"
    }, {
        "meta": "ripleys-believe-it-or-not",
        "name": u"Ripley's Believe it or Not"
    }, {
        "meta": "rose-is-rose",
        "name": u"Rose is Rose"
    }, {
        "meta": "rubes",
        "name": u"Rubes"
    }, {
        "meta": "rudy-park",
        "name": u"Rudy Park"
    }, {
        "meta": "shirley-and-son-classics",
        "name": u"Shirley and Son Classics"
    }, {
        "meta": "shoe",
        "name": u"Shoe"
    }, {
        "meta": "skin-horse",
        "name": u"Skin Horse"
    }, {
        "meta": "slowpoke",
        "name": u"Slowpoke"
    }, {
        "meta": "soup-to-nutz",
        "name": u"Soup to Nutz"
    }, {
        "meta": "speed-bump",
        "name": u"Speed Bump"
    }, {
        "meta": "stone-soup",
        "name": u"Stone Soup"
    }, {
        "meta": "strange-brew",
        "name": u"Strange Brew"
    }, {
        "meta": "the-sunshine-club",
        "name": u"The Sunshine Club"
    }, {
        "meta": "tank-mcnamara",
        "name": u"Tank McNamara"
    }, {
        "meta": "thatababy",
        "name": u"Thatababy"
    }, {
        "meta": "thats-life",
        "name": u"That'sLife"
    }, {
        "meta": "tiny-sepuku",
        "name": u"Tiny Sepuku"
    }, {
        "meta": "toby",
        "name": u"Toby"
    }, {
        "meta": "tom-dancing-bug",
        "name": u"Tom the Dancing Bug"
    }, {
        "meta": "too-much-coffee-man",
        "name": u"Too Much Coffee Man"
    }, {
        "meta": "unstrange-phenomena",
        "name": u"Unstrange Phenomena"
    }, {
        "meta": "wizard-of-id",
        "name": u"Wizard of Id"
    }, {
        "meta": "working-daze",
        "name": u"Working Daze"
    }, {
        "meta": "wt-duck",
        "name": u"W.T. Duck"
    }, {
        "meta": "ziggy",
        "name": u"Ziggy"
    }]

    for y in yahoo:
        c = Comic(name=y['name'],
                  author="",
                  ctype=YAHOO_TYPE,
                  meta=y['meta'],
                  num_entries=0)
        c.put()
Exemplo n.º 34
0
try:
    event, values = window.read(timeout=100)
    if event in [sg.WIN_CLOSED, 'Exit']:
        break
    if event == '-SELECTALL-':
        if not values['-SELECTALL-']:
            window['-CHAPTERLIST-'].set_value([])
        elif comic is not None:
            chapters_names = [chapter.title for chapter in comic.chapters]
            window['-CHAPTERLIST-'].set_value(chapters_names)
    if event == 'Fetch':
        url = values['-COMICURL-']
        if len(url) <= 0 or 'http' not in url:
            sg.Popup('Please type in URL')
            continue
        comic = Comic(url)
        comic.set_title()
        window['-COMICNAME-'].update(comic.title)
        comic.set_chapters()
        window['-CHAPTERLIST-'].update(
            [chapter.title for chapter in comic.chapters])
    if event == 'Download':
        if comic is None:
            sg.Popup('Please type in url and fetch')
        if len(values['-SAVETO-']) <= 0:
            sg.Popup('Please choose folder to save')
        popup_text = 'Do you wish to start downloading {}?\n'.format(
            comic.title)
        for chapter_name in values['-CHAPTERLIST-']:
            popup_text = popup_text + '- {}\n'.format(chapter_name)
        ok = sg.PopupYesNo(popup_text)
Exemplo n.º 35
0
 def mark_comic(self, comic):
     Comic.update(posted=True).where(Comic.id == comic.id).execute()
Exemplo n.º 36
0
def loadYahoo():
    yahoo = [
    { "meta": "two-cows-chicken", "name": u"2 Cows and a Chicken"},
    { "meta": "9-chickweed-lane", "name": u"9 Chickweed Lane"},
    { "meta": "adam-at-home", "name": u"Adam @ Home"},
    { "meta": "alley-oop", "name": u"Alley Oop"},
    { "meta": "andy-capp", "name": u"Andy Capp"},
    { "meta": "argyle-sweater", "name": u"The Argyle Sweater"},
    { "meta": "arlo-and-janis", "name": u"Arlo and Janis"},
    { "meta": "bc", "name": u"B.C."},
    { "meta": "baldo", "name": u"Baldo"},
    { "meta": "ballard-street", "name": u"Ballard Street"},
    { "meta": "basic-instructions", "name": u"Basic Instructions"},
    { "meta": "betty", "name": u"Betty"},
    { "meta": "big-nate", "name": u"Big Nate"},
    { "meta": "big-picture", "name": u"The Big Picture"},
    { "meta": "big-top", "name": u"Big Top"},
    { "meta": "bob-the-squirrel", "name": u"Bob the Squirrel"},
    { "meta": "boondocks", "name": u"Boondocks"},
    { "meta": "born-loser", "name": u"Born Loser"},
    { "meta": "brevity", "name": u"Brevity"},
    { "meta": "brewster-rockit", "name": u"Brewster Rockit"},
    { "meta": "the-buckets", "name": u"The Buckets"},
    { "meta": "classic-bloom-county", "name": u"Classic Bloom County"},
    { "meta": "candorville", "name": u"Candorville"},
    { "meta": "cathy", "name": u"Cathy"},
    { "meta": "cleats", "name": u"Cleats"},
    { "meta": "close-to-home", "name": u"Close to Home"},
    { "meta": "committed", "name": u"Committed"},
    { "meta": "cornered", "name": u"Cornered"},
    { "meta": "cow-and-boy", "name": u"Cow and Boy"},
    { "meta": "cul-de-sac", "name": u"Cul-de-Sac"},
    { "meta": "dark-side-horse", "name": u"Dark Side of the Horse"},
    { "meta": "dilbert", "name": u"Dilbert"},
    { "meta": "the-dinette-set", "name": u"The Dinette Set"},
    { "meta": "doonesbury", "name": u"Doonesbury"},
    { "meta": "doozies", "name": u"The Doozies"},
    { "meta": "drabble", "name": u"Drabble"},
    { "meta": "dude-and-dude", "name": u"Dude and Dude"},
    { "meta": "the-duplex", "name": u"The Duplex"},
    { "meta": "elderberries", "name": u"The Elderberries"},
    { "meta": "family-tree", "name": u"Family Tree"},
    { "meta": "farcus", "name": u"Farcus"},
    { "meta": "fat-cats-classics", "name": u"Fat Cats Classics"},
    { "meta": "ferdnand", "name": u"Ferd'nand"},
    { "meta": "the-flying-mccoys", "name": u"The Flying McCoys"},
    { "meta": "f-minus", "name": u"F Minus"},
    { "meta": "for-better-or-for-worse", "name": u"For Better or For Worse"},
    { "meta": "foxtrot", "name": u"FoxTrot"},
    { "meta": "foxtrot-classics", "name": u"FoxTrot Classics"},
    { "meta": "frank-and-ernest", "name": u"Frank and Ernest"},
    { "meta": "frazz", "name": u"Frazz"},
    { "meta": "fred-basset", "name": u"Fred Basset"},
    { "meta": "freshly-squeezed", "name": u"Freshly Squeezed"},
    { "meta": "fusco-brothers", "name": u"The Fusco Brothers"},
    { "meta": "garfield", "name": u"Garfield"},
    { "meta": "geech-classics", "name": u"Geech Classics"},
    { "meta": "get-fuzzy", "name": u"Get Fuzzy"},
    { "meta": "graffiti", "name": u"Graffiti"},
    { "meta": "grand-avenue", "name": u"Grand Avenue"},
    { "meta": "the-grizzwells", "name": u"The Grizzwells"},
    { "meta": "heart-of-the-city", "name": u"Heart of the City"},
    { "meta": "heathcliff", "name": u"Heathcliff"},
    { "meta": "housebroken", "name": u"Housebroken"},
    { "meta": "herman", "name": u"Herman"},
    { "meta": "ink-pen", "name": u"Ink Pen"},
    { "meta": "in-the-bleachers", "name": u"In the Bleachers"},
    { "meta": "in-the-sticks", "name": u"In The Sticks"},
    { "meta": "janes-world", "name": u"Jane's World"},
    { "meta": "jumpstart", "name": u"Jumpstart"},
    { "meta": "kit-n-carlyle", "name": u"Kit 'n' Carlyle"},
    { "meta": "knight-life", "name": u"The Knight Life"},
    { "meta": "la-cucaracha", "name": u"La Cucaracha"},
    { "meta": "lio", "name": u"Lio"},
    { "meta": "lola", "name": u"Lola"},
    { "meta": "luann", "name": u"Luann"},
    { "meta": "marmaduke", "name": u"Marmaduke"},
    { "meta": "meg-classics", "name": u"Meg! Classics"},
    { "meta": "minimum-security", "name": u"Minimum Security"},
    { "meta": "moderately-confused", "name": u"Moderately Confused"},
    { "meta": "momma", "name": u"Momma"},
    { "meta": "monty", "name": u"Monty"},
    { "meta": "motley-classics", "name": u"Motley Classics"},
    { "meta": "nancy", "name": u"Nancy"},
    { "meta": "new-adventures-queen-victoria", "name": u"New Adventures of Queen Victoria"},
    { "meta": "non-sequitur", "name": u"Non Sequitur"},
    { "meta": "off-the-mark", "name": u"Off the Mark"},
    { "meta": "one-big-happy", "name": u"One Big Happy"},
    { "meta": "overboard", "name": u"Overboard"},
    { "meta": "over-the-hedge", "name": u"Over the Hedge"},
    { "meta": "pc-and-pixel", "name": u"PC and Pixel"},
    { "meta": "peanuts", "name": u"Peanuts"},
    { "meta": "pearls-before-swine", "name": u"Pearls Before Swine"},
    { "meta": "pooch-cafe", "name": u"Pooch Café"},
    { "meta": "preteena", "name": u"PreTeena"},
    { "meta": "prickly-city", "name": u"Prickly City"},
    { "meta": "reality-check", "name": u"Reality Check"},
    { "meta": "real-life-adventures", "name": u"Real Life Adventures"},
    { "meta": "red-rover", "name": u"Red & Rover"},
    { "meta": "rip-haywire", "name": u"Rip Haywire"},
    { "meta": "ripleys-believe-it-or-not", "name": u"Ripley's Believe it or Not"},
    { "meta": "rose-is-rose", "name": u"Rose is Rose"},
    { "meta": "rubes", "name": u"Rubes"},
    { "meta": "rudy-park", "name": u"Rudy Park"},
    { "meta": "shirley-and-son-classics", "name": u"Shirley and Son Classics"},
    { "meta": "shoe", "name": u"Shoe"},
    { "meta": "skin-horse", "name": u"Skin Horse"},
    { "meta": "slowpoke", "name": u"Slowpoke"},
    { "meta": "soup-to-nutz", "name": u"Soup to Nutz"},
    { "meta": "speed-bump", "name": u"Speed Bump"},
    { "meta": "stone-soup", "name": u"Stone Soup"},
    { "meta": "strange-brew", "name": u"Strange Brew"},
    { "meta": "the-sunshine-club", "name": u"The Sunshine Club"},
    { "meta": "tank-mcnamara", "name": u"Tank McNamara"},
    { "meta": "thatababy", "name": u"Thatababy"},
    { "meta": "thats-life", "name": u"That'sLife"},
    { "meta": "tiny-sepuku", "name": u"Tiny Sepuku"},
    { "meta": "toby", "name": u"Toby"},
    { "meta": "tom-dancing-bug", "name": u"Tom the Dancing Bug"},
    { "meta": "too-much-coffee-man", "name": u"Too Much Coffee Man"},
    { "meta": "unstrange-phenomena", "name": u"Unstrange Phenomena"},
    { "meta": "wizard-of-id", "name": u"Wizard of Id"},
    { "meta": "working-daze", "name": u"Working Daze"},
    { "meta": "wt-duck", "name": u"W.T. Duck"},
    { "meta": "ziggy", "name": u"Ziggy"}
    ];

    for y in yahoo:
        c = Comic(name = y['name'], author = "", ctype = YAHOO_TYPE, meta = y['meta'], num_entries = 0)
        c.put()
Exemplo n.º 37
0
def loadArcamax():
    arcamax = [{
        "meta": "ninechickweedlane",
        "name": "9 Chickweed Lane"
    }, {
        "meta": "agnes",
        "name": "Agnes"
    }, {
        "meta": "andycapp",
        "name": "Andy Capp"
    }, {
        "meta": "arcticcircle",
        "name": "Arctic Circle"
    }, {
        "meta": "bc",
        "name": "BC"
    }, {
        "meta": "babyblues",
        "name": "Baby Blues"
    }, {
        "meta": "beetlebailey",
        "name": "Beetle Bailey"
    }, {
        "meta": "blondie",
        "name": "Blondie"
    }, {
        "meta": "boondocks",
        "name": "Boondocks"
    }, {
        "meta": "brilliantmindofedisonlee",
        "name": "Brilliant Mind of Edison Lee"
    }, {
        "meta": "cathy",
        "name": "Cathy"
    }, {
        "meta": "daddyshome",
        "name": "Daddy's Home"
    }, {
        "meta": "dilbert",
        "name": "Dilbert"
    }, {
        "meta": "thedinetteset",
        "name": "Dinette Set"
    }, {
        "meta": "dogeatdoug",
        "name": "Dog Eat Doug"
    }, {
        "meta": "doonesbury",
        "name": "Doonesbury"
    }, {
        "meta": "dustin",
        "name": "Dustin"
    }, {
        "meta": "familycircus",
        "name": "Family Circus"
    }, {
        "meta": "garfield",
        "name": "Garfield"
    }, {
        "meta": "getfuzzy",
        "name": "Get Fuzzy"
    }, {
        "meta": "girlsandsports",
        "name": "Girls &amp; Sports"
    }, {
        "meta": "hagarthehorrible",
        "name": "Hagar the Horrible"
    }, {
        "meta": "heathcliff",
        "name": "Heathcliff"
    }, {
        "meta": "hiandlois",
        "name": "Hi and Lois"
    }, {
        "meta": "humorcartoon",
        "name": "Jerry King Cartoons"
    }, {
        "meta": "luann",
        "name": "Luann"
    }, {
        "meta": "mallardfillmore",
        "name": "Mallard Fillmore"
    }, {
        "meta": "momma",
        "name": "Momma"
    }, {
        "meta": "mothergooseandgrimm",
        "name": "Mother Goose &amp; Grimm"
    }, {
        "meta": "mutts",
        "name": "Mutts"
    }, {
        "meta": "nonsequitur",
        "name": "Non Sequitur"
    }, {
        "meta": "pearlsbeforeswine",
        "name": "Pearls Before Swine"
    }, {
        "meta": "pickles",
        "name": "Pickles"
    }, {
        "meta": "redandrover",
        "name": "Red and Rover"
    }, {
        "meta": "rhymeswithorange",
        "name": "Rhymes with Orange"
    }, {
        "meta": "rubes",
        "name": "Rubes"
    }, {
        "meta": "rugrats",
        "name": "Rugrats"
    }, {
        "meta": "speedbump",
        "name": "Speed Bump"
    }, {
        "meta": "wizardofid",
        "name": "Wizard of Id"
    }, {
        "meta": "zits",
        "name": "Zits"
    }]
    for y in arcamax:
        c = Comic(name=y['name'],
                  author="",
                  ctype=ARCAMAX_TYPE,
                  meta=y['meta'],
                  num_entries=0)
        c.put()
Exemplo n.º 38
0
def loadPhd():
    c = Comic(name="Piled Higher & Deeper",
              author="Jorge Cham",
              ctype=PHD_TYPE,
              num_entries=0)
    c.put()
Exemplo n.º 39
0
 def get(self):
     q = Comic.all()
     q.order("name")
     self.render("list_all.js", {'comics': q})
Exemplo n.º 40
0
 def sample_comic(client):
     comic = Comic(title='Shade The Changing Girl', issues='12')
     db.session.add(comic)
     db.session.commit()
     return comic
Exemplo n.º 41
0
def loadComicsCom():
    comicscom = [{
        "name": "9 Chickweed Lane",
        "meta": "9_chickweed_lane"
    }, {
        "name": "Agnes",
        "meta": "agnes"
    }, {
        "name": "Alley Oop",
        "meta": "alley_oop"
    }, {
        "name": "Andy Capp",
        "meta": "andy_capp"
    }, {
        "name": "Arlo & Janis",
        "meta": "arlo&janis"
    }, {
        "name": "B.C.",
        "meta": "bc"
    }, {
        "name": "Ballard Street",
        "meta": "ballard_street"
    }, {
        "name": "Ben",
        "meta": "ben"
    }, {
        "name": "Betty",
        "meta": "betty"
    }, {
        "name": "Big Nate",
        "meta": "big_nate"
    }, {
        "name": "The Born Loser",
        "meta": "the_born_loser"
    }, {
        "name": "Brevity",
        "meta": "brevity"
    }, {
        "name": "The Buckets",
        "meta": "the_buckets"
    }, {
        "name": "Candorville",
        "meta": "candorville"
    }, {
        "name": "Cheap Thrills",
        "meta": "cheap_thrills"
    }, {
        "name": "Committed",
        "meta": "committed"
    }, {
        "name": "Cow & Boy",
        "meta": "cow&boy"
    }, {
        "name": "Dilbert",
        "meta": "dilbert"
    }, {
        "name": "The Dinette Set",
        "meta": "the_dinette_set"
    }, {
        "name": "Dog eat Doug",
        "meta": "dog_eat_doug"
    }, {
        "name": "Drabble",
        "meta": "drabble"
    }, {
        "name": "Family Tree",
        "meta": "family_tree"
    }, {
        "name": "Farcus",
        "meta": "farcus"
    }, {
        "name": "Fat Cats Classics",
        "meta": "fat_cats_classics"
    }, {
        "name": "Flight Deck",
        "meta": "flight_deck"
    }, {
        "name": "Flo & Friends",
        "meta": "flo&friends"
    }, {
        "name": "F Minus",
        "meta": "f_minus"
    }, {
        "name": "Frank & Ernest",
        "meta": "frank&ernest"
    }, {
        "name": "Frazz",
        "meta": "frazz"
    }, {
        "name": "Free Range",
        "meta": "free_range"
    }, {
        "name": "Geech Classics",
        "meta": "geech_classics"
    }, {
        "name": "Get Fuzzy",
        "meta": "get_fuzzy"
    }, {
        "name": "Girls & Sports",
        "meta": "girls&sports"
    }, {
        "name": "Graffiti",
        "meta": "graffiti"
    }, {
        "name": "Grand Avenue",
        "meta": "grand_avenue"
    }, {
        "name": "The Grizzwells",
        "meta": "the_grizzwells"
    }, {
        "name": "Heathcliff",
        "meta": "heathcliff"
    }, {
        "name": "Herb and Jamaal",
        "meta": "herb_and_jamaal"
    }, {
        "name": "Herman",
        "meta": "herman"
    }, {
        "name": "The Humble Stumble",
        "meta": "the_humble_stumble"
    }, {
        "name": "Jump Start",
        "meta": "jump_start"
    }, {
        "name": "Kit 'N' Carlyle",
        "meta": "kit_n_carlyle"
    }, {
        "name": "The Knight Life",
        "meta": "the_knight_life"
    }, {
        "name": "Liberty Meadows",
        "meta": "liberty_meadows"
    }, {
        "name": "Li'l Abner Classics",
        "meta": "lil_abner_classics"
    }, {
        "name": "Lola",
        "meta": "lola"
    }, {
        "name": "Luann",
        "meta": "luann"
    }, {
        "name": "Marmaduke",
        "meta": "marmaduke"
    }, {
        "name": "Meg! Classics",
        "meta": "meg_classics"
    }, {
        "name": "The Meaning of Lila",
        "meta": "the_meaning_of_lila"
    }, {
        "name": "Minimum Security",
        "meta": "minimum_security"
    }, {
        "name": "Moderately Confused",
        "meta": "moderately_confused"
    }, {
        "name": "Momma",
        "meta": "momma"
    }, {
        "name": "Monty",
        "meta": "monty"
    }, {
        "name": "Motley Classics",
        "meta": "motley_classics"
    }, {
        "name": "Nancy",
        "meta": "nancy"
    }, {
        "name": "Natural Selection",
        "meta": "natural_selection"
    }, {
        "name": "Off The Mark",
        "meta": "off_the_mark"
    }, {
        "name": "On a Claire Day",
        "meta": "on_a_claire_day"
    }, {
        "name": "One Big Happy Classics",
        "meta": "one_big_happy_classics"
    }, {
        "name": "The Other Coast",
        "meta": "the_other_coast"
    }, {
        "name": "Over the Hedge",
        "meta": "over_the_hedge"
    }, {
        "name": "PC and Pixel",
        "meta": "pc_and_pixel"
    }, {
        "name": "Pearls Before Swine",
        "meta": "pearls_before_swine"
    }, {
        "name": "Pickles",
        "meta": "pickles"
    }, {
        "name": "Raising Duncan Classics",
        "meta": "raising_duncan_classics"
    }, {
        "name": "Reality Check",
        "meta": "reality_check"
    }, {
        "name": "Ripley's Believe It or Not!",
        "meta": "ripleys_believe_it_or_not"
    }, {
        "name": "Rose Is Rose",
        "meta": "rose_is_rose"
    }, {
        "name": "Rubes",
        "meta": "rubes"
    }, {
        "name": "Rudy Park",
        "meta": "rudy_park"
    }, {
        "name": "Shirley and Son Classics",
        "meta": "shirley_and_son_classics"
    }, {
        "name": "Soup To Nutz",
        "meta": "soup_to_nutz"
    }, {
        "name": "Speed Bump",
        "meta": "speed_bump"
    }, {
        "name": "Spot The Frog",
        "meta": "spot_the_frog"
    }, {
        "name": "Strange Brew",
        "meta": "strange_brew"
    }, {
        "name": "The Sunshine Club",
        "meta": "the_sunshine_club"
    }, {
        "name": "Tarzan Classics",
        "meta": "tarzan_classics"
    }, {
        "name": "That's Life",
        "meta": "thats_life"
    }, {
        "name": "Watch Your Head",
        "meta": "watch_your_head"
    }, {
        "name": "Wizard of Id",
        "meta": "wizard_of_id"
    }, {
        "name": "Working Daze",
        "meta": "working_daze"
    }, {
        "name": "Working It Out",
        "meta": "working_it_out"
    }, {
        "name": "Zack Hill",
        "meta": "zack_hill"
    }, {
        "name": "Ferd'nand",
        "meta": "ferdnand"
    }, {
        "name": "Rip Haywire",
        "meta": "rip_haywire"
    }, {
        "name": "The Barn",
        "meta": "the_barn"
    }, {
        "name": "Home and Away",
        "meta": "home_and_away"
    }, {
        "name": "Little Dog Lost",
        "meta": "little_dog_lost"
    }, {
        "name": "Daddy's Home",
        "meta": "daddys_home"
    }, {
        "name": "Scary Gary",
        "meta": "scary_gary"
    }, {
        "name": "Nest Heads",
        "meta": "nest_heads"
    }, {
        "name": "Unstrange Phenomena",
        "meta": "unstrange_phenomena"
    }, {
        "name": "Prickly City",
        "meta": "prickly_city"
    }, {
        "name": "Fort Knox",
        "meta": "fort_knox"
    }, {
        "name": "Cafe Con Leche",
        "meta": "cafe_con_leche"
    }, {
        "name": "Animal Crackers",
        "meta": "animal_crackers"
    }, {
        "name": "Bliss",
        "meta": "bliss"
    }, {
        "name": "Bottom Liners",
        "meta": "bottom_liners"
    }, {
        "name": "Bound and Gagged",
        "meta": "bound_and_gagged"
    }, {
        "name": "Brewster Rockit",
        "meta": "brewster_rockit"
    }, {
        "name": "Broom-Hilda",
        "meta": "broom-hilda"
    }, {
        "name": "Dick Tracy",
        "meta": "dick_tracy"
    }, {
        "name": "Gasoline Alley",
        "meta": "gasoline_alley"
    }, {
        "name": "Gil Thorp",
        "meta": "gil_thorp"
    }, {
        "name": "Loose Parts",
        "meta": "loose_parts"
    }, {
        "name": "Love Is...",
        "meta": "love_is"
    }, {
        "name": "The Middletons",
        "meta": "the_middeltons"
    }, {
        "name": "Pluggers",
        "meta": "pluggers"
    }, {
        "name": "Sylvia",
        "meta": "sylvia"
    }, {
        "name": "9 to 5",
        "meta": "9_to_5"
    }, {
        "name": "Chuckle Bros",
        "meta": "chuckle_bros"
    }, {
        "name": "Barney & Clyde",
        "meta": "barney&clyde"
    }, {
        "name": "Today's Dogg",
        "meta": "todays_dogg"
    }, {
        "name": "Freshly Squeezed",
        "meta": "freshly_squeezed"
    }, {
        "name": "Frazz Holiday",
        "meta": "frazz_holiday"
    }, {
        "name": "Dude and Dude",
        "meta": "dude_and_dude"
    }, {
        "name": "Reply All",
        "meta": "reply_all"
    }]

    for y in comicscom:
        c = Comic(name=y['name'],
                  author="",
                  ctype=COMIC_TYPE,
                  meta=y['meta'],
                  num_entries=0)
        c.put()
Exemplo n.º 42
0
    def insert_data(self, data):
        """
        Will handle inserting data into the database
        """
        try:
            db_session = DBSession()
            # Check if comic is in database, if so update else create
            try:
                comic = db_session.query(Comic).filter(
                    Comic.comic_id == data.get('comic_id')).one()
            except NoResultFound:
                comic = Comic()

            comic.title = data.get('title')
            comic.alt = data.get('alt')
            comic.comic_id = data.get('comic_id')
            comic.source_file_location = data.get('source_file_location')
            comic.saved_file_location = data.get('saved_file_location')
            comic.posted_at = data.get('posted_at')
            comic.raw_json = data.get('raw_json')
            comic.time_collected = data.get('time_collected')
            comic.transcript = data.get('transcript')

            db_session.add(comic)
            db_session.commit()
            # self.track_stat('rows_added_to_db', rows_affected)

        except Exception:
            db_session.rollback()
            logger.exception("Error adding to db {data}".format(data=data))
Exemplo n.º 43
0
def loadXKCD():
    c = Comic(name="XKCD",
              author="Randall Munroe",
              ctype=XKCD_TYPE,
              num_entries=0)
    c.put()