Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
    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
Ejemplo n.º 5
0
    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))
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
    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
Ejemplo n.º 9
0
    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
Ejemplo n.º 10
0
    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
Ejemplo n.º 11
0
    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
Ejemplo n.º 12
0
 def slughifi(self, value):
     return slughifi(value)
Ejemplo n.º 13
0
    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
        ))
Ejemplo n.º 14
0
 def slughifi(self, value):
     return slughifi(value)
Ejemplo n.º 15
0
    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))
Ejemplo n.º 16
0
    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