Subversion Repositories SmartDukaan

Rev

Rev 203 | Rev 264 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
144 ashish 1
'''
2
Created on 12-May-2010
3
 
4
@author: gaurav
5
'''
6
from datastore.DataDefinition import * #Phones, init, PhoneItem
7
 
8
from elixir import *
173 ashish 9
import datetime
144 ashish 10
 
11
 
12
class DataHelper:
13
 
14
    def __init__(self):
238 ashish 15
        #init()
16
        pass
17
 
18
    def initxy(self):
144 ashish 19
        init()
238 ashish 20
        #pass
144 ashish 21
 
22
    def add_vendor(self,name,url):
238 ashish 23
        try:
24
            v = Vendor.query.filter_by(name=name)
25
            v = v.filter_by(url=url).one()
26
            return
27
        except:
28
            v = Vendor()
29
            v.v_name = name
30
            v.v_url = url
31
            session.commit() 
32
 
144 ashish 33
    def set_all_crawled(self,bval):
34
        for ph in self.get_all_phones():
35
            ph.is_crawled = bval
36
 
37
    def set_crawled(self,url,bval):
38
        for ph in self.get_all_phones():
39
            if ph.url == url:
40
                ph.is_crawled = bval
41
        session.commit()     
42
 
43
    def get_all_phones(self):
44
        phones = PhoneItem.query.all()
45
        return phones
46
 
47
    def get_all_vendors(self):
48
        vi = Vendor.query.all()
49
        return vi
50
 
51
 
52
    def add_new_phone(self, url, name, source):
238 ashish 53
        try:
54
            pi = PhoneItem.query.filter_by(name=name)
55
            pi = pi.filter_by(url=url)
56
            pi = pi.filter_by(source=source).one()
57
            return
58
        except:
59
            pi = PhoneItem()
60
            pi.name = name
61
            pi.url = url
62
            pi.source = source
63
            session.commit()
64
 
144 ashish 65
    def add_price(self,url,price):
238 ashish 66
        try:
67
            p = prices.query.filter_by(price=price)
68
            p = p.filter_by(url=url).one()
69
            return
70
        except:
71
            for ph in self.get_all_phones():
72
                if ph.url == url:
73
                    ph.price = price
74
            session.commit()
144 ashish 75
 
76
    def add_infiphone(self,name,shown_price,final_price):
238 ashish 77
        try:
78
            ai = infibeam_data.query.filter_by(name=name).one()
79
            return
80
        except:
81
            ai = infibeam_data()
82
            ai.name = name
83
            ai.shown_price = shown_price
84
            ai.final_price = final_price
85
            session.commit()
86
 
150 ashish 87
    def add_univervendor(self,name,site):
238 ashish 88
        try:
89
            ai = univercell_data.query.filter_by(name=name)
90
            ai = ai.filter_by(site=site).one()
91
            return
92
        except:
93
            ai = univercell_data()
94
            ai.v_name = name
95
            ai.v_site = site
96
            session.commit()
97
 
150 ashish 98
    def get_all_univervendors(self):
99
        vi = univercell_data.query.all()
100
        return vi
101
 
102
    def add_new_univerphone(self,name,shown_price,final_price):
238 ashish 103
        try:
104
            ai = univercell_items.query.filter_by(name=name)
105
            ai = ai.filter_by(shown_price=shown_price)
106
            ai = ai.filter_by(final_price=final_price).one()
107
            return
108
        except:
109
            ai = univercell_items()
110
            ai.p_title = name
111
            ai.p_shown_price = shown_price
112
            ai.p_final_price = final_price
113
            session.commit()
114
 
115
    def add_ipbasic(self,name,site):
116
        try:
117
            ai = indiaplaza_data.query.filter_by(name=name)
118
            ai = ai.filter_by(site=site).one()
119
            return
120
        except:
121
            ai = indiaplaza_data()
122
            ai.v_name = name
123
            ai.v_site = site
124
            session.commit()
150 ashish 125
 
238 ashish 126
    def add_mobstoreurl(self,url):
127
        try:
128
            ai = themobilestoreurls.query.filter_by(url=url).one()
129
            return
130
        except:
131
            ai = themobilestoreurls()
132
            ai.url = url
133
            session.commit()
134
 
135
    def add_pricesbolourl(self,url):
136
        try:
137
            ai = pricesbolourls.query.filter_by(url=url).one()
138
            return
139
        except:
140
            ai = pricesbolourls()
141
            ai.url = url
142
            session.commit()    
173 ashish 143
 
238 ashish 144
    def get_allpricesbolourl(self):
145
        vi = pricesbolourls.query.all()
146
        return vi
173 ashish 147
 
148
    def add_naaptolurl(self,url):
238 ashish 149
        try:
150
            n = naaptolurls.query.filter_by(url=url).one()
151
            return
152
        except:
153
            ai = naaptolurls()
154
            ai.url = url
155
            session.commit()
173 ashish 156
 
157
    def add_morenaaptolurl(self,url):
238 ashish 158
        try:
159
            n = morenaaptolurls.query.filter_by(url=url).one()
160
            return
161
        except:
162
            try:
163
                n = naaptolurls.query.filter_by(url=url).one()
164
                return
165
            except:
166
                ai = morenaaptolurls()
167
                ai.url = url
168
                session.commit()        
173 ashish 169
 
170
    def get_allmobstoreurls(self):
171
        ai = themobilestoreurls.query.all()
172
        return ai
173
 
174
    def get_allnaaptolurls(self):
175
        ai = naaptolurls.query.all()
176
        return ai
177
 
178
    def get_allmorenaaptolurls(self):
179
        ai = morenaaptolurls.query.all()
180
        return ai
181
 
182
    def add_new_mobstorephone(self,name,shown_pr,final_pr):
238 ashish 183
        try:
184
            ai = themobilestorephones.query.filter_by(name=name)
185
            ai = ai.filter_by(shown_price=shown_pr)
186
            ai = ai.filter_by(final_price=final_pr).one()
187
            return
188
        except:    
189
            ai = themobilestorephones()
190
            ai.name = name
191
            ai.shown_price = shown_pr
192
            ai.final_price = final_pr
193
            session.commit()
194
 
195
    def add_new_mobstorephone_new(self,name,shown_pr,final_pr,extra_info):
196
        try:
197
            ai = themobilestorephones_new.query.filter_by(name=name).one()
198
            return
199
        except:    
200
            ai = themobilestorephones_new()
201
            ai.name = name
202
            ai.shown_price = shown_pr
203
            ai.final_price = final_pr
204
            ai.extra_info = extra_info
205
            session.commit()
206
 
173 ashish 207
    def add_new_naaptolphone(self,name,range):
208
        temp = name.lower()
209
        if temp.find("null") != -1:
210
            return
211
        for n in self.get_allnaaptolphones(): 
212
            if n.name == name:
213
                if n.range == range:
214
                        return                            
215
        ai = naaptolphones()
216
        ai.name = name
217
        ai.range = range
218
        session.commit()
219
 
220
    def add_new_ntonlinesp(self,nid,name,price):
238 ashish 221
        try:
222
            n = ntonlinesp.query.filter_by(nid=nid)
223
            n = n.filter_by(name=name).one()
224
            return
225
        except:    
226
            ai = ntonlinesp()
227
            ai.nid = nid
228
            ai.name = name
229
            ai.price = price
230
            session.commit()
231
 
173 ashish 232
    def add_new_ntofflinesp(self,nid,name,price):
238 ashish 233
        try:
234
            n = ntofflinesp.query.filter_by(nid=nid)
235
            n = n.filter_by(name=name).one()
236
            return
237
        except:    
238
            ai = ntofflinesp()
239
            ai.nid = nid
240
            ai.name = name
241
            ai.price = price
242
            session.commit()
173 ashish 243
 
244
    def get_naaptolphone(self, name, range):
245
        query = naaptolphones.query.filter_by(name=name)
246
        query = query.filter_by(range=range)
247
        return query.one()
248
 
238 ashish 249
 
173 ashish 250
    def get_allmobstorephones(self):
251
        ai = themobilestorephones.query.all()
252
        return ai
238 ashish 253
 
254
    def get_allmobstorephones_new(self):
255
        ai = themobilestorephones_new.query.all()
256
        return ai
257
 
173 ashish 258
 
259
    def get_allnaaptolphones(self):
260
        ai = naaptolphones.query.all()
261
        return ai
262
 
263
    def get_allntonlinesp(self):
264
        ai = ntonlinesp.query.all()
265
        return ai
266
 
267
    def get_allntofflinesp(self):
268
        ai = ntofflinesp.query.all()
269
        return ai
270
 
271
    def get_ntonlinespbynid(self,nid):
272
        ai = ntonlinesp.query.filter_by(nid=nid)
273
        return ai
274
 
275
    def get_ntofflinespbynid(self,nid):
276
        ai = ntofflinesp.query.filter_by(nid=nid)
277
        return ai
278
 
238 ashish 279
    def add_babuchakurl(self,url,no_pages):
280
        try:
281
            ai = babuchak_urls.query.filter_by(url=url).one()
282
            return
283
        except:    
284
            ai = babuchak_urls()
285
            ai.url = url
286
            ai.no_pages = no_pages 
287
            session.commit()
173 ashish 288
 
238 ashish 289
    def get_allbabuchakurls(self):
290
        ai = babuchak_urls.query.all()
291
        return ai
292
 
293
    def add_babuchakphoneurl(self,url):
294
        try:
295
            ai = babuchak_phoneurls.query.filter_by(url=url).one()
296
            return
297
        except:    
298
            ai = babuchak_phoneurls()
299
            ai.url = url 
300
            session.commit()
301
 
302
    def get_allbabuchakphoneurls(self):
303
        ai = babuchak_phoneurls.query.all()
304
        return ai
305
 
306
    def add_babuchakphone(self,name,shown_price,final_price):
307
        try:
308
            ai = babuchak_phones.query.filter_by(name=name).one()
309
            return
310
        except:
311
            ai = babuchak_phones()
312
            ai.name = name
313
            ai.shown_price = shown_price
314
            ai.final_price = final_price    
315
            session.commit()
316
 
317
    def get_allbabuchakphones(self):
318
        ai = babuchak_phones.query.all()
319
        return ai       
320
 
173 ashish 321
    def get_all_ipbasic(self):
322
        vi = indiaplaza_data.query.all()
323
        return vi
324
 
325
    def add_ipextra(self,name,shown_price,final_price,guarantee,shipinfo):
238 ashish 326
        try:
327
            ai = indiaplaza_items.query.filter_by(p_name=name)
328
            ai = ai.filter_by(p_shown_price=shown_price)
329
            ai = ai.filter_by(p_final_price=final_price)
330
            ai = ai.filter_by(p_guaranteeinfo=guarantee)
331
            ai = ai.filter_by(p_shipinfo=shipinfo).one()
332
            return
333
        except:
334
            ai = indiaplaza_items()
335
            ai.p_name = name
336
            ai.p_shown_price = shown_price
337
            ai.p_final_price = final_price
338
            ai.p_guaranteeinfo = guarantee
339
            ai.p_shipinfo = shipinfo
340
            session.commit()
341
 
173 ashish 342
    def get_all_infibeam_data(self):
343
        phones = infibeam_data.query.all()
344
        return phones
345
 
346
 
347
    def get_all_indiaplaza_phones(self):
348
        phones = indiaplaza_items.query.all()
349
        return phones
150 ashish 350
 
173 ashish 351
    def get_all_univercell_phones(self):
352
        phones = univercell_items.query.all()
353
        return phones
354
 
355
    def get_infibeam_csv(self):
356
        phones = self.get_all_infibeam_phones()
357
        print phones
358
 
359
    def get_all_suppliers(self):
360
        sup = suppliers.query.all()
361
        return sup
362
 
363
    def get_all_models(self):
364
        mod = models.query.all()
365
        return mod
366
 
367
    def get_all_prices(self):
368
        pr = prices.query.all()
369
        return pr
370
 
371
    def get_suppId(self,name):
372
        for s in self.get_all_suppliers():
373
            if s.name == name:
374
                return s.id
375
 
376
    def get_supp_byId(self,id):
377
        for s in self.get_all_suppliers():
378
            if s.id == id:
379
                return s
380
 
381
    def get_supp_byName(self,name):
382
        supps = []
383
        for s in self.get_all_suppliers():
384
            if s.name == name:
385
                supps.append(s)
386
        return supps        
387
 
388
    def get_supp_bySite(self,site):
389
        supps = []
390
        for s in self.get_all_suppliers():
391
            if s.site == site:
392
                supps.append(s)
393
        return supps
394
 
395
 
396
 
397
    def get_modId(self,brand,model):
398
        for m in self.get_all_models():
399
            if m.brand == brand:
400
                if m.model == model:
401
                    return m.id                     
402
 
403
    def get_modbyId(self,id):
404
        for m in self.get_all_models():
405
            if m.id == id:
406
                return m                     
407
 
408
    def get_modbyModel(self,model):
409
        for m in self.get_all_models():
410
            if m.model == model:
411
                return m
238 ashish 412
 
173 ashish 413
    def get_modbyBrand(self,brand):
414
        mods = []
415
        for m in self.get_all_models():
416
            if m.brand == brand:
417
                mods.append(m)
418
        return mods                     
419
 
420
    def get_prbyId(self,id):
421
        for p in self.get_all_prices():
422
            if p.id == id:
423
                return p                     
424
 
425
    def get_prbySid(self,supplier_id):
426
        prc = []
427
        for p in self.get_all_prices():
428
            if p.supplier_id == supplier_id:
429
                prc.append(p)
430
        return prc
431
 
432
    def get_prbyMid(self,mobile_id):
433
        prc = []
434
        for p in self.get_all_prices():
435
            if p.mobile_id == mobile_id:
436
                prc.append(p)
437
        return prc
438
 
439
 
440
    def add_supplier(self,name,site):
441
        for s in self.get_all_suppliers():
442
            if s.name == name:
443
                now = datetime.datetime.now()
444
                s.last_crawled = str(now)
445
                session.commit()
446
                return             
447
        ai = suppliers()
448
        ai.name = name
449
        ai.site = site
450
        now = datetime.datetime.now()
451
        ai.last_crawled = str(now)
452
        session.commit()
453
 
454
    def add_models(self,brand,model):
455
        for m in self.get_all_models():
456
            if m.brand == brand:
457
                if m.model == model:
458
                    return                     
459
        ai = models()
460
        ai.brand = brand
461
        ai.model = model
462
        session.commit()
463
 
464
 
465
    def add_prices(self,mobile_id,supplier_id,quoted_price,final_price,extra_info):
466
        for p in self.get_all_prices():
467
            if p.mobile_id == mobile_id:
468
                if p.supplier_id == supplier_id:
469
                    if p.extra_info == extra_info:
470
                        return                           
471
        ai = prices()
472
        ai.mobile_id = mobile_id
473
        ai.supplier_id = supplier_id
474
        ai.quoted_price = quoted_price
475
        ai.final_price = final_price
476
        ai.extra_info = extra_info
477
        session.commit()
478
 
479
    def get_price_by_model(self, model_id, supplier_id):
480
        query = prices.query.filter_by(mobile_id=model_id)
481
        query = query.filter_by(supplier_id=supplier_id)
482
        return query.one()
483
 
484
    def add_gs_info(self,mid,guaranteeinfo,shipinfo):
238 ashish 485
        try:
486
            gs = guarantee_info.query.filter_by(mid=mid)
487
            gs = gs.filter_by(guaranteeinfo=guaranteeinfo)
488
            gs = gs.filter_by(shipinfo=shipinfo).one()
489
            return
490
        except:
491
            gs = guarantee_info()
492
            gs.mid = mid
493
            gs.guaranteeinfo = guaranteeinfo 
494
            gs.shipinfo = shipinfo
495
            session.commit() 
496
 
173 ashish 497
    def get_all_gs_info(self):
498
        gsi = guarantee_info.query.all()
499
        return gsi
500
 
501
    def get_gs_bymid(self,mid):
502
        gsi = guarantee_info.query.filter_by(mid=mid).one()
503
        return gsi
504
 
238 ashish 505
    def set_extra_vars(self,var,val,desc):    
506
        try:
507
            tm = extra_vars.query.filter_by(var=var).one()
508
            tm.val = val
509
            tm.desc = desc
510
        except:
511
            tm = extra_vars()
512
            tm.var = var
513
            tm.val = val
514
            tm.desc = desc       
203 ashish 515
 
238 ashish 516
    def get_extra_vars(self,var):
517
        try:
518
            #print "in try"
519
            tm = extra_vars.query.filter_by(var=var).one()
520
        except:
521
            #print "in except"
522
            tm = "EMPTY"
523
        return tm.val
524
 
173 ashish 525
if __name__ == "__main__":
526
    datastore = DataHelper()
527
    datastore.get_infibeam_csv()