def add_item(self, iid): if self.has_item(str(iid)): return False if len(self) >= settings.MAX_WISHLIST_SIZE: return False items = self.items items.append(str(iid)) self.item = ",".join(items) self.save() car = Car.objects.get_by_id(iid) self.engine.notify.add(user=self.user, type="wishlist", key="add_item", date="today") self.engine.notify.add( user=self.user, type="wishlist", key="add_item", date=None, stream="%s|%s" % ( reverse("encyclopedia_car", args=[slughifi(car.manuf), slughifi(car.name), str(car.id)]), car.display_short_name(), ), ) return True
def stick_item(self, item_id): if self.item.stick_card(item_id): self.engine.user.get_garage().remove_car(item_id) self.engine.user.profile.cars = len(self.engine.user.garage) self.engine.user.profile.save() car = Car.objects.get_by_id(item_id) self.engine.notify.add(user=self.engine.user.user, type='album', key='stick', date='today') self.engine.notify.add(user=self.engine.user.user, type='album', key='stick', date=None, stream='%s|%s|%s|%s' % ( reverse('encyclopedia_car', args=[slughifi(car.manuf), slughifi(car.name), str(car.id)]), car.display_short_name(), reverse('encyclopedia_album', args=[slughifi(self.item.album.name), self.item.id]), self.item.album.name )) if self.item.left == 0: prev_exp, prev_lvl = self.engine.user.profile.exp, self.engine.user.profile.level self.engine.user.profile.earn('exp', self.item.album.exp, engine=self.engine) self.engine.user.refresh_profile() self.engine.notify.add(user=self.engine.user.user, type='album', key='completed', date='today') self.engine.notify.add(user=self.engine.user.user, type='album', key='completed', date=None, stream='%s|%s' % ( reverse('encyclopedia_album', args=[slughifi(self.item.album.name), self.item.id]), str(self.item.album.name) )) self.engine.log.message(message="<p>EXP +%d</p>" % self.item.album.exp)
def remove_item(self, iid): if not self.has_item(str(iid)): return False items = self.items del items[items.index(str(iid))] self.item = ','.join(items) self.save() car = Car.objects.get_by_id(iid) self.engine.notify.add(user=self.user, type='wishlist', key='remove_item', date='today') self.engine.notify.add(user=self.user, type='wishlist', key='remove_item', date=None, stream='%s|%s' % ( reverse('encyclopedia_car', args=[slughifi(car.manuf), slughifi(car.name), str(car.id)]), car.display_short_name())) return True
def add_item(self, iid): if self.has_item(str(iid)): return False if len(self) >= settings.MAX_WISHLIST_SIZE: return False items = self.items items.append(str(iid)) self.item = ','.join(items) self.save() car = Car.objects.get_by_id(iid) self.engine.notify.add(user=self.user, type='wishlist', key='add_item', date='today') self.engine.notify.add(user=self.user, type='wishlist', key='add_item', date=None, stream='%s|%s' % ( reverse('encyclopedia_car', args=[slughifi(car.manuf), slughifi(car.name), str(car.id)]), car.display_short_name())) return True
def buy(self, album_id): album = AlbumModel.objects.get_by_id(album_id) if not album: return if album.min_lvl > self.engine.user.profile.level: self.engine.log.message(message="Your're not experienced enough!") return if album.price > self.engine.user.profile.cash: self.engine.log.message(message="Not enough cash!") return if album.id in [x.album.id for x in self.list]: self.engine.log.message(message="You already have this album!") return ua = UserAlbum() ua.user = self.engine.user.user ua.album = album ua.left = len(album.cars) ua.total = ua.left ua.save() self.engine.user.profile.spend('cash', album.price) self.engine.user.refresh_profile() self.engine.notify.add(user=self.engine.user.user, type='album', key='buy', date='today') self.engine.notify.add(user=self.engine.user.user, type='album', key='buy', date=None, stream='%s|%s' % ( reverse('encyclopedia_album', args=[slughifi(album.name), album.id]), str(album.name) )) if album.price == 0: self.engine.log.message(message="Got %s" % album.name) else: self.engine.log.message(message="Bought %s for $%d" % (album.name, album.price))
def add_car(self, cid): if len(self.car) > 0: cars = json.loads(self.car) else: cars = {} if cars.has_key(str(cid)): cars[str(cid)] += 1 else: cars[str(cid)] = 1 self.car = json.dumps(cars) self.save() c = Car.objects.get_by_id(cid) if self.engine: self.engine.notify.add(user=self.user, type='garage', key='cars_add', date='today') self.engine.notify.add(user=self.user, type='garage', key='cars', date=None, stream='%s|%s' % ( reverse('encyclopedia_car', args=[slughifi(c.manuf), slughifi(c.name), str(c.id)]), c.display_short_name())) self.engine.notify.add(user=self.user, type='car_manuf', key=c.manuf, date=None) self.engine.notify.add(user=self.user, type='car_country', key=c.country, date=None) self.engine.notify.add(user=self.user, type='car_tier', key=c.tier, date=None) self.engine.notify.add(user=self.user, type='car_manuf', key=c.manuf, date=None) self.engine.notify.add(user=self.user, type='car_country', key=c.country, date=None) self.engine.notify.add(user=self.user, type='car_tier', key=c.tier, date=None) self.engine.notify.add(user=self.user, type='car_id', key=c.id, date=None) if c.year > 0: year = (c.year / 10) * 10 if self.engine: self.engine.notify.add(user=self.user, type='car_year', key=year, date=None) if c.power_bhp > 0: bhp = (c.power_bhp / 100) * 100 if self.engine: self.engine.notify.add(user=self.user, type='car_bhp', key=str(int(bhp)), date=None) # if c.sprint_0_100 > 0: # self.engine.notify.add(user=self.user, type='car_sprint', key=str(int(c.sprint_0_100)), date=None) if c.top_speed > 0: speed = (c.top_speed / 10) * 10 if self.engine: self.engine.notify.add(user=self.user, type='car_speed', key=str(int(speed)), date=None) if c.weight > 0: weight = (c.weight / 100) * 100 if self.engine: self.engine.notify.add(user=self.user, type='car_weight', key=str(int(weight)), date=None) return True
def get_manuf_list(self): cars = cache.get('manuf_list') if cars is not None: return cars cars = [[manuf, slughifi(manuf)] for manuf in self.filter(is_active=True, is_active_in_battle=True, in_battle=True).values_list('manuf', flat=True).order_by( 'manuf').distinct()] cache.set('manuf_list', cars) return cars
def get_manuf_dict(self): cars = cache.get('manuf_dict') if cars is not None: return cars cars = {} [cars.update({slughifi(manuf): manuf}) for manuf in self.filter(is_active=True, is_active_in_battle=True, in_battle=True).values_list('manuf', flat=True).distinct()] cache.set('manuf_dict', cars) return cars
def remove_item(self, iid): if not self.has_item(str(iid)): return False items = self.items del items[items.index(str(iid))] self.item = ",".join(items) self.save() car = Car.objects.get_by_id(iid) self.engine.notify.add(user=self.user, type="wishlist", key="remove_item", date="today") self.engine.notify.add( user=self.user, type="wishlist", key="remove_item", date=None, stream="%s|%s" % ( reverse("encyclopedia_car", args=[slughifi(car.manuf), slughifi(car.name), str(car.id)]), car.display_short_name(), ), ) return True
def add_friend(self, uid): if self.has_in_friends(uid): return False friends = self.friends friends.append(uid) self.friend = ','.join(friends) self.save() profile = UserProfile.objects.get_by_id(uid) if hasattr(self, 'engine'): self.engine.notify.add(user=self.user, type='friend', key='add_friend', date='today') self.engine.notify.add(user=self.user, type='friend', key='add_friend', date=None, stream='%s|%s' % ( reverse('profile', args=[slughifi(str(profile))]), str(profile) )) return True
def add_friend(self, uid): if self.has_in_friends(uid): return False friends = self.friends friends.append(uid) self.friend = ','.join(friends) self.save() profile = UserProfile.objects.get_by_id(uid) if hasattr(self, 'engine'): self.engine.notify.add(user=self.user, type='friend', key='add_friend', date='today') self.engine.notify.add( user=self.user, type='friend', key='add_friend', date=None, stream='%s|%s' % (reverse( 'profile', args=[slughifi(str(profile))]), str(profile))) return True
def slughifi(self, value): return slughifi(value)
def handle_noargs(self, **options): from userprofile.models import UserProfile from common.models import Car from album.models import Album from engine.engine import Engine from common.models import DummyRequest from django.core.urlresolvers import reverse from common.helpers.slughifi import slughifi profile = UserProfile.objects.get_by_id('1') engine = Engine(DummyRequest('1')) engine.start() # --- Save Achievements for key, achieves in engine.achieve.achievements.iteritems(): type, key = key.split(',') for achieve in achieves: print type, key, achieve achieve.save(type, key) # --- Save avatars # from shutil import copyfile # for p in UserProfile.objects.all(): # path = settings.MEDIA_ROOT + 'avatars/' + str(p.user.id / 1000) # if not os.path.isdir(path): # os.makedirs(path) # copyfile(settings.MEDIA_ROOT + 'avatars/0.jpg', path + '/' + str(p.user.id) + '.jpg') # --- Set up domain for p in UserProfile.objects.all(): if p.domain != '': continue if p.partner == 'fb': p.domain = 'http://apps.facebook.com/car_battle/' else: p.domain = 'http://www.car-battle.com/' p.save() # --- # MSG all from msg.models import Msg txt = "hi, just want to let you know that we rolled out few new features like, if you need assistance just msg me" for p in UserProfile.objects.all()[1:]: Msg.send.send_to(profile.user, p.user, '@%s %s' % (p.username, txt)) return # --- album = Album.objects.get(pk=1) car = Car.objects.get_by_id(16333) # engine.notify.add(user=profile.user, type='album', key='buy', date=None, stream='Nazwa albumu') engine.notify.add(user=profile.user, type='album', key='stick', date=None, stream='%s|%s|%s|%s' % ( reverse('encyclopedia_car', args=[slughifi(car.manuf), slughifi(car.name), str(car.id)]), car.display_short_name(), reverse('encyclopedia_album', args=[slughifi(album.name), album.id]), album.name ))
def handle_noargs(self, **options): from userprofile.models import UserProfile from common.models import Car from album.models import Album from engine.engine import Engine from common.models import DummyRequest from django.core.urlresolvers import reverse from common.helpers.slughifi import slughifi profile = UserProfile.objects.get_by_id('1') engine = Engine(DummyRequest('1')) engine.start() # --- Save Achievements for key, achieves in engine.achieve.achievements.iteritems(): type, key = key.split(',') for achieve in achieves: print type, key, achieve achieve.save(type, key) # --- Save avatars # from shutil import copyfile # for p in UserProfile.objects.all(): # path = settings.MEDIA_ROOT + 'avatars/' + str(p.user.id / 1000) # if not os.path.isdir(path): # os.makedirs(path) # copyfile(settings.MEDIA_ROOT + 'avatars/0.jpg', path + '/' + str(p.user.id) + '.jpg') # --- Set up domain for p in UserProfile.objects.all(): if p.domain != '': continue if p.partner == 'fb': p.domain = 'http://apps.facebook.com/car_battle/' else: p.domain = 'http://www.car-battle.com/' p.save() # --- # MSG all from msg.models import Msg txt = "hi, just want to let you know that we rolled out few new features like, if you need assistance just msg me" for p in UserProfile.objects.all()[1:]: Msg.send.send_to(profile.user, p.user, '@%s %s' % (p.username, txt)) return # --- album = Album.objects.get(pk=1) car = Car.objects.get_by_id(16333) # engine.notify.add(user=profile.user, type='album', key='buy', date=None, stream='Nazwa albumu') engine.notify.add( user=profile.user, type='album', key='stick', date=None, stream='%s|%s|%s|%s' % (reverse( 'encyclopedia_car', args=[slughifi(car.manuf), slughifi(car.name), str(car.id)]), car.display_short_name(), reverse('encyclopedia_album', args=[slughifi(album.name), album.id]), album.name))
def add_car(self, cid): if len(self.car) > 0: cars = json.loads(self.car) else: cars = {} if cars.has_key(str(cid)): cars[str(cid)] += 1 else: cars[str(cid)] = 1 self.car = json.dumps(cars) self.save() c = Car.objects.get_by_id(cid) if self.engine: self.engine.notify.add(user=self.user, type='garage', key='cars_add', date='today') self.engine.notify.add( user=self.user, type='garage', key='cars', date=None, stream='%s|%s' % (reverse('encyclopedia_car', args=[slughifi(c.manuf), slughifi(c.name), str(c.id)]), c.display_short_name())) self.engine.notify.add(user=self.user, type='car_manuf', key=c.manuf, date=None) self.engine.notify.add(user=self.user, type='car_country', key=c.country, date=None) self.engine.notify.add(user=self.user, type='car_tier', key=c.tier, date=None) self.engine.notify.add(user=self.user, type='car_manuf', key=c.manuf, date=None) self.engine.notify.add(user=self.user, type='car_country', key=c.country, date=None) self.engine.notify.add(user=self.user, type='car_tier', key=c.tier, date=None) self.engine.notify.add(user=self.user, type='car_id', key=c.id, date=None) if c.year > 0: year = (c.year / 10) * 10 if self.engine: self.engine.notify.add(user=self.user, type='car_year', key=year, date=None) if c.power_bhp > 0: bhp = (c.power_bhp / 100) * 100 if self.engine: self.engine.notify.add(user=self.user, type='car_bhp', key=str(int(bhp)), date=None) # if c.sprint_0_100 > 0: # self.engine.notify.add(user=self.user, type='car_sprint', key=str(int(c.sprint_0_100)), date=None) if c.top_speed > 0: speed = (c.top_speed / 10) * 10 if self.engine: self.engine.notify.add(user=self.user, type='car_speed', key=str(int(speed)), date=None) if c.weight > 0: weight = (c.weight / 100) * 100 if self.engine: self.engine.notify.add(user=self.user, type='car_weight', key=str(int(weight)), date=None) return True