def homeFormSubmit(): TopParallax = getArgAsList(request, 'TBanner')[0] BottomParallax = getArgAsList(request, 'PBanner')[0] Sliderbanner = getArgAsList(request, 'sliderBanner') MediaLink = getArgAsList(request, 'MediaLink')[0] MediaBanner = getArgAsList(request, 'MediaBanner')[0] MediaDict = {"location": MediaBanner, "link": MediaLink} home = mongo.home.find_one() if TopParallax == "": TopParallax = home["TopParallax"] if BottomParallax == "": BottomParallax = home["BottomParallax"] if Sliderbanner == []: Sliderbanner = home["Sliderbanner"] MediaPublication = home["MediaPublication"] if MediaLink != "" and MediaBanner != "": MediaPublication.append(MediaDict) homeBannerDict = { "_id": home["_id"], "TopParallax": TopParallax, "BottomParallax": BottomParallax, "Sliderbanner": Sliderbanner, "MediaPublication": MediaPublication } updateCollection("home", homeBannerDict) return "Listing form submitted successfully"
def subscribePrice(): email = getArgAsList(request, 'email')[0] # productName = getArgAsList(request, 'productName')[0] productId = getArgAsList(request, 'productId')[0] priceCutOff = getArgAsList(request, 'priceCutOff')[0] mongo = MongoClient('localhost', 27017)['userRequests'] priceSubscribers = mongo.priceSubscribers existEntry = priceSubscribers.find_one({ 'email': email, 'priceCutOff': priceCutOff, 'status': 'A' }) app.logger.info(existEntry) if not existEntry: update_time = datetime.datetime.now().strftime("%y-%m-%d-%H-%M") priceSubscribers.insert({ "email": email, "productId": productId, "priceCutOff": priceCutOff, "status": 'A', "date": update_time }) return True else: return False
def productSearchAutoComplete(): category = getArgAsList(request, 'category')[0] qu = getArgAsList(request, 'qu')[0] if category: category = "all" print len(qu), qu if len(qu) < 4: return [] else: return getProductAutoCompleteList(category, qu)
def listingForm(): try: category = getArgAsList(request, 'category')[0] except: category = 'new' print category listing = mongo.listing.find_one() categoryList = [cat for cat in listing] categoryList.pop() try: categoryListing = listing[category] except: categoryListing = listing['dummy'] compareitems = categoryListing['compareitems'] hotbrands = categoryListing['hotbrands'] economicbrands = categoryListing['economicbrands'] topbanner = categoryListing['topbanner'] return render_template('listing.html', title="Listing banner : " + category, category=category, categoryList=categoryList, compareitems=compareitems, hotbrands=hotbrands, economicbrands=economicbrands, topbanner=topbanner)
def get_locale(): try: language = getArgAsList(request, 'lang')[0] except: language = 'hi' print request.accept_languages.best_match(LANGUAGES.keys()) return language
def search(): curr_dir = os.path.realpath(os.path.dirname(__file__)) whoosh_dir = curr_dir + "/index" productNameIndex = open_dir(whoosh_dir) queryText = getArgAsList(request, 'queryText') queryText = queryText[0] query = QueryParser("productname", schema=productNameIndex.schema).parse(queryText) productSearchList = [] with productNameIndex.searcher() as searcher: results = searcher.search(query, limit=None) productSearchList = [result["nid"] for result in results] productSearchList = list(set(productSearchList)) phoneList = [getPhoneInfo(phone) for phone in productSearchList] sortedPhoneList = addBazaarFundaScore(phoneList, [], []) page = getArgAsList(request, 'page') app.logger.info(page) return displayQueryResults("query", sortedPhoneList, page, [])
def homeFormSubmit(): TopParallax = getArgAsList(request, 'TBanner')[0] BottomParallax = getArgAsList(request, 'PBanner')[0] Sliderbanner = getArgAsList(request, 'sliderBanner') MediaLink = getArgAsList(request, 'MediaLink')[0] MediaBanner = getArgAsList(request, 'MediaBanner')[0] MediaDict = {"location":MediaBanner, "link":MediaLink} home = mongo.home.find_one() if TopParallax == "": TopParallax = home["TopParallax"] if BottomParallax == "": BottomParallax = home["BottomParallax"] if Sliderbanner == []: Sliderbanner = home["Sliderbanner"] MediaPublication = home["MediaPublication"] if MediaLink != "" and MediaBanner != "": MediaPublication.append(MediaDict) homeBannerDict = {"_id":home["_id"], "TopParallax":TopParallax, "BottomParallax":BottomParallax,"NewProducts":Sliderbanner, "MediaPublication":MediaPublication} updateCollection("home", homeBannerDict) return "Listing form submitted successfully"
def subscribePrice(): email = getArgAsList(request, 'email')[0] productName = getArgAsList(request, 'productName')[0] productId = getArgAsList(request, 'productId')[0] priceCutOff = getArgAsList(request, 'priceCutOff')[0] mongo = MongoClient('localhost', 27017)['userRequests'] priceSubscribers = mongo.priceSubscribers existEntry = priceSubscribers.find_one({'email':email, 'productName':productName,'priceCutOff':priceCutOff,'status':'A'}) print existEntry if not existEntry: priceSubscribers.insert({ "email" : email, "productName" : productName, "productId" : productId, "priceCutOff" : priceCutOff, "status" : 'A' }) return True else: return False
def subscribePrice(): email = getArgAsList(request, 'email')[0] # productName = getArgAsList(request, 'productName')[0] productId = getArgAsList(request, 'productId')[0] priceCutOff = getArgAsList(request, 'priceCutOff')[0] mongo = MongoClient('localhost', 27017)['userRequests'] priceSubscribers = mongo.priceSubscribers existEntry = priceSubscribers.find_one({'email':email,'priceCutOff':priceCutOff,'status':'A'}) app.logger.info(existEntry) if not existEntry: update_time = datetime.datetime.now().strftime("%y-%m-%d-%H-%M") priceSubscribers.insert({ "email" : email, "productId" : productId, "priceCutOff" : priceCutOff, "status" : 'A', "date": update_time }) return True else: return False
def phones(): phoneIds = getArgAsList(request, 'ids') priceRange = getArgAsList(request, 'pricerange') keywords = getArgAsList(request, 'keywords') brands = getArgAsList(request, 'brands') if phoneIds: return [getPhoneInfo(phone) for phone in phoneIds] elif priceRange or keywords: # app.logger.info("Price range with keywords") phoneIds = [] for keyword in keywords: phoneIds.extend(getPhoneIdListFromKeywordPreference(keyword)) phoneIds = list(set(phoneIds)) # app.logger.info(phoneIds) priceFilterPhoneId = getPhoneIdListFromPriceRange(priceRange, brands) if keywords: phoneIds = set(phoneIds) & set(priceFilterPhoneId) elif priceRange: # app.logger.info("only PriceRange") phoneIds = priceFilterPhoneId return [getPhoneInfo(phone) for phone in phoneIds] else: return keywords
def compareProducts(): title = "Compare user experience and prices for" phoneIds = [] phoneIds = getArgAsList(request, 'ids') app.logger.info(phoneIds) if not phoneIds: phoneIds = getCartDetails() app.logger.info("getting phoneIds from cart") app.logger.info(len(phoneIds)) phoneDetails = [getPhoneInfo(phoneId) for phoneId in phoneIds] sampleProductDetail = getPhoneInfo("558b010a0c677c369b46747f") app.logger.info(phoneIds) for phones in phoneDetails: title = title + " " + phones['Model Name'] return render_template("compare.html", title=title, phoneDetails = phoneDetails, cartDetails = phoneIds, sampleProductDetail = sampleProductDetail,allTopBrands = allBrands[0:7],allNonTopBrands = allBrands[11:18])
def getAllProducts(): try: category = getArgAsList(request, 'category')[0] except: category = None if category: allProducts = mongoProductmaster.find({"category": category}) else: allProducts = mongoProductmaster.find() csvStrings = [] csvList = [] for product in allProducts: product_id = product['product_id'] priceDict, min_priceDict = getProductPrice(product_id) category = product['category'] brand = product['brand'] try: lowestprice = str(min_priceDict['price']) except: lowestprice = "" keywordsRating = getProductRating(product_id) rating = 0.0 sumC = 0 for keyword in keywordsRating: rating = rating + float(keyword['rating']) sumC = sumC + 1 if sumC != 0: rating = rating / sumC rating = str(rating) rowList = [product_id, brand, lowestprice, category, rating] csvList.append(rowList) for csvLine in csvList: csvStrings += [",".join(csvLine)] csvStrings = "\n".join(csvStrings) response = make_response(csvStrings) # This is the key: Set the right header for the response # to be downloaded, instead of just printed on the browser response.headers[ "Content-Disposition"] = "attachment; filename=" + category + "_allProducts.csv" return response
def getAllProducts(): try: category = getArgAsList(request, 'category')[0] except: category = None if category: allProducts = mongoProductmaster.find({"category":category}) else: allProducts = mongoProductmaster.find() csvStrings= [] csvList = [] for product in allProducts: product_id = product['product_id'] priceDict, min_priceDict = getProductPrice(product_id) category = product['category'] brand = product['brand'] try: lowestprice = str(min_priceDict['price']) except: lowestprice = "" keywordsRating = getProductRating(product_id) rating = 0.0 sumC = 0 for keyword in keywordsRating: rating = rating + float(keyword['rating']) sumC = sumC + 1 if sumC != 0: rating = rating/sumC rating = str(rating) rowList = [product_id, brand, lowestprice, category, rating] csvList.append(rowList) for csvLine in csvList: csvStrings += [",".join(csvLine)] csvStrings = "\n".join(csvStrings) response = make_response(csvStrings) # This is the key: Set the right header for the response # to be downloaded, instead of just printed on the browser response.headers["Content-Disposition"] = "attachment; filename=" + category + "_allProducts.csv" return response
def catType(): try: category= getArgAsList(request, 'category')[0] except: category = 'new' listing = mongoCategoryDetails.find() categoryList = [li['type'] for li in listing] catTypeCursor = mongoCategoryDetails.find() catType = [cat for cat in catTypeCursor] if category != 'new': listingJSON = mongoCategoryDetails.find_one({'type':category}) else: listingJSON = "" listingJSON = json.dumps(listingJSON) return render_template('admin/catType.html', catType=catType, categoryList=categoryList, listingJSON=listingJSON,category=category)
def catType(): try: category = getArgAsList(request, 'category')[0] except: category = 'new' listing = mongoCategoryDetails.find() categoryList = [li['type'] for li in listing] catTypeCursor = mongoCategoryDetails.find() catType = [cat for cat in catTypeCursor] if category != 'new': listingJSON = mongoCategoryDetails.find_one({'type': category}) else: listingJSON = "" listingJSON = json.dumps(listingJSON) return render_template('admin/catType.html', catType=catType, categoryList=categoryList, listingJSON=listingJSON, category=category)
def get_locale(): try: language = getArgAsList(request, 'lang')[0] except: language = 'hi' return language
def listingForm(): try: category= getArgAsList(request, 'category')[0] except: category = 'new' print category listing = mongoCategoryDetails.find() categoryList = [li['type'][:-1] if li['type'].endswith('s') else li['type'] for li in listing] print categoryList # for cat in categoryList: # if cat.endswith('s'): # cat = cat[:-1] admin_properties = mongo.listing.find_one() try: categoryListing = admin_properties[category] except: pass # categoryListing = listing['dummy'] try: compareitems = categoryListing['compareitems'] except: compareitems = [] try: hotbrands = categoryListing['hotbrands'] except: hotbrands = [] try: economicbrands = categoryListing['economicbrands'] except: economicbrands = [] try: topbanner = categoryListing['topbanner'] except: topbanner = [] try: right_vertical = categoryListing['right_vertical_aff'] except: right_vertical = [] try: killerDeals = categoryListing['killer'] except: killerDeals = [] try: most_reviewed = categoryListing['most_reviewed'] except: most_reviewed = [] try: custom_product_list = categoryListing['custome_item_list'] except: custom_product_list = [] try: custom_link_list = categoryListing['custom_link_list'] except: custom_link_list = [] print custom_link_list return render_template('admin/listing.html', title="Listing banner : " + category, category=category,categoryList=categoryList, compareitems=compareitems, hotbrands=hotbrands,economicbrands=economicbrands, topbanner=topbanner,killerDeals=killerDeals,most_reviewed=most_reviewed, right_vertical=right_vertical, custom_product_list=custom_product_list, custom_link_list=custom_link_list)
def listingForm(): try: category = getArgAsList(request, 'category')[0] except: category = 'new' print category listing = mongoCategoryDetails.find() categoryList = [ li['type'][:-1] if li['type'].endswith('s') else li['type'] for li in listing ] print categoryList # for cat in categoryList: # if cat.endswith('s'): # cat = cat[:-1] admin_properties = mongo.listing.find_one() try: categoryListing = admin_properties[category] except: pass # categoryListing = listing['dummy'] try: compareitems = categoryListing['compareitems'] except: compareitems = [] try: hotbrands = categoryListing['hotbrands'] except: hotbrands = [] try: economicbrands = categoryListing['economicbrands'] except: economicbrands = [] try: topbanner = categoryListing['topbanner'] except: topbanner = [] try: right_vertical = categoryListing['right_vertical_aff'] except: right_vertical = [] try: killerDeals = categoryListing['killer'] except: killerDeals = [] try: most_reviewed = categoryListing['most_reviewed'] except: most_reviewed = [] try: custom_product_list = categoryListing['custome_item_list'] except: custom_product_list = [] try: custom_link_list = categoryListing['custom_link_list'] except: custom_link_list = [] print custom_link_list return render_template('admin/listing.html', title="Listing banner : " + category, category=category, categoryList=categoryList, compareitems=compareitems, hotbrands=hotbrands, economicbrands=economicbrands, topbanner=topbanner, killerDeals=killerDeals, most_reviewed=most_reviewed, right_vertical=right_vertical, custom_product_list=custom_product_list, custom_link_list=custom_link_list)
def searchResults(): phoneIds = getArgAsList(request, 'ids') priceRange = getArgAsList(request, 'pricerange') keywords = getArgAsList(request, 'keywords') brands = getArgAsList(request, 'brands') emptyResultsFlag = 0 sortedPhoneList = [] page = getArgAsList(request, 'page') weights = getArgAsList(request, 'weights') if priceRange == []: priceRange = [0,80000] else: priceRange = [int(priceRange[0]), int(priceRange[1])] sortedPhoneList = [] if phoneIds: phoneList = [getPhoneInfo(phone) for phone in phoneIds] elif keywords == []: phoneList = mongo.bestCollection.find_one({'keyword':'All'}) phoneList = phoneList['long'] sortedPhoneList = applyBrandAndPriceFilters(phoneList,brands, keywords,priceRange) if sortedPhoneList == []: emptyResultsFlag = 1 sortedPhoneList = applyBrandAndPriceFilters(phoneList,brands, keywords,[0,80000]) sortedPhoneList = sortedPhoneList[:120] else: if weights == []: weights = [0 for key in keywords] divFactor = len(keywords) if divFactor == 0: divFactor = 1 phoneDict = {} allKeyWordPhoneList = [] for keyword in keywords: keyWordPhoneList = mongo.bestCollection.find_one({'keyword': keyword}) keyWordPhoneList = keyWordPhoneList['long'] # keyWordPhoneList = applyBrandAndPriceFilters(keyWordPhoneList,brands, keywords,priceRange) allKeyWordPhoneList.extend(keyWordPhoneList) for phones in allKeyWordPhoneList: localDict = {} try: localDict = phoneDict[phones['Model Name']] localRating = phones['finalRating']/divFactor localDict['finalRating'] = localDict['finalRating']/divFactor + localRating except: localDict = phones localRating = phones['finalRating']/divFactor localDict['finalRating'] = localRating localDict['finalRating'] = round(localDict['finalRating'],2) phoneDict[phones['Model Name']] = localDict phoneList = [] for phone in phoneDict: phoneList.append(phoneDict[phone]) sortedPhoneList = applyBrandAndPriceFilters(phoneList,brands, keywords,priceRange) if sortedPhoneList == []: emptyResultsFlag = 1 sortedPhoneList = applyBrandAndPriceFilters(phoneList,brands, keywords,[0,80000]) sortedPhoneList = sorted(sortedPhoneList,key=lambda l:l[1],reverse=True) sortedPhoneList = sortedPhoneList[:120] return displaySearchResults("search",sortedPhoneList, page,priceRange,keywords,brands,allKeywords,allBrands, emptyResultsFlag)