Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
75 naveen 1
import math
2
 
71 naveen 3
def getscore(struct):
75 naveen 4
 
5
    score = 0.0
1915 rajveer 6
    battery_type_score = 0.0
7
    twog_talktime_score = 0.0
8
    threeg_talktime_score = 0.0
9
    twog_standbytime_score = 0.0
10
    threeg_standbytime_score = 0.0
2454 rajveer 11
    usage_time_score = 0.0
75 naveen 12
 
13
    if struct.has_key("features") :
1915 rajveer 14
        features = struct.get("features")
2556 rajveer 15
 
1915 rajveer 16
        battery_capacity = 0.0
17
        last = "0"
18
        battery_type = features.get("Battery type")
19
        battery_type = battery_type[0]
20
        battery_type = battery_type.split(" ")
2454 rajveer 21
 
1915 rajveer 22
        print battery_type
23
        for part in battery_type:
24
            if part.find("mAh") > -1:
25
                try:
26
                    battery_capacity = float(last)
27
                except:
28
                    battery_capacity = 1200
29
            print `last`
30
            last = part
31
 
32
        print "battery_capacity" + `battery_capacity`
33
        if battery_capacity < 800 :
34
            battery_type_score = 3
35
        elif battery_capacity > 1800 :
36
            battery_type_score = 10
37
        else :
38
            battery_type_score = (battery_capacity - 800)/(1800-800)*7.0
39
            battery_type_score = battery_type_score + 3.0
40
 
2454 rajveer 41
        if features.has_key("Usage time") :
42
            usage_time = features.get("Usage time")
43
            usage_time = usage_time[0]
44
            usage_time = usage_time.split(" ")
45
            usage_time = float(usage_time[0])
46
            if usage_time > 10 :
47
                usage_time_score = 10
48
            else:
49
                usage_time_score = usage_time
2556 rajveer 50
 
75 naveen 51
    if struct.has_key("childrenslides") :
52
        childrenslides = struct.get("childrenslides")
53
 
54
        if childrenslides.has_key("Capacity") :
55
            capacity = childrenslides.get("Capacity")
56
            if capacity.has_key("features") :
57
                features = capacity.get("features")
1915 rajveer 58
 
75 naveen 59
            if capacity.has_key("childrenslides") :
60
                childrenslides = capacity.get("childrenslides")
61
 
62
                if childrenslides.has_key("Talk time") :
63
                    talktime = childrenslides.get("Talk time")
64
 
65
                    if talktime.has_key("features") :
66
                        features = talktime.get("features")
67
 
68
                        # Capacity > Talk time > 2G : <5 - 0.5, <10 - 1, >10 - 1.5
69
                        if features.has_key("2G") :
70
                            twog = features.get("2G")
76 naveen 71
                            if len(twog) > 0 :
72
                                twog = twog[0]
73
                                twog = twog.split(" ")
1915 rajveer 74
                                twog = float(twog[0])
75
 
76 naveen 76
                                print "twog=" + `twog`
75 naveen 77
 
1915 rajveer 78
                                if twog < 3 :
79
                                    twog_talktime_score = 3.0
76 naveen 80
 
1915 rajveer 81
                                elif twog >= 15 :
82
                                    twog_talktime_score = 10.0
76 naveen 83
 
1915 rajveer 84
                                else :
85
                                    twog_talktime_score = 3 + (twog - 3) / (15 - 3) * 7 
76 naveen 86
 
75 naveen 87
                        # Capacity > Talk time > 3G : <5 - 0.5, <10 - 1, >10 - 1.5
88
                        if features.has_key("3G") :
89
                            threeg = features.get("3G")
90
 
76 naveen 91
                            if len(threeg) > 0 :
92
                                threeg = threeg[0]
93
                                threeg = threeg.split(" ")
1362 rajveer 94
                                threeg = float(threeg[0])
76 naveen 95
                                print "threeg=" + `threeg`
96
 
1915 rajveer 97
                                if threeg < 2 :
98
                                    threeg_talktime_score = 3.0
76 naveen 99
 
1915 rajveer 100
                                elif threeg >= 8 :
101
                                    threeg_talktime_score = 10.0
76 naveen 102
 
1915 rajveer 103
                                else :
104
                                    threeg_talktime_score = 3.0 + (threeg - 3) / (8 - 2) * 7.0
105
 
75 naveen 106
                if childrenslides.has_key("Standby time") :
107
                    standbytime = childrenslides.get("Standby time")
108
 
109
                    if standbytime.has_key("features") :
110
                        features = standbytime.get("features")
111
 
112
                        # Capacity > Standby time > 2G : <10 - 0.5, <20 - 1, >20 - 1.5
113
                        if features.has_key("2G") :
114
                            twog = features.get("2G")
1915 rajveer 115
 
76 naveen 116
                            if len(twog) > 0 :
117
                                twog = twog[0]
118
                                twog = twog.split(" ")
1915 rajveer 119
                                twog = float(twog[0])
120
 
76 naveen 121
                                print "twog=" + `twog`
75 naveen 122
 
1915 rajveer 123
                                if twog < 5 :
124
                                    twog_standbytime_score = 2.0
125
 
126
                                elif twog >= 30 :
127
                                    twog_standbytime_score = 10.0
76 naveen 128
 
1915 rajveer 129
                                else :
130
                                    twog_standbytime_score = 2 + (twog - 5) / (30 - 5) * 8 
76 naveen 131
 
75 naveen 132
                        # Capacity > Standby time > 3G : <10 - 0.5, <20 - 1, >20 - 1.5
133
                        if features.has_key("3G") :
134
                            threeg = features.get("3G")
135
 
76 naveen 136
                            if len(threeg) > 0 :
137
                                threeg = threeg[0]
138
                                threeg = threeg.split(" ")
1362 rajveer 139
                                threeg = float(threeg[0])
76 naveen 140
                                print "threeg=" + `threeg`
141
 
1915 rajveer 142
                                if threeg < 5 :
143
                                    threeg_standbytime_score = 2.0 
76 naveen 144
 
1915 rajveer 145
                                elif threeg >= 30 :
146
                                    threeg_standbytime_score = 10.0
76 naveen 147
 
1915 rajveer 148
                                else :
149
                                    threeg_standbytime_score = 2 +  (threeg - 5) / (30 - 5) * 8
150
 
151
    print "battery_type_score" + `battery_type_score`
152
    print "twog_talktime_score" + `twog_talktime_score`
153
    print "threeg_talktime_score" + `threeg_talktime_score`
154
    print "twog_standbytime_score" + `twog_standbytime_score`
155
    print "threeg_standbytime_score" + `threeg_standbytime_score`
156
 
2454 rajveer 157
    if usage_time_score != 0:
2571 rajveer 158
        score = (40*battery_type_score + 60*usage_time_score)/100
2454 rajveer 159
    elif threeg_talktime_score == 0:
1915 rajveer 160
        score = (40*battery_type_score + 30*twog_talktime_score + 30*twog_standbytime_score )/100
161
    else :
162
        score = (40*battery_type_score + 20*twog_talktime_score + 10*threeg_talktime_score + 20*twog_standbytime_score + 10*threeg_standbytime_score)/100
163
    return score