Ejemplo n.º 1
0
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"
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
def get_locale():
    try:
        language = getArgAsList(request, 'lang')[0]
    except:
        language = 'hi'
    print request.accept_languages.best_match(LANGUAGES.keys())
    return language
Ejemplo n.º 7
0
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, [])
Ejemplo n.º 8
0
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"
Ejemplo n.º 9
0
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
Ejemplo n.º 10
0
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
Ejemplo n.º 11
0
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
Ejemplo n.º 12
0
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])
Ejemplo n.º 13
0
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
Ejemplo n.º 14
0
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 
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
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)
Ejemplo n.º 17
0
def get_locale():
    try:
        language = getArgAsList(request, 'lang')[0]
    except:
        language = 'hi'
    return language
Ejemplo n.º 18
0
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)
Ejemplo n.º 19
0
def get_locale():
	try:
		language = getArgAsList(request, 'lang')[0]
	except:
		language = 'hi'
	return language
Ejemplo n.º 20
0
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)
Ejemplo n.º 21
0
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)