Subversion Repositories SmartDukaan

Rev

Rev 5377 | Rev 5413 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5377 Rev 5401
Line 5... Line 5...
5
'''
5
'''
6
import tornado.httpserver, tornado.ioloop, tornado.web
6
import tornado.httpserver, tornado.ioloop, tornado.web
7
import json, os, ConfigParser, sys
7
import json, os, ConfigParser, sys
8
from PyLucene.Retriever import Retriever
8
from PyLucene.Retriever import Retriever
9
from Utils import getItemsWithTopScore, isPriceSame, getProductClusters, getFilteredClustersWithTopScores, \
9
from Utils import getItemsWithTopScore, isPriceSame, getProductClusters, getFilteredClustersWithTopScores, \
10
    getDisplayInfo, getSynonyms
10
    getDisplayInfo, getValidItems, getProductName
11
from ScraperLoader import getScraper
11
from ScraperLoader import getScraper
12
from PyLucene.IndexBuilder import IndexBuilder
12
from PyLucene.IndexBuilder import IndexBuilder
13
from DataStore.WatchListManager import WatchListManager
13
from DataStore.WatchListManager import WatchListManager
14
 
14
 
15
cmd_folder = os.path.dirname(os.path.abspath(os.environ["HOME"] + "/code/trunk/PyProj/src/shop2020/"))
15
cmd_folder = os.path.dirname(os.path.abspath(os.environ["HOME"] + "/code/trunk/PyProj/src/shop2020/"))
Line 255... Line 255...
255
        elif requestType == 'delete':
255
        elif requestType == 'delete':
256
            watchlistManager.remove(entity = entityId)
256
            watchlistManager.remove(entity = entityId)
257
        
257
        
258
        self.write("{}")
258
        self.write("{}")
259
 
259
 
-
 
260
class DownloadHandler(BaseHandler):
-
 
261
    
-
 
262
    def post(self):
-
 
263
        catalog_client = CatalogClient().get_client()
-
 
264
        vendors = {}
-
 
265
        
-
 
266
        for vendor in catalog_client.getAllVendors():
-
 
267
            vendors[vendor.id] = vendor.name
-
 
268
        
-
 
269
        self.set_header('Content-Type', 'text/csv')
-
 
270
        
-
 
271
        newLine = '\n'
-
 
272
        tab = '\t'
-
 
273
 
-
 
274
        header = 'Product' + tab
-
 
275
        header += 'Vendor' + tab + 'Transfer Price' + tab + 'Vendor' + tab + 'Transfer Price' + tab +  'Vendor' + tab + 'Transfer Price' + tab
-
 
276
        header += 'Saholic' + newLine
-
 
277
        
-
 
278
        responseText = header
-
 
279
        
-
 
280
        for item in getValidItems():
-
 
281
            vendorItemPricings = catalog_client.getAllItemPricing(item.id)
-
 
282
            sortedPricings = sorted(vendorItemPricings, key = lambda vendorItemPricing: vendorItemPricing.transferPrice)
-
 
283
            
-
 
284
            row = getProductName(item) + tab
-
 
285
            
-
 
286
            if len(sortedPricings) > 0:
-
 
287
                row += vendors[sortedPricings[0].vendorId] + tab + str(sortedPricings[0].transferPrice) + tab
-
 
288
            else:
-
 
289
                row += tab + tab
-
 
290
            
-
 
291
            if len(sortedPricings) > 1:
-
 
292
                row += vendors[sortedPricings[1].vendorId] + tab + str(sortedPricings[1].transferPrice) + tab
-
 
293
            else:
-
 
294
                row += tab + tab
-
 
295
            
-
 
296
            if len(sortedPricings) > 2:
-
 
297
                row += vendors[sortedPricings[2].vendorId] + tab + str(sortedPricings[2].transferPrice) + tab
-
 
298
            else:
-
 
299
                row += tab + tab
-
 
300
            
-
 
301
            row += str(item.sellingPrice) + newLine
-
 
302
            
-
 
303
            responseText += row
-
 
304
        
-
 
305
        self.write(responseText)
-
 
306
    
260
settings  = {
307
settings  = {
261
        'static_path': os.path.join(os.path.dirname(__file__), 'static'),
308
        'static_path': os.path.join(os.path.dirname(__file__), 'static'),
262
        'login_url': '/login', 
309
        'login_url': '/login', 
263
        'cookie_secret' :"61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo="
310
        'cookie_secret' :"61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo="
264
}
311
}
Line 267... Line 314...
267
                (r"/", MainHandler),
314
                (r"/", MainHandler),
268
                (r"/login", LoginHandler),
315
                (r"/login", LoginHandler),
269
                (r"/feedback", FeedbackHandler),
316
                (r"/feedback", FeedbackHandler),
270
                (r"/feedback-url", URLFeedbackHandler),
317
                (r"/feedback-url", URLFeedbackHandler),
271
                (r"/watchlist", WatchlistHandler),
318
                (r"/watchlist", WatchlistHandler),
-
 
319
                (r"/download", DownloadHandler),
272
                (r"/(jquery-1.6.2.min\.js)", tornado.web.StaticFileHandler, dict(path=settings['static_path']))
320
                (r"/(jquery-1.6.2.min\.js)", tornado.web.StaticFileHandler, dict(path=settings['static_path']))
273
            ], **settings)
321
            ], **settings)
274
 
322
 
275
if __name__ == '__main__':
323
if __name__ == '__main__':
276
    http_server = tornado.httpserver.HTTPServer(application)
324
    http_server = tornado.httpserver.HTTPServer(application)