How to use user_count method in locust

Best Python code snippet using locust

behave_api.py

Source:behave_api.py Github

copy

Full Screen

1# -*- coding: utf-8 -*-2import datetime3from django.conf import settings4from gna.tabulate.models import (5 PaymentLevel,6 ZelInc,7 ZelDec,8 DiaInc,9 DiaDec,10 KarmaInc,11 KarmaDec,12 NewUserLevel,13 ArenaChallenge,14 DungeonKey,15 UnitEvo,16 UnitMix,17 UnitSell,18 FacilityLvup,19 LocationLvup,20 BmRefresh,21 BmBuy,22 BmGoods,23 BrvItemMst,24 BrvUnitMst,25)26from gna.common import (27 div_operation,28)29##### str #####30def _get_date_str(date):31 if type(date)==datetime.date or type(date)==datetime.datetime:32 return date.strftime('%Y-%m-%d')33 return date34def _get_date_by_str(date_str):35 return datetime.datetime.strptime(date_str, '%Y-%m-%d')36def _get_str_by_int(value):37 if value:38 return str(int(value))39 else:40 return None41def _get_str_by_float(value):42 if value:43 return '%.1f' % (value)44 else:45 return None46def _get_percent_by_float(value):47 if value:48 return '%.1f%%' % (value*100.0)49 else:50 return None51##### api #####52# 当日创角等级分布53class NewUserLevelObject(object):54 percent = None55 total_percent = None56 def __init__(self, date, zone, lv, count):57 self.date = date58 self.zone = zone59 self.lv = lv60 self.count = count61 def get_str(self):62 self.date_str = _get_date_str(self.date)63 self.zone_str = settings.TABULATE_ZONE_NAME[self.zone]64 self.lv_str = _get_str_by_int(self.lv)65 self.count_str = _get_str_by_int(self.count)66 self.percent_str = _get_percent_by_float(self.percent)67 self.total_percent_str = _get_percent_by_float(self.total_percent)68def get_new_user_level_objs_list(db, date, zone):69 query_data = NewUserLevel.objects.using(db).filter(date=date, zone=zone)70 objs = []71 all_count = 072 for data in query_data:73 lv, count = data.lv, data.count74 obj = NewUserLevelObject(date, zone, lv, count)75 all_count += count76 objs.append(obj)77 objs.sort(key=lambda x: x.lv)78 total = 079 for obj in objs:80 obj.percent = div_operation(obj.count, all_count)81 total += obj.count82 obj.total_percent = div_operation(total, all_count)83 obj.get_str()84 return objs85def get_new_user_level_summary_objs_list(db, date):86 query_data = NewUserLevel.objects.using(db).filter(date=date)87 objs = []88 obj_dict = {}89 all_count = 090 for data in query_data:91 lv, count = data.lv, data.count92 if lv in obj_dict:93 obj_dict[lv].count += count94 else:95 obj = NewUserLevelObject(date, 'summary', lv, count)96 objs.append(obj)97 obj_dict[lv] = obj98 all_count += count99 objs.sort(key=lambda x: x.lv)100 total = 0101 for obj in objs:102 obj.percent = div_operation(obj.count, all_count)103 total += obj.count104 obj.total_percent = div_operation(total, all_count)105 obj.get_str()106 return objs107# 充值档次108class PaymentLevelObject(object):109 def __init__(self, date, platform, zone, purchase_id, user_count, times_count, amount):110 self.date = date111 self.zone = zone112 self.platform = platform113 self.purchase_id = purchase_id114 self.user_count = user_count115 self.times_count = times_count116 self.amount = amount 117 def get_str(self):118 self.date_str = _get_date_str(self.date)119 self.zone_str = settings.TABULATE_ZONE_NAME[self.zone]120 self.platform_str = _get_str_by_int(self.platform)121 self.purchase_id_str = settings.TABULATE_PURCHASE_ID_NAME[self.purchase_id]122 self.user_count_str = _get_str_by_int(self.user_count)123 self.times_count_str = _get_str_by_int(self.times_count)124 self.amount_str = _get_str_by_int(self.amount)125def get_payment_level_objs_list(db, date, zone):126 query_data = PaymentLevel.objects.using(db).filter(date=date, zone=zone)127 objs = []128 for data in query_data:129 platform, purchase_id, user_count, times_count, amount = data.platform, data.purchase_id, data.user_count, data.times_count, data.amount130 obj = PaymentLevelObject(date, platform, zone, purchase_id, user_count, times_count, amount)131 obj.get_str()132 objs.append(obj)133 objs.sort(key=lambda x: x.purchase_id)134 return objs135def get_payment_level_summary_objs_list(db, date):136 zone = 'summary'137 query_data = PaymentLevel.objects.using(db).filter(date=date)138 objs = []139 obj_dict = {}140 for data in query_data:141 platform, purchase_id, user_count, times_count, amount = data.platform, data.purchase_id, data.user_count, data.times_count, data.amount142 if purchase_id in obj_dict:143 obj = obj_dict[purchase_id]144 obj.user_count += user_count145 obj.times_count += times_count146 obj.amount += amount147 else:148 obj = PaymentLevelObject(date, platform, zone, purchase_id, user_count, times_count, amount)149 objs.append(obj)150 obj_dict[purchase_id] = obj151 objs.sort(key=lambda x: x.purchase_id) 152 for obj in objs:153 obj.get_str()154 return objs155# 金币产出156class ResourceObject(object):157 def __init__(self, date, platform, zone, channel_id, user_count, times_count, amount):158 self.date = date159 self.zone = zone160 self.platform = platform161 self.channel_id = channel_id162 self.user_count = user_count163 self.times_count = times_count164 self.amount = amount 165 def get_str(self):166 self.date_str = _get_date_str(self.date)167 self.zone_str = settings.TABULATE_ZONE_NAME[self.zone]168 self.platform_str = _get_str_by_int(self.platform)169 if self.channel_id in settings.TABULATE_RESOURCE_CHANNEL_ID_NAME:170 self.channel_id_str = settings.TABULATE_RESOURCE_CHANNEL_ID_NAME[self.channel_id]171 else:172 self.channel_id_str = str(self.channel_id)173 self.user_count_str = _get_str_by_int(self.user_count)174 self.times_count_str = _get_str_by_int(self.times_count)175 self.amount_str = _get_str_by_int(self.amount)176def get_zel_inc_objs_list(db, date, zone):177 query_data = ZelInc.objects.using(db).filter(date=date, zone=zone)178 objs = []179 for data in query_data:180 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount181 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)182 obj.get_str()183 objs.append(obj)184 objs.sort(key=lambda x: x.channel_id)185 return objs186def get_zel_inc_summary_objs_list(db, date):187 zone = 'summary'188 query_data = ZelInc.objects.using(db).filter(date=date)189 objs = []190 obj_dict = {}191 for data in query_data:192 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount193 if channel_id in obj_dict:194 obj = obj_dict[channel_id]195 obj.user_count += user_count196 obj.times_count += times_count197 obj.amount += amount198 else:199 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)200 objs.append(obj)201 obj_dict[channel_id] = obj202 objs.sort(key=lambda x: x.channel_id)203 for obj in objs:204 obj.get_str()205 return objs206# 金币消耗207def get_zel_dec_objs_list(db, date, zone):208 query_data = ZelDec.objects.using(db).filter(date=date, zone=zone)209 objs = []210 for data in query_data:211 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount212 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)213 obj.get_str()214 objs.append(obj)215 objs.sort(key=lambda x: x.channel_id)216 return objs217def get_zel_dec_summary_objs_list(db, date):218 zone = 'summary'219 query_data = ZelDec.objects.using(db).filter(date=date)220 objs = []221 obj_dict = {}222 for data in query_data:223 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount224 if channel_id in obj_dict:225 obj = obj_dict[channel_id]226 obj.user_count += user_count227 obj.times_count += times_count228 obj.amount += amount229 else:230 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)231 objs.append(obj)232 obj_dict[channel_id] = obj233 objs.sort(key=lambda x: x.channel_id)234 for obj in objs:235 obj.get_str()236 return objs237# 钻石产出238def get_dia_inc_objs_list(db, date, zone):239 query_data = DiaInc.objects.using(db).filter(date=date, zone=zone)240 objs = []241 for data in query_data:242 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount243 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)244 obj.get_str()245 objs.append(obj)246 objs.sort(key=lambda x: x.channel_id)247 return objs248def get_dia_inc_summary_objs_list(db, date):249 zone = 'summary'250 query_data = DiaInc.objects.using(db).filter(date=date)251 objs = []252 obj_dict = {}253 for data in query_data:254 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount255 if channel_id in obj_dict:256 obj = obj_dict[channel_id]257 obj.user_count += user_count258 obj.times_count += times_count259 obj.amount += amount260 else:261 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)262 objs.append(obj)263 obj_dict[channel_id] = obj264 objs.sort(key=lambda x: x.channel_id)265 for obj in objs:266 obj.get_str()267 return objs268# 钻石消耗269def get_dia_dec_objs_list(db, date, zone):270 query_data = DiaDec.objects.using(db).filter(date=date, zone=zone)271 objs = []272 for data in query_data:273 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount274 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)275 obj.get_str()276 objs.append(obj)277 objs.sort(key=lambda x: x.channel_id)278 return objs279def get_dia_dec_summary_objs_list(db, date):280 zone = 'summary'281 query_data = DiaDec.objects.using(db).filter(date=date)282 objs = []283 obj_dict = {}284 for data in query_data:285 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount286 if channel_id in obj_dict:287 obj = obj_dict[channel_id]288 obj.user_count += user_count289 obj.times_count += times_count290 obj.amount += amount291 else:292 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)293 objs.append(obj)294 obj_dict[channel_id] = obj295 objs.sort(key=lambda x: x.channel_id)296 for obj in objs:297 obj.get_str()298 return objs299# 魂产出300def get_karma_inc_objs_list(db, date, zone):301 query_data = KarmaInc.objects.using(db).filter(date=date, zone=zone)302 objs = []303 for data in query_data:304 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount305 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)306 obj.get_str()307 objs.append(obj)308 objs.sort(key=lambda x: x.channel_id)309 return objs310def get_karma_inc_summary_objs_list(db, date):311 zone = 'summary'312 query_data = KarmaInc.objects.using(db).filter(date=date)313 objs = []314 obj_dict = {}315 for data in query_data:316 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount317 if channel_id in obj_dict:318 obj = obj_dict[channel_id]319 obj.user_count += user_count320 obj.times_count += times_count321 obj.amount += amount322 else:323 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)324 objs.append(obj)325 obj_dict[channel_id] = obj326 objs.sort(key=lambda x: x.channel_id)327 for obj in objs:328 obj.get_str()329 return objs330# 魂消耗331def get_karma_dec_objs_list(db, date, zone):332 query_data = KarmaDec.objects.using(db).filter(date=date, zone=zone)333 objs = []334 for data in query_data:335 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount336 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)337 obj.get_str()338 objs.append(obj)339 objs.sort(key=lambda x: x.channel_id)340 return objs341def get_karma_dec_summary_objs_list(db, date):342 zone = 'summary'343 query_data = KarmaDec.objects.using(db).filter(date=date)344 objs = []345 obj_dict = {}346 for data in query_data:347 platform, channel_id, user_count, times_count, amount = data.platform, data.channel_id, data.user_count, data.times_count, data.amount348 if channel_id in obj_dict:349 obj = obj_dict[channel_id]350 obj.user_count += user_count351 obj.times_count += times_count352 obj.amount += amount353 else:354 obj = ResourceObject(date, platform, zone, channel_id, user_count, times_count, amount)355 objs.append(obj)356 obj_dict[channel_id] = obj357 objs.sort(key=lambda x: x.channel_id)358 for obj in objs:359 obj.get_str()360 return objs361# 卡牌进化362class CardObject(object):363 def __init__(self, date, zone, user_count, times_count):364 self.date = date365 self.zone = zone366 self.user_count = user_count367 self.times_count = times_count368 def get_str(self):369 self.date_str = _get_date_str(self.date)370 self.zone_str = settings.TABULATE_ZONE_NAME[self.zone]371 self.user_count_str = _get_str_by_int(self.user_count)372 self.times_count_str = _get_str_by_int(self.times_count)373def get_unit_evo_objs_list(db, date, zone):374 query_data = UnitEvo.objects.using(db).filter(date=date, zone=zone)375 objs = []376 for data in query_data:377 user_count, times_count = data.user_count, data.times_count378 obj = CardObject(date, zone, user_count, times_count)379 obj.get_str()380 objs.append(obj)381 return objs382def get_unit_evo_summary_objs_list(db, date):383 zone = 'summary'384 query_data = UnitEvo.objects.using(db).filter(date=date)385 objs = [CardObject(date, zone, 0, 0), ]386 for data in query_data:387 user_count, times_count = data.user_count, data.times_count388 obj = objs[0]389 obj.user_count += user_count390 obj.times_count += times_count391 for obj in objs:392 obj.get_str()393 return objs394# 卡牌强化395def get_unit_mix_objs_list(db, date, zone):396 query_data = UnitMix.objects.using(db).filter(date=date, zone=zone)397 objs = []398 for data in query_data:399 user_count, times_count = data.user_count, data.times_count400 obj = CardObject(date, zone, user_count, times_count)401 obj.get_str()402 objs.append(obj)403 return objs404def get_unit_mix_summary_objs_list(db, date):405 zone = 'summary'406 query_data = UnitMix.objects.using(db).filter(date=date)407 objs = [CardObject(date, zone, 0, 0), ]408 for data in query_data:409 user_count, times_count = data.user_count, data.times_count410 obj = objs[0]411 obj.user_count += user_count412 obj.times_count += times_count413 for obj in objs:414 obj.get_str()415 return objs416# 卡牌出售417def get_unit_sell_objs_list(db, date, zone):418 query_data = UnitSell.objects.using(db).filter(date=date, zone=zone)419 objs = []420 for data in query_data:421 user_count, times_count = data.user_count, data.times_count422 obj = CardObject(date, zone, user_count, times_count)423 obj.get_str()424 objs.append(obj)425 return objs426def get_unit_sell_summary_objs_list(db, date):427 zone = 'summary'428 query_data = UnitSell.objects.using(db).filter(date=date)429 objs = [CardObject(date, zone, 0, 0), ]430 for data in query_data:431 user_count, times_count = data.user_count, data.times_count432 obj = objs[0]433 obj.user_count += user_count434 obj.times_count += times_count435 for obj in objs:436 obj.get_str()437 return objs438# 建筑升级439class FacilityLvupObject(object):440 def __init__(self, date, zone, facility_id, user_count, times_count):441 self.date = date442 self.zone = zone443 self.facility_id = facility_id444 self.user_count = user_count445 self.times_count = times_count446 def get_str(self):447 self.date_str = _get_date_str(self.date)448 self.zone_str = settings.TABULATE_ZONE_NAME[self.zone]449 self.facility_id_str = settings.TABULATE_FACILITY_ID_NAME[self.facility_id]450 self.user_count_str = _get_str_by_int(self.user_count)451 self.times_count_str = _get_str_by_int(self.times_count)452def get_facility_lvup_objs_list(db, date, zone):453 query_data = FacilityLvup.objects.using(db).filter(date=date, zone=zone)454 objs = []455 for data in query_data:456 facility_id, user_count, times_count = data.facility_id, data.user_count, data.times_count457 obj = FacilityLvupObject(date, zone, facility_id, user_count, times_count)458 obj.get_str()459 objs.append(obj)460 objs.sort(key=lambda x: x.facility_id)461 return objs462def get_facility_lvup_summary_objs_list(db, date):463 zone = 'summary'464 query_data = FacilityLvup.objects.using(db).filter(date=date)465 objs = []466 obj_dict = {}467 for data in query_data:468 facility_id, user_count, times_count = data.facility_id, data.user_count, data.times_count469 if facility_id in obj_dict:470 obj = obj_dict[facility_id]471 obj.user_count += user_count472 obj.times_count += times_count473 else:474 obj = FacilityLvupObject(date, zone, facility_id, user_count, times_count)475 objs.append(obj)476 obj_dict[facility_id] = obj477 objs.sort(key=lambda x: x.facility_id)478 for obj in objs:479 obj.get_str()480 return objs481# 资源升级482class LocationLvupObject(object):483 def __init__(self, date, zone, location_id, user_count, times_count):484 self.date = date485 self.zone = zone486 self.location_id = location_id487 self.user_count = user_count488 self.times_count = times_count489 def get_str(self):490 self.date_str = _get_date_str(self.date)491 self.zone_str = settings.TABULATE_ZONE_NAME[self.zone]492 self.location_id_str = settings.TABULATE_LOCATION_ID_NAME[self.location_id]493 self.user_count_str = _get_str_by_int(self.user_count)494 self.times_count_str = _get_str_by_int(self.times_count)495def get_location_lvup_objs_list(db, date, zone):496 query_data = LocationLvup.objects.using(db).filter(date=date, zone=zone)497 objs = []498 for data in query_data:499 location_id, user_count, times_count = data.location_id, data.user_count, data.times_count500 obj = LocationLvupObject(date, zone, location_id, user_count, times_count)501 obj.get_str()502 objs.append(obj)503 objs.sort(key=lambda x: x.location_id)504 return objs505def get_location_lvup_summary_objs_list(db, date):506 zone = 'summary'507 query_data = LocationLvup.objects.using(db).filter(date=date)508 objs = []509 obj_dict = {}510 for data in query_data:511 location_id, user_count, times_count = data.location_id, data.user_count, data.times_count512 if location_id in obj_dict:513 obj = obj_dict[location_id]514 obj.user_count += user_count515 obj.times_count += times_count516 else:517 obj = LocationLvupObject(date, zone, location_id, user_count, times_count)518 objs.append(obj)519 obj_dict[location_id] = obj520 objs.sort(key=lambda x: x.location_id)521 for obj in objs:522 obj.get_str()523 return objs524# 竞技场挑战525class ArenaChallengeObject(object):526 def __init__(self, date, zone, result, user_count, times_count, point_count, karma_count):527 self.date = date528 self.zone = zone529 self.result = result530 self.user_count = user_count531 self.times_count = times_count532 self.point_count = point_count533 self.karma_count = karma_count534 def get_str(self):535 self.date_str = _get_date_str(self.date)536 self.zone_str = settings.TABULATE_ZONE_NAME[self.zone]537 self.result_str = settings.TABULATE_ARENA_CHALLENGE_RESULT_NAME[self.result]538 self.user_count_str = _get_str_by_int(self.user_count)539 self.times_count_str = _get_str_by_int(self.times_count)540 self.point_count_str = _get_str_by_int(self.point_count)541 self.karma_count_str = _get_str_by_int(self.karma_count)542def get_arena_challenge_objs_list(db, date, zone):543 query_data = ArenaChallenge.objects.using(db).filter(date=date, zone=zone)544 objs = []545 for data in query_data:546 result, user_count, times_count, point_count, karma_count = data.result, data.user_count, data.times_count, data.point_count, data.karma_count547 obj = ArenaChallengeObject(date, zone, result, user_count, times_count, point_count, karma_count)548 obj.get_str()549 objs.append(obj)550 objs.sort(key=lambda x: x.result)551 return objs552def get_arena_challenge_summary_objs_list(db, date):553 zone = 'summary'554 query_data = ArenaChallenge.objects.using(db).filter(date=date)555 objs = []556 obj_dict = {}557 for data in query_data:558 result, user_count, times_count, point_count, karma_count = data.result, data.user_count, data.times_count, data.point_count, data.karma_count559 if result in obj_dict:560 obj = obj_dict[result]561 obj.user_count += user_count562 obj.times_count += times_count563 obj.point_count += point_count564 obj.karma_count += karma_count565 else:566 obj = ArenaChallengeObject(date, zone, result, user_count, times_count, point_count, karma_count)567 objs.append(obj)568 obj_dict[result] = obj569 objs.sort(key=lambda x: x.result)570 for obj in objs:571 obj.get_str()572 return objs573# 帝都兰德尔-银钥匙574class DungeonKeyObject(object):575 def __init__(self, date, zone, do_type, user_count, times_count, key_count):576 self.date = date577 self.zone = zone578 self.do_type = do_type579 self.user_count = user_count580 self.times_count = times_count581 self.key_count = key_count582 def get_str(self):583 self.date_str = _get_date_str(self.date)584 self.zone_str = settings.TABULATE_ZONE_NAME[self.zone]585 self.do_type_str = settings.TABULATE_DUNGEON_KEY_DO_TYPE_NAME[self.do_type]586 self.user_count_str = _get_str_by_int(self.user_count)587 self.times_count_str = _get_str_by_int(self.times_count)588 self.key_count_str = _get_str_by_int(self.key_count)589def get_dungeon_sliver_key_objs_list(db, date, zone):590 query_data = DungeonKey.objects.using(db).filter(date=date, zone=zone, key_id=settings.TABULATE_DUNGEON_SLIVER_KEY_CODE)591 objs = []592 for data in query_data:593 do_type, user_count, times_count, key_count = data.do_type, data.user_count, data.times_count, data.key_count594 obj = DungeonKeyObject(date, zone, do_type, user_count, times_count, key_count)595 obj.get_str()596 objs.append(obj)597 objs.sort(key=lambda x: x.do_type)598 return objs599def get_dungeon_sliver_key_summary_objs_list(db, date):600 zone = 'summary'601 query_data = DungeonKey.objects.using(db).filter(date=date, key_id=settings.TABULATE_DUNGEON_SLIVER_KEY_CODE)602 objs = []603 obj_dict = {}604 for data in query_data:605 do_type, user_count, times_count, key_count = data.do_type, data.user_count, data.times_count, data.key_count606 if do_type in obj_dict:607 obj = obj_dict[do_type]608 obj.user_count += user_count609 obj.times_count += times_count610 obj.key_count += key_count611 else:612 obj = DungeonKeyObject(date, zone, do_type, user_count, times_count, key_count)613 objs.append(obj)614 obj_dict[do_type] = obj615 objs.sort(key=lambda x: x.do_type)616 for obj in objs:617 obj.get_str()618 return objs619# 帝都兰德尔-金钥匙620def get_dungeon_gold_key_objs_list(db, date, zone):621 query_data = DungeonKey.objects.using(db).filter(date=date, zone=zone, key_id=settings.TABULATE_DUNGEON_GOLD_KEY_CODE)622 objs = []623 for data in query_data:624 do_type, user_count, times_count, key_count = data.do_type, data.user_count, data.times_count, data.key_count625 obj = DungeonKeyObject(date, zone, do_type, user_count, times_count, key_count)626 obj.get_str()627 objs.append(obj)628 objs.sort(key=lambda x: x.do_type)629 return objs630def get_dungeon_gold_key_summary_objs_list(db, date):631 zone = 'summary'632 query_data = DungeonKey.objects.using(db).filter(date=date, key_id=settings.TABULATE_DUNGEON_GOLD_KEY_CODE)633 objs = []634 obj_dict = {}635 for data in query_data:636 do_type, user_count, times_count, key_count = data.do_type, data.user_count, data.times_count, data.key_count637 if do_type in obj_dict:638 obj = obj_dict[do_type]639 obj.user_count += user_count640 obj.times_count += times_count641 obj.key_count += key_count642 else:643 obj = DungeonKeyObject(date, zone, do_type, user_count, times_count, key_count)644 objs.append(obj)645 obj_dict[do_type] = obj646 objs.sort(key=lambda x: x.do_type)647 for obj in objs:648 obj.get_str()649 return objs650# 黑市刷新651class BmRefreshObject(object):652 def __init__(self, date, zone, money_type, amount, user_count, times_count):653 self.date = date654 self.zone = zone655 self.money_type = money_type656 self.amount = amount657 self.user_count = user_count658 self.times_count = times_count659 def get_str(self):660 self.date_str = _get_date_str(self.date)661 self.zone_str = settings.TABULATE_ZONE_NAME[self.zone]662 self.money_type_str = settings.TABULATE_BM_REFRESH_MONEY_TYPE_NAME[self.money_type]663 self.amount_str = _get_str_by_int(self.amount) 664 self.user_count_str = _get_str_by_int(self.user_count)665 self.times_count_str = _get_str_by_int(self.times_count)666def get_bm_refresh_objs_list(db, date, zone):667 query_data = BmRefresh.objects.using(db).filter(date=date, zone=zone)668 objs = []669 for data in query_data:670 money_type, amount, user_count, times_count = data.money_type, data.amount, data.user_count, data.times_count671 obj = BmRefreshObject(date, zone, money_type, amount, user_count, times_count)672 obj.get_str()673 objs.append(obj)674 objs.sort(key=lambda x: x.money_type)675 return objs676def get_bm_refresh_summary_objs_list(db, date):677 zone = 'summary'678 query_data = BmRefresh.objects.using(db).filter(date=date)679 objs = []680 obj_dict = {}681 for data in query_data:682 money_type, amount, user_count, times_count = data.money_type, data.amount, data.user_count, data.times_count683 if money_type in obj_dict:684 obj = obj_dict[money_type]685 obj.amount += amount686 obj.user_count += user_count687 obj.times_count += times_count688 else:689 obj = BmRefreshObject(date, zone, money_type, amount, user_count, times_count)690 objs.append(obj)691 obj_dict[money_type] = obj692 objs.sort(key=lambda x: x.money_type)693 for obj in objs:694 obj.get_str()695 return objs696# 黑市购买697class BmBuyObject(object):698 def __init__(self, date, zone, money_type, amount, user_count, times_count):699 self.date = date700 self.zone = zone701 self.money_type = money_type702 self.amount = amount703 self.user_count = user_count704 self.times_count = times_count705 def get_str(self):706 self.date_str = _get_date_str(self.date)707 self.zone_str = settings.TABULATE_ZONE_NAME[self.zone]708 self.money_type_str = settings.TABULATE_BM_BUY_MONEY_TYPE_NAME[self.money_type]709 self.amount_str = _get_str_by_int(self.amount) 710 self.user_count_str = _get_str_by_int(self.user_count)711 self.times_count_str = _get_str_by_int(self.times_count)712def get_bm_buy_objs_list(db, date, zone):713 query_data = BmBuy.objects.using(db).filter(date=date, zone=zone)714 objs = []715 for data in query_data:716 money_type, amount, user_count, times_count = data.money_type, data.amount, data.user_count, data.times_count717 obj = BmBuyObject(date, zone, money_type, amount, user_count, times_count)718 obj.get_str()719 objs.append(obj)720 objs.sort(key=lambda x: x.money_type)721 return objs722def get_bm_buy_summary_objs_list(db, date):723 zone = 'summary'724 query_data = BmBuy.objects.using(db).filter(date=date)725 objs = []726 obj_dict = {}727 for data in query_data:728 money_type, amount, user_count, times_count = data.money_type, data.amount, data.user_count, data.times_count729 if money_type in obj_dict:730 obj = obj_dict[money_type]731 obj.amount += amount732 obj.user_count += user_count733 obj.times_count += times_count734 else:735 obj = BmBuyObject(date, zone, money_type, amount, user_count, times_count)736 objs.append(obj)737 obj_dict[money_type] = obj738 objs.sort(key=lambda x: x.money_type)739 for obj in objs:740 obj.get_str()741 return objs742# 黑市物品购买情况743bm_goods_item_type_normal = {744 3: '金币', #zel745 11:'魂', #karma746 8: '钻石', #dia747 2: '友情点', #friend_p748}749bm_goods_item_type_special = {750 7:'item', #BRV_ITEM_MST751 6:'unit', #BRV_UNIT_MST752}753def _get_key(elist):754 key = ''755 for e in elist:756 key += str(e) + ':'757 return key[:-1]758class BmGoodsObject(object):759 def __init__(self, date, zone, item_type, item_id, user_count, times_count, amount):760 self.date = date761 self.zone = zone762 self.item_type = item_type763 self.item_id = item_id764 self.user_count = user_count765 self.times_count = times_count766 self.amount = amount767 768 self.goods_key = _get_key([item_type, item_id])769 self.goods_str = None770 def get_str(self):771 self.date_str = _get_date_str(self.date)772 self.zone_str = settings.TABULATE_ZONE_NAME[self.zone]773 self.user_count_str = _get_str_by_int(self.user_count)774 self.times_count_str = _get_str_by_int(self.times_count)775 self.amount_str = _get_str_by_int(self.amount) 776def get_bm_goods_objs_list(db, date, zone):777 query_data = BmGoods.objects.using(db).filter(date=date, zone=zone)778 bm_goods_item_type_special_db = str(zone) + '_brave_cn_common'779 item_cache = {}780 unit_cache = {}781 objs = []782 for data in query_data:783 item_type, item_id, user_count, times_count, amount = data.item_type, data.item_id, data.user_count, data.times_count, data.amount784 goods_key = _get_key([item_type, item_id])785 obj = BmGoodsObject(date, zone, item_type, item_id, user_count, times_count, amount)786 obj.get_str()787 if item_type in bm_goods_item_type_normal:788 obj.goods_str = bm_goods_item_type_normal[item_id]789 elif item_type in bm_goods_item_type_special:790 if item_type == 7:791 if not item_cache:792 cache_data = BrvItemMst.objects.using(bm_goods_item_type_special_db)793 for c_data in cache_data:794 item_cache[c_data.ITEM_ID] = c_data.ITEM_NAME795 obj.goods_str = item_cache[item_id] if item_id in item_cache else goods_key796 elif item_type ==6:797 if not unit_cache:798 cache_data = BrvUnitMst.objects.using(bm_goods_item_type_special_db)799 for c_data in cache_data:800 unit_cache[c_data.UNIT_ID] = c_data.UNIT_NAME801 obj.goods_str = unit_cache[item_id] if item_id in unit_cache else goods_key802 else:803 obj.goods_str = goods_key804 else:805 obj.goods_str = goods_key806 objs.append(obj)807 return objs808def get_bm_goods_summary_objs_list(db, date):809 zone = 'summary'810 query_data = BmGoods.objects.using(db).filter(date=date)811 item_cache_dict = {}812 unit_cache_dict = {}813 objs = []814 obj_dict = {}815 for data in query_data:816 item_type, item_id, user_count, times_count, amount = data.item_type, data.item_id, data.user_count, data.times_count, data.amount817 818 bm_goods_item_type_special_db = str(data.zone) + '_brave_cn_common'819 820 goods_key = _get_key([item_type, item_id])821 if goods_key in obj_dict:822 obj = obj_dict[goods_key]823 obj.user_count += user_count824 obj.times_count += times_count825 obj.amount += amount826 else:827 obj = BmGoodsObject(date, zone, item_type, item_id, user_count, times_count, amount)828 objs.append(obj)829 obj_dict[goods_key] = obj830 if item_type in bm_goods_item_type_normal:831 obj.goods_str = bm_goods_item_type_normal[item_id]832 elif item_type in bm_goods_item_type_special:833 if item_type == 7:834 if data.zone not in item_cache_dict:835 item_cache_dict[data.zone] = {}836 item_cache = item_cache_dict[data.zone]837 cache_data = BrvItemMst.objects.using(bm_goods_item_type_special_db)838 for c_data in cache_data:839 item_cache[c_data.ITEM_ID] = c_data.ITEM_NAME840 item_cache = item_cache_dict[data.zone]841 obj.goods_str = item_cache[item_id] if item_id in item_cache else goods_key842 elif item_type ==6:843 if data.zone not in unit_cache_dict:844 unit_cache_dict[data.zone] = {}845 unit_cache = unit_cache_dict[data.zone]846 cache_data = BrvUnitMst.objects.using(bm_goods_item_type_special_db)847 for c_data in cache_data:848 unit_cache[c_data.UNIT_ID] = c_data.UNIT_NAME849 unit_cache = unit_cache_dict[data.zone]850 obj.goods_str = unit_cache[item_id] if item_id in unit_cache else goods_key851 else:852 obj.goods_str = goods_key853 else:854 obj.goods_str = goods_key855 for obj in objs:856 obj.get_str()...

Full Screen

Full Screen

sort_projects.py

Source:sort_projects.py Github

copy

Full Screen

1import operator2projects = [{3 "name": "Apertium",4 "url": "http://www.ohloh.net/p/apertium.xml",5 "homepage_url": "http://www.apertium.org/",6 "user_count": "10",7 "average_rating": "5.0",8 "rating_count": "6",9 "review_count": "0"10},11{12 "name": "Etherpad Lite",13 "url": "http://www.ohloh.net/p/etherpad_lite.xml",14 "homepage_url": "http://etherpad.org",15 "user_count": "4",16 "average_rating": "5.0",17 "rating_count": "1",18 "review_count": "0"19},20{21 "name": "Etherpad Lite",22 "url": "http://www.ohloh.net/p/etherpad_lite.xml",23 "homepage_url": "http://etherpad.org",24 "user_count": "4",25 "average_rating": "5.0",26 "rating_count": "1",27 "review_count": "0"28},29{30 "name": "django-myerscms",31 "url": "http://www.ohloh.net/p/django-myerscms.xml",32 "homepage_url": "http://code.google.com/p/django-myerscms",33 "user_count": "0",34 "average_rating": "None",35 "rating_count": "0",36 "review_count": "0"37},38{39 "name": "ownCloud",40 "url": "http://www.ohloh.net/p/ownCloud.xml",41 "homepage_url": "http://ownCloud.org",42 "user_count": "28",43 "average_rating": "5.0",44 "rating_count": "5",45 "review_count": "0"46},47{48 "name": "Globus Toolkit",49 "url": "http://www.ohloh.net/p/6008.xml",50 "homepage_url": "http://www.globus.org",51 "user_count": "2",52 "average_rating": "3.0",53 "rating_count": "2",54 "review_count": "0"55},56{57 "name": "seafile",58 "url": "http://www.ohloh.net/p/seafile.xml",59 "homepage_url": "http://seafile.com",60 "user_count": "1",61 "average_rating": "5.0",62 "rating_count": "1",63 "review_count": "0"64},65{66 "name": "FlowPlayer",67 "url": "http://www.ohloh.net/p/flowplayer.xml",68 "homepage_url": "http://flowplayer.org",69 "user_count": "9",70 "average_rating": "4.25",71 "rating_count": "4",72 "review_count": "1"73},74{75 "name": "OpenNebula",76 "url": "http://www.ohloh.net/p/opennebula.xml",77 "homepage_url": "http://opennebula.org",78 "user_count": "14",79 "average_rating": "4.28571",80 "rating_count": "7",81 "review_count": "0"82},83{84 "name": "NoseRub",85 "url": "http://www.ohloh.net/p/NoseRub.xml",86 "homepage_url": "http://www.noserub.com",87 "user_count": "7",88 "average_rating": "4.75",89 "rating_count": "4",90 "review_count": "0"91},92{93 "name": "Gwibber",94 "url": "http://www.ohloh.net/p/gwibber.xml",95 "homepage_url": "https://launchpad.net/gwibber",96 "user_count": "35",97 "average_rating": "4.11111",98 "rating_count": "18",99 "review_count": "0"100},101{102},103{104 "name": "MediaWiki",105 "url": "http://www.ohloh.net/p/mediawiki.xml",106 "homepage_url": "http://www.mediawiki.org/",107 "user_count": "799",108 "average_rating": "4.2438",109 "rating_count": "242",110 "review_count": "4"111},112{113 "name": "iFolder",114 "url": "http://www.ohloh.net/p/8386.xml",115 "homepage_url": "http://www.ifolder.com",116 "user_count": "3",117 "average_rating": "None",118 "rating_count": "0",119 "review_count": "0"120},121{122 "name": "Piwigo",123 "url": "http://www.ohloh.net/p/piwigo.xml",124 "homepage_url": "http://piwigo.org",125 "user_count": "28",126 "average_rating": "4.9",127 "rating_count": "20",128 "review_count": "1"129},130{131 "name": "AppScale",132 "url": "http://www.ohloh.net/p/appscale.xml",133 "homepage_url": "http://appscale.cs.ucsb.edu/",134 "user_count": "4",135 "average_rating": "5.0",136 "rating_count": "1",137 "review_count": "0"138},139{140},141{142 "name": "DokuWiki",143 "url": "http://www.ohloh.net/p/dokuwiki.xml",144 "homepage_url": "http://www.dokuwiki.org/",145 "user_count": "205",146 "average_rating": "4.53488",147 "rating_count": "86",148 "review_count": "5"149},150{151 "name": "ocp-subsystems",152 "url": "http://www.ohloh.net/p/ocp-subsystems.xml",153 "homepage_url": "http://code.google.com/p/ocp-subsystems",154 "user_count": "0",155 "average_rating": "None",156 "rating_count": "0",157 "review_count": "0"158},159{160 "name": "MiniG",161 "url": "http://www.ohloh.net/p/12624.xml",162 "homepage_url": "http://minig.org/",163 "user_count": "56",164 "average_rating": "4.71429",165 "rating_count": "7",166 "review_count": "0"167},168{169 "name": "Open Journal Systems",170 "url": "http://www.ohloh.net/p/ojs2.xml",171 "homepage_url": "http://pkp.sfu.ca/ojs",172 "user_count": "6",173 "average_rating": "5.0",174 "rating_count": "2",175 "review_count": "0"176},177{178 "name": "Friendica",179 "url": "http://www.ohloh.net/p/friendica.xml",180 "homepage_url": "http://friendica.com/",181 "user_count": "9",182 "average_rating": "5.0",183 "rating_count": "3",184 "review_count": "0"185},186{187 "name": "TubePress",188 "url": "http://www.ohloh.net/p/tubepress.xml",189 "homepage_url": "http://tubepress.org",190 "user_count": "1",191 "average_rating": "5.0",192 "rating_count": "1",193 "review_count": "0"194},195{196 "name": "Zimbra Collaboration Suite",197 "url": "http://www.ohloh.net/p/zimbra.xml",198 "homepage_url": "http://www.zimbra.com/community/downloads.html",199 "user_count": "56",200 "average_rating": "3.95",201 "rating_count": "20",202 "review_count": "2"203},204{205 "name": "WordPress",206 "url": "http://www.ohloh.net/p/wordpress.xml",207 "homepage_url": "http://wordpress.org/",208 "user_count": "1528",209 "average_rating": "4.31718",210 "rating_count": "454",211 "review_count": "6"212},213{214 "name": "bbPress",215 "url": "http://www.ohloh.net/p/bbpress.xml",216 "homepage_url": "http://bbpress.org/",217 "user_count": "27",218 "average_rating": "4.3",219 "rating_count": "10",220 "review_count": "0"221},222{223 "name": "Gallery 2",224 "url": "http://www.ohloh.net/p/gallery.xml",225 "homepage_url": "http://gallery.menalto.com",226 "user_count": "147",227 "average_rating": "4.26",228 "rating_count": "50",229 "review_count": "4",230},231{232 "name": "Elgg",233 "url": "http://www.ohloh.net/p/elgg.xml",234 "homepage_url": "http://elgg.org/",235 "user_count": "37",236 "average_rating": "4.0",237 "rating_count": "11",238 "review_count": "2"239},240{241 "name": "Piwik",242 "url": "http://www.ohloh.net/p/piwik.xml",243 "homepage_url": "http://piwik.org",244 "user_count": "40",245 "average_rating": "4.58824",246 "rating_count": "17",247 "review_count": "0"248},249{250 "name": "Funambol Client for Mozilla Thunderbird",251 "url": "http://www.ohloh.net/p/funbird.xml",252 "homepage_url": "https://mozilla-plugin.forge.funambol.org/",253 "user_count": "926",254 "average_rating": "4.66667",255 "rating_count": "9",256 "review_count": "0"257},258{259 "name": "Funambol Client for Mozilla Thunderbird",260 "url": "http://www.ohloh.net/p/funbird.xml",261 "homepage_url": "https://mozilla-plugin.forge.funambol.org/",262 "user_count": "926",263 "average_rating": "4.66667",264 "rating_count": "9",265 "review_count": "0"266},267{268 "name": "Adium",269 "url": "http://www.ohloh.net/p/adium.xml",270 "homepage_url": "http://www.adium.im/",271 "user_count": "446",272 "average_rating": "4.45517",273 "rating_count": "145",274 "review_count": "2"275},276{277 "name": "Phorum",278 "url": "http://www.ohloh.net/p/phorum.xml",279 "homepage_url": "http://www.phorum.org",280 "user_count": "8",281 "average_rating": "4.85714",282 "rating_count": "7",283 "review_count": "0"284},285{286 "name": "phpBB",287 "url": "http://www.ohloh.net/p/phpbb.xml",288 "homepage_url": "http://www.phpbb.com/",289 "user_count": "879",290 "average_rating": "4.1694",291 "rating_count": "182",292 "review_count": "4"293},294{295 "name": "Mailman",296 "url": "http://www.ohloh.net/p/mailman.xml",297 "homepage_url": "http://www.list.org",298 "user_count": "205",299 "average_rating": "3.625",300 "rating_count": "48",301 "review_count": "0"302},303{304 "name": "Eucalyptus",305 "url": "http://www.ohloh.net/p/eucalyptus.xml",306 "homepage_url": "http://www.eucalyptus.com",307 "user_count": "18",308 "average_rating": "4.33333",309 "rating_count": "9",310 "review_count": "0"311},312{313 "name": "Vanilla Forums",314 "url": "http://www.ohloh.net/p/vanillaforums.xml",315 "homepage_url": "http://vanillaforums.org/",316 "user_count": "21",317 "average_rating": "3.92857",318 "rating_count": "14",319 "review_count": "2"320},321{322 "name": "FluxBB",323 "url": "http://www.ohloh.net/p/FluxBB.xml",324 "homepage_url": "http://fluxbb.org",325 "user_count": "16",326 "average_rating": "4.71429",327 "rating_count": "14",328 "review_count": "0"329},330{331 "name": "StatusNet",332 "url": "http://www.ohloh.net/p/statusnet.xml",333 "homepage_url": "http://status.net",334 "user_count": "36",335 "average_rating": "4.63636",336 "rating_count": "22",337 "review_count": "0"338},339{340 "name": "Roundcube Webmail",341 "url": "http://www.ohloh.net/p/roundcube.xml",342 "homepage_url": "http://www.roundcube.net",343 "user_count": "214",344 "average_rating": "4.32353",345 "rating_count": "68",346 "review_count": "4"347},348{349},350{351 "name": "Plumi",352 "url": "http://www.ohloh.net/p/plumi.xml",353 "homepage_url": "http://www.plumi.org",354 "user_count": "5",355 "average_rating": "4.6",356 "rating_count": "5",357 "review_count": "0"358},359{360 "name": "Twitter/identi.ca micro-blogging bot",361 "url": "http://www.ohloh.net/p/mb-chatbot.xml",362 "homepage_url": "http://sourceforge.net/projects/mb-chatbot/",363 "user_count": "0",364 "average_rating": "None",365 "rating_count": "0",366 "review_count": "0"367},368{369 "name": "libre.fm",370 "url": "http://www.ohloh.net/p/librefm.xml",371 "homepage_url": "http://libre.fm",372 "user_count": "15",373 "average_rating": "4.0",374 "rating_count": "8",375 "review_count": "0"376},377{378 "name": "OpenLayers",379 "url": "http://www.ohloh.net/p/openlayers.xml",380 "homepage_url": "http://openlayers.org/",381 "user_count": "147",382 "average_rating": "4.7",383 "rating_count": "50",384 "review_count": "2"385},386{387 "name": "phpGroupWare",388 "url": "http://www.ohloh.net/p/phpgroupware.xml",389 "homepage_url": "http://phpgroupware.org",390 "user_count": "5",391 "average_rating": "2.0",392 "rating_count": "4",393 "review_count": "0"394},395{396 "name": "Feng Office",397 "url": "http://www.ohloh.net/p/fengoffice.xml",398 "homepage_url": "http://www.opengoo.org/",399 "user_count": "16",400 "average_rating": "4.08333",401 "rating_count": "12",402 "review_count": "1"403},404{405 "name": "SquirrelMail",406 "url": "http://www.ohloh.net/p/squirrelmail.xml",407 "homepage_url": "http://squirrelmail.org",408 "user_count": "134",409 "average_rating": "3.72727",410 "rating_count": "33",411 "review_count": "3"412},413{414},415{416},417{418 "name": "LimeSurvey",419 "url": "http://www.ohloh.net/p/limesurvey.xml",420 "homepage_url": "http://www.limesurvey.org",421 "user_count": "36",422 "average_rating": "4.0",423 "rating_count": "16",424 "review_count": "0"425},426{427 "name": "Cheetah News",428 "url": "http://www.ohloh.net/p/cheetah-news.xml",429 "homepage_url": "http://www.cheetah-news.com/",430 "user_count": "2",431 "average_rating": "None",432 "rating_count": "0",433 "review_count": "0"434},435{436 "name": "surforce-meneame",437 "url": "http://www.ohloh.net/p/surforce-meneame.xml",438 "homepage_url": "http://code.google.com/p/surforce-meneame",439 "user_count": "0",440 "average_rating": "None",441 "rating_count": "0",442 "review_count": "0"443},444{445 "name": "Vote Up/Down",446 "url": "http://www.ohloh.net/p/vote_up_down.xml",447 "homepage_url": "http://drupal.org/project/vote_up_down",448 "user_count": "5",449 "average_rating": "3.0",450 "rating_count": "1",451 "review_count": "0"452},453{454},455{456 "name": "Diaspora",457 "url": "http://www.ohloh.net/p/diaspora.xml",458 "homepage_url": "http://joindiaspora.com/",459 "user_count": "25",460 "average_rating": "4.25",461 "rating_count": "8",462 "review_count": "0"463},464{465 "name": "SemanticScuttle",466 "url": "http://www.ohloh.net/p/semanticscuttle.xml",467 "homepage_url": "http://semanticscuttle.sourceforge.net/",468 "user_count": "4",469 "average_rating": "5.0",470 "rating_count": "1",471 "review_count": "0"472},473{474 "name": "Rubric",475 "url": "http://www.ohloh.net/p/8244.xml",476 "homepage_url": "http://search.cpan.org/dist/Rubric/",477 "user_count": "2",478 "average_rating": "4.0",479 "rating_count": "1",480 "review_count": "0"481},482{483 "name": "Connotea",484 "url": "http://www.ohloh.net/p/5107.xml",485 "homepage_url": "http://www.connotea.org/",486 "user_count": "1",487 "average_rating": "3.0",488 "rating_count": "1",489 "review_count": "0"490},491{492 "name": "ShiftSpace",493 "url": "http://www.ohloh.net/p/shiftspace.xml",494 "homepage_url": "http://www.ShiftSpace.org",495 "user_count": "4",496 "average_rating": "5.0",497 "rating_count": "2",498 "review_count": "0"499},500{501},502{503 "name": "Drupal (contributions)",504 "url": "http://www.ohloh.net/p/drupal-contributions.xml",505 "homepage_url": "http://drupal.org/",506 "user_count": "314",507 "average_rating": "4.31313",508 "rating_count": "99",509 "review_count": "4"510},511{512 "name": "twitterizer",513 "url": "http://www.ohloh.net/p/twitterizer.xml",514 "homepage_url": "http://www.twitterizer.net/",515 "user_count": "79",516 "average_rating": "4.7",517 "rating_count": "10",518 "review_count": "1"519},520{521 "name": "Tiki Wiki CMS Groupware",522 "url": "http://www.ohloh.net/p/tikiwiki.xml",523 "homepage_url": "http://tiki.org",524 "user_count": "140",525 "average_rating": "4.36364",526 "rating_count": "66",527 "review_count": "11"528},529{530},531{532 "name": "eyeOS",533 "url": "http://www.ohloh.net/p/eyeos.xml",534 "homepage_url": "http://www.eyeos.org",535 "user_count": "24",536 "average_rating": "4.71429",537 "rating_count": "14",538 "review_count": "1"539},540{541 "name": "croqodile",542 "url": "http://www.ohloh.net/p/croqodile.xml",543 "homepage_url": "http://code.google.com/p/croqodile",544 "user_count": "0",545 "average_rating": "None",546 "rating_count": "0",547 "review_count": "0"548},549{550 "name": "OpenSimulator",551 "url": "http://www.ohloh.net/p/opensimulator.xml",552 "homepage_url": "http://www.opensimulator.org/",553 "user_count": "55",554 "average_rating": "4.71429",555 "rating_count": "21",556 "review_count": "0"557}]558print "Projects:", len(projects)559prMap = {}560for p in projects:561 if 'name' in p:562 prMap[p['name']] = int(p['user_count'])563 564sortedPrj = sorted(prMap.iteritems(), key=operator.itemgetter(1))565sortedPrj.reverse()566cnt=1567for p in sortedPrj:568 print cnt, p...

Full Screen

Full Screen

csv_chat.py

Source:csv_chat.py Github

copy

Full Screen

1from collections import UserList2from pprint import pprint3from django.core.management.base import BaseCommand4from commands.models import user_details5from .functions_file.function_msg import *6import pandas as pd 7class Command(BaseCommand):8 help = 'send message as per csv'9 def add_arguments(self, parser):10 parser.add_argument('group',type=str,help = 'Group name')11 12 def handle(self,*args, **kwargs):13 group = kwargs['group']14 data = user_details.objects.all()15 data = [[i.number,i.api_id,i.api_hash] for i in data]16 data_length = len(data)17 chat = pd.read_csv('chat.csv')18 username = chat['Username']19 conversation = chat['Dialogue']20 chat_zip = zip(username,conversation)21 user_count = 022 dict = {}23 banned = False24 username_list = []25 banned = False26 for i in username:27 if not isinstance(i,float):28 i = i.replace(' ','')29 if i != '':30 if not i in username_list:31 username_list.append(i)32 if data_length < len(username_list):33 print('There is not enough user in Data base as required users to start this chat')34 else:35 for i in username_list:36 if not i in dict :37 user_cred = True38 while user_cred == True:39 banned = user_banned(data[user_count][0],data[user_count][1],data[user_count][2])40 if data_length <= user_count:41 print('not enough user')42 user_cred = False43 else:44 if not banned:45 dict [i] = {46 'number' : data[user_count][0],47 'apiid' : data[user_count][1],48 'apihash' : data[user_count][2]49 }50 print(user_count)51 user_cred = False52 user_count +=153 print(dict)54 55 if len(username_list) > len(dict):56 print('There is not enough users in database to send messages')57 else: 58 print(username_list)59 for i,ia in chat_zip:60 if isinstance(i,str):61 i = i.replace(' ','')62 if not i in dict:63 dict [i] = {64 'number' : data[user_count][0],65 'apiid' : data[user_count][1],66 'apihash' : data[user_count][2]67 }68 user_count +=169 70 number = dict[i]['number']71 id = dict[i]['apiid']72 hash = dict[i]['apihash'] 73 if number and id and hash:74 # client = TelegramClient(f'./sessions/{number}',id,hash)75 banned = user_banned(number,id,hash)76 if banned:77 dict[i] = {78 'number' : data[user_count][0],79 'apiid' : data[user_count][1],80 'apihash' : data[user_count][2]81 }82 user_count +=183 banned = False84 script_chat(i,number,id,hash,ia,group)85 pprint(dict)...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run locust automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful