def simple_category(): category = model.Category('category', 'category desc', 'category') category.meta = { 'id': 'category id', 'webtranslateit_ids': { 'content': 'category translate id' } } section = model.Section(category, 'section', 'section desc', 'section') section.meta = { 'id': 'section id', 'webtranslateit_ids': { 'content': 'section translate id' } } article = model.Article(section, 'article', 'body', 'article') article.meta = { 'id': 'article id', 'webtranslateit_ids': { 'body': 'body translate id', 'content': 'article translate id' } } category.sections.append(section) section.articles.append(article) return category
def fetch(self): categories = [] zendesk_categories = self.req.get_items(model.Category) for zendesk_category in zendesk_categories: category_filename = utils.slugify(zendesk_category['name']) category = model.Category(zendesk_category['name'], zendesk_category['description'], category_filename) print('Category %s created' % category.name) category.meta = zendesk_category zendesk_sections = self.req.get_items(model.Section, category) categories.append(category) for zendesk_section in zendesk_sections: section_filename = utils.slugify(zendesk_section['name']) section = model.Section(category, zendesk_section['name'], zendesk_section['description'], section_filename) print('Section %s created' % section.name) section.meta = zendesk_section zendesk_articles = self.req.get_items(model.Article, section) category.sections.append(section) for zendesk_article in zendesk_articles: logging.debug('Article Info:' + zendesk_article['title']) if zendesk_article['body']: body = h2t.handle(zendesk_article.get('body', '')) article_filename = utils.slugify( zendesk_article['title']) article = model.Article(section, zendesk_article['title'], body, article_filename) print('Article %s created' % article.name.encode('utf-8').strip()) article.meta = zendesk_article section.articles.append(article) return categories
def main(): ''' Main function of setup.py It fills the tables with products of CATEGORIES in settings.py Arguments: Pass {string}: password of foodstitute ''' # Parse arguments parser = argparse.ArgumentParser() parser.add_argument( "Pass", help="Password of the SQL DB foodstitute for the account" + USER ) # Get args args = parser.parse_args() # Define password Pass = args.Pass # Connect to DB db = model.DataBase(Pass) # Drop Tables if exist db.drop_Products() # Create Tables db.create_tables() for category in settings.CATEGORIES: db.feed_database(model.Category(category)) # Commit changes db.connection.commit() # Finally close connection db.connection.close()
def fetch(self): categories = [] zendesk_categories = self.req.get_items(model.Category) for zendesk_category in zendesk_categories: category_filename = utils.slugify(zendesk_category['name']) category = model.Category(zendesk_category['name'], zendesk_category['description'], category_filename) print('Category %s created' % category.name) category.meta = zendesk_category zendesk_sections = self.req.get_items(model.Section, category) categories.append(category) for zendesk_section in zendesk_sections: section_filename = utils.slugify(zendesk_section['name']) section = model.Section(category, zendesk_section['name'], zendesk_section['description'], section_filename) print('Section %s created' % section.name) section.meta = zendesk_section zendesk_articles = self.req.get_items(model.Article, section) category.sections.append(section) for zendesk_article in zendesk_articles: body = html2text.html2text(zendesk_article.get('body', '')) article_filename = utils.slugify(zendesk_article['title']) article = model.Article(section, zendesk_article['title'], body, article_filename) print('Article %s created' % article.name) article.meta = zendesk_article section.articles.append(article) return categories
def config(): try: if session['logged_in']: if request.method == 'POST' and request.form['budget']: budget = request.form['budget'] dt = datetime.datetime.now().date() user_id = getuid() bid = m.db.session.query(m.Budget.bid) b_uid = bid.all() b_uid = len(b_uid) + 1 budget_add = m.Budget(b_uid, user_id, dt, budget) m.db.session.add(budget_add) m.db.session.commit() flash("Your Budget is Added") gc.collect() return redirect(url_for('config')) if request.method == 'POST' and request.form['category']: user_id = getuid() cat_toggle = False s = m.db.session.query( m.Category.categories).filter_by(uid_fk=user_id) cat_cmp = [] for i in s: cat_cmp.append(i.categories) category = request.form['category'] for i in cat_cmp: if i == category.lower(): cat_toggle = True if cat_toggle: flash("Category already exist") else: cid = m.db.session.query(m.Category.cid) c_uid = cid.all() c_uid = len(c_uid) + 1 category_add = m.Category(c_uid, user_id, category.lower()) m.db.session.add(category_add) m.db.session.commit() gc.collect() flash("Your Category is Added") return redirect(url_for('config')) return render_template('configure.html') else: return redirect(url_for('login')) except: return redirect(url_for('login'))
def initialize(): # Adding Restaurant res = model.Restaurant(name='Ten Ren') res.put() # Adding Menus din = model.Menu(restaurant=res, name='Dinner Menu') din.put() lun = model.Menu(restaurant=res, name='Lunch Menu') lun.put() # Adding Categories app = model.Category(name='Appetizers') app.menus.append(lun.key()) app.put() sb = model.Category(name='Small Bites') sb.menus.append(din.key()) sb.put() lb = model.Category(name='Large Bites') lb.menus.append(din.key()) lb.put() # Addding Dishes eggRoll = model.Dish(name='Egg Roll') eggRoll.categories.append(app.key()) eggRoll.categories.append(sb.key()) eggRoll.restaurant = res eggRoll.put() chickenWings = model.Dish(name='Chicken Wings') chickenWings.categories.append(app.key()) chickenWings.categories.append(lb.key()) chickenWings.restaurant = res chickenWings.put()
def parse_category(category): """ Parse a category element :param category: A category :class:`xml.etree.ElementTree.Element` :rtype: :class:`anidb.model.Category` """ result = model.Category(category.attrib["id"]) for elem in category: setattr(result, elem.tag, elem.text) if category.attrib["hentai"] == "true": result.hentai = True result.weight = category.attrib["weight"] if "parentid" in category.attrib: result.parentid = category.attrib["parentid"] return result
def writeArticle(req): info = '' ret_data = {} try: arti = model.Article(title=req['title'], content=req['content'], scan_time=0, agree_time=0, uid=req['uid']) model.db.session.add(arti) model.db.session.commit() aid = arti.id except Exception as e: info = '数据库错误,问题提交失败' logger.error(info) logger.error(e.message) return False, DB_ERR_HAND, info, ret_data try: tabArr = req['tab'].split(';') except KeyError as e: info = '请求错误' logger.error(info) logger.error(e.message) return False, DB_ERR_HAND, info, ret_data tab_list = [] for tab in tabArr: cid = model.db.session.query( model.Category.id).filter_by(category=tab).first() if not cid: tb = model.Category(category=tab, cid=1) model.db.session.add(tb) model.db.session.commit() cid = tb.id else: cid = cid[0] tab_list.append(model.Article_Category_Rela(aid=aid, cid=cid)) model.db.session.add_all(tab_list) model.db.session.commit() return True, SUCCESS, info, ret_data
def CreateCategory(): """ CreateCategory: Renders the form for creating a new category Args: None Returns: html """ if 'email' in login_session: user_mail = login_session['email'] else: return redirect(url_for('home')) user = db.add_user(user_mail) category = model.Category(name='new category', user=user) if request.method == 'GET': return render_template('add_category.html', category=category) else: if request.form['name']: category.name = request.form['name'] db.add_item(category) return redirect(url_for('home'))
def load_businesses(session): # f = open("seed_data/businesses_data.csv") # for line in f: # business_data = line.strip().split(",") # business_id, address, categories, city, name, longitude, state, stars, latitude = # business_data[0], business_data[1], businesses_data[4], business_data[6], # business_data[7], business_data[9], business_data[10], business_data[11], business_data[12] # if "Food" not in categories and "Restaurants" not in categories: # continue # new_business = model.Restaurant(id=business_id, # address=address, # categories=categories, # city=city, # name=name, # longitude=longitude, # latitude=latitude, # state=state, # stars=stars) # session.add(new_business) # f.close() # attributes.Ambience.divey,attributes.Dietary Restrictions.vegan,attributes.Happy Hour,hours.Thursday.open,attributes.Order at Counter,attributes.Hair Types Specialized In.africanamerican,6attributes.Hair Types Specialized In.kids,7attributes.BYOB,hours.Friday.open,8categories,9latitude,10attributes.Outdoor Seating,11attributes.Alcohol,12attributes.Ambience.classy,13attributes.Payment Types.mastercard,14attributes.Parking.lot,15business_id,16attributes.Ambience.touristy,17attributes.Corkage,18hours.Tuesday.open,19attributes.Good For.brunch,20attributes.Payment Types.amex,21name,22hours.Monday.open,23attributes.Waiter Service,24attributes.Parking.street,25attributes.Ambience.hipster,26attributes.BYOB/Corkage,27attributes.Hair Types Specialized In.straightperms,28attributes.Music.live,29attributes.Dietary Restrictions.dairy-free,30attributes.Music.background_music,31attributes.Price Range,32attributes.Good For.breakfast,33attributes.Parking.garage,34attributes.Music.karaoke,35attributes.Good For Dancing,36review_count,37attributes.Hair Types Specialized In.asian,38state,39attributes.Accepts Credit Cards,40hours.Friday.close,41attributes.Good For.lunch,42attributes.Good For Kids,43attributes.Parking.valet,44attributes.Take-out,45full_address,46hours.Thursday.close,47attributes.Hair Types Specialized In.coloring,48attributes.Payment Types.cash_only,49attributes.Good For.dessert,50attributes.Music.video,51attributes.Dietary Restrictions.halal,52attributes.Takes Reservations,53hours.Saturday.open,54attributes.Ages Allowed,55attributes.Ambience.trendy,56attributes.Delivery,57hours.Wednesday.close,58attributes.Wi-Fi,59open,60city,61attributes.Payment Types.discover,62attributes.Wheelchair Accessible,63attributes.Dietary Restrictions.gluten-free,64stars,65attributes.Payment Types.visa,66type,67attributes.Caters,68attributes.Ambience.intimate,69attributes.Music.playlist,70attributes.Good For.latenight,71attributes.Good For.dinner,72attributes.Coat Check,73longitude,74hours.Monday.close,75attributes.Hair Types Specialized In.extensions,76hours.Tuesday.close,77hours.Saturday.close,78attributes.Good for Kids,79attributes.Parking.validated,80hours.Sunday.open,81attributes.Accepts Insurance,82attributes.Music.dj,83attributes.Dietary Restrictions.soy-free,84attributes.Has TV,85hours.Sunday.close,86attributes.Ambience.casual,87attributes.By Appointment Only,88attributes.Dietary Restrictions.kosher,89attributes.Dogs Allowed,90attributes.Drive-Thru,91attributes.Dietary Restrictions.vegetarian,92hours.Wednesday.open,93attributes.Noise Level,94attributes.Smoking,95attributes.Attire,96attributes.Hair Types Specialized In.curly,97attributes.Good For Groups,98neighborhoods,99attributes.Open 24 Hours,100attributes.Ambience.romantic,101attributes.Hair Types Specialized In.perms,102attributes.Music.jukebox,103attributes.Ambience.upscale f = open("seed_data/yelp_academic_dataset_business_clean.csv") # f = open("seed_data/yelp_academic_dataset_business_clean.csv") f.next() del_count = 0 counts = 0 for line in f: if counts > 10: session.commit() print "Committed" counts = 0 bus_data = line.strip().split("|") divey = bus_data[0] vegan = bus_data[1] happy_hour = bus_data[2] open_thurs = bus_data[3] counter = bus_data[4] byob = bus_data[7] open_fri = bus_data[8] categories = bus_data[9] latitude = bus_data[10] or None outdoor_seating = bus_data[11] alcohol = bus_data[12] classy = bus_data[13] mastercard = bus_data[14] parking_lot = bus_data[15] business_id = bus_data[16] touristy = bus_data[17] corkage = bus_data[18] open_tues = bus_data[19] brunch = bus_data[20] amex = bus_data[21] name = bus_data[22] open_mon = bus_data[23] waiter = bus_data[24] parking_street = bus_data[25] hipster = bus_data[26] live_music = bus_data[29] dairy_free = bus_data[30] background_music = bus_data[31] price_range = bus_data[32] or None breakfast = bus_data[33] parking_garage = bus_data[34] state = bus_data[39] credit_cards = bus_data[40] close_fri = bus_data[41] lunch = bus_data[42] kids = bus_data[43] parking_valet = bus_data[44] takeout = bus_data[45] address = bus_data[46] close_thurs = bus_data[47] cash_only = bus_data[49] dessert = bus_data[50] halal = bus_data[52] reservations = bus_data[53] open_sat = bus_data[54] trendy = bus_data[56] delivery = bus_data[57] close_wed = bus_data[58] wifi = bus_data[59] is_open = bus_data[60] city = bus_data[61] discover = bus_data[62] wheelchair = bus_data[63] gluten_free = bus_data[64] stars = bus_data[65] or None visa = bus_data[66] intimate = bus_data[69] latenight = bus_data[71] dinner = bus_data[72] coat_check = bus_data[73] longitude = bus_data[74] or None close_mon = bus_data[75] close_tues = bus_data[77] close_sat = bus_data[78] open_sun = bus_data[81] soy_free = bus_data[84] close_sun = bus_data[86] casual = bus_data[87] kosher = bus_data[89] drive_thru = bus_data[91] vegetarian = bus_data[92] open_wed = bus_data[93] noise_level = bus_data[94] groups = bus_data[98] neighborhoods = bus_data[99] twenty_four = bus_data[100] romantic = bus_data[101] upscale = bus_data[104] # # check to make sure the business is food related # if "Food" not in categories and "Restaurants" not in categories: # del_count += 1 # print del_count # continue # # check to make sure only open businesses are added to the database # if is_open == "FALSE": # continue # turn all open and close times to datetime objects def parse_time(t): t = datetime.strptime(t, "%H:%M") return t times = [ open_mon, close_mon, open_tues, close_tues, open_wed, close_wed, open_thurs, close_thurs, open_fri, close_fri, open_sat, close_sat, open_sun, close_sun ] datetimes = map(lambda (x): parse_time(x) if x != "" else x, times) open_mon = datetimes[0] or None close_mon = datetimes[1] or None open_tues = datetimes[2] or None close_tues = datetimes[3] or None open_wed = datetimes[4] or None close_wed = datetimes[5] or None open_thurs = datetimes[6] or None close_thurs = datetimes[7] or None open_fri = datetimes[8] or None close_fri = datetimes[9] or None open_sat = datetimes[10] or None close_sat = datetimes[11] or None open_sun = datetimes[12] or None close_sun = datetimes[13] or None # if open_mon: # open_mon = parse_time(open_mon) # if close_mon: # close_mon = parse_time(close_mon) # if open_tues: # open_tues = parse_time(open_tues) # if close_tues: # close_tues = parse_time(close_tues) # if open_wed: # open_wed = parse_time(open_wed) # if close_wed: # close_wed = parse_time(close_wed) # if open_thurs: # open_thurs = parse_time(open_thurs) # close_thurs = parse_time(close_thurs) # open_fri = parse_time(open_fri) # close_fri = parse_time(close_fri) # open_sat = parse_time(open_sat) # close_sat = parse_time(close_sat) # open_sun = parse_time(open_sun) # close_sun = parse_time(close_sun) # create a Restaurant object out of the business new_business = model.Restaurant( id=business_id, name=name, divey=bool(divey), vegan=bool(vegan), happy_hour=bool(happy_hour), open_thurs=open_thurs, counter=bool(counter), byob=bool(byob), open_fri=open_fri, latitude=latitude, outdoor_seating=bool(outdoor_seating), alcohol=bool(alcohol), classy=bool(classy), mastercard=bool(mastercard), parking_lot=bool(parking_lot), touristy=bool(touristy), corkage=bool(corkage), open_tues=open_tues, brunch=bool(brunch), amex=bool(amex), open_mon=open_mon, waiter=bool(waiter), parking_street=bool(parking_street), hipster=bool(hipster), live_music=bool(live_music), dairy_free=bool(dairy_free), background_music=bool(background_music), price_range=price_range, breakfast=bool(breakfast), parking_garage=bool(parking_garage), state=state, credit_cards=bool(credit_cards), close_fri=close_fri, lunch=bool(lunch), kids=bool(kids), parking_valet=bool(parking_valet), takeout=bool(takeout), address=address, close_thurs=close_thurs, cash_only=bool(cash_only), dessert=bool(dessert), halal=bool(halal), reservations=bool(reservations), open_sat=open_sat, trendy=bool(trendy), delivery=bool(delivery), close_wed=close_wed, wifi=bool(wifi), city=city, discover=bool(discover), wheelchair=bool(wheelchair), gluten_free=bool(gluten_free), stars=stars, visa=bool(visa), intimate=bool(intimate), latenight=bool(latenight), dinner=bool(dinner), coat_check=bool(coat_check), longitude=longitude, close_mon=close_mon, close_tues=close_tues, close_sat=close_sat, open_sun=open_sun, soy_free=bool(soy_free), close_sun=close_sun, casual=bool(casual), kosher=bool(kosher), drive_thru=bool(drive_thru), vegetarian=bool(vegetarian), open_wed=open_wed, noise_level=noise_level, groups=bool(groups), twenty_four=bool(twenty_four), romantic=bool(romantic), upscale=bool(upscale)) # Parse out the categories list as json if categories: try: c_replace = categories.replace("'", '"') c = json.loads(c_replace) new_business.categories = [ model.Category(category=x) for x in c ] except ValueError: continue if neighborhoods: try: n_replace = neighborhoods.replace("'", '"') n = json.loads(n_replace) new_business.neighborhoods = [ model.Neighborhood(neighborhood=x) for x in n ] except ValueError: continue session.add(new_business) counts += 1 session.commit() print "Final commit"
r_obj = json.load(f) r = model.Recipe(directions=r_obj["directions"], cook_time=r_obj["cook_time"], prep_time=r_obj["prep_time"], serves=r_obj["serves"], title=r_obj["title"], id=fn) model.db.session.add(r) try: category = model.Category.query.filter_by( name=r_obj["category"]).one() except NoResultFound as e: category = model.Category(name=r_obj["category"]) model.db.session.add(category) r.category = category for i in r_obj['ingredients']: match = ingredient_pattern.match(i) amount = match.group(1) ingredient = match.group(2) instructions = match.group(3) try: ing = model.Ingredient.query.filter_by(name=ingredient).one() except NoResultFound as e: ing = model.Ingredient(name=ingredient) model.db.session.add(ing) r_ing = model.RecipeIngredient(ingredient=ing,
def _instantiate_category(self, zendesk_category): attributes, filename = self._get_group_attributes_and_filename( zendesk_category) category = model.Category(attributes, filename) category.meta = zendesk_category return category