Example #1
0
    def getSpells(self, params, spells_on_page=20, search={}, sort={}, total_pages=0):
        page = 1
        if 'ps' in params:
            try:
                page = int(params['ps'])
            except Exception:
                pass

        if page > total_pages:
            page = 1

        spells = self.model.spells.getAllSellingCraftedPatterns(limit=spells_on_page, skip=(page - 1) * spells_on_page,
                                                                query=search, sort_query=sort)

        if self.cur_player:
            _spells = self.model.spells.getPlayerSpells(self.cur_player['login_id'])
            player_spells = Set()
            for _spell in _spells:
                player_spells.add(_spell['name'])

        authors_ids = Set()
        spells_ids = Set()

        for spell in spells:
            authors_ids.add(spell['author'])
            spells_ids.add(spell['_id'])

        players_names = self.model.players.getPlayersList(authors_ids, ['_id', 'name'])
        spell_likes = self.getLikesDict(spells_ids)

        for spell in spells:
            spell['already_have'] = self.cur_player and spell['name'] in player_spells

            for player in players_names:
                if player['_id'] == spell['author']:
                    spell['author_name'] = player['name']

            spell['img'] += '_fit.png'
            if "spell_actions" in spell:
                for action in spell["spell_actions"]:

                    if action["effect"].upper() in self.sbuilder.balance.stats_name:
                        stat = action["effect"].upper()
                    else:
                        stat = action["effect"].lower()

                    action.update({
                    "stat_name": self.sbuilder.balance.stats_name[stat]
                    })

            spell.update({
            "share_img": spell["img"][3:],
            })

            spell.update(self.getLike(spell_likes, spell['_id']))
            spell.update({
            'create_date_f': getReadbleTime(spell['create_time'])
            })

        return spells
Example #2
0
    def getPlayersItems(self, params, items_on_page=20, search={}, sort={}, total_pages=0):
        if self.cur_player:
            str_class = str(self.cur_player['login_class'])
        else:
            str_class = False

        page = 1

        if 'pi' in params:
            try:
                page = int(params['pi'])
            except Exception:
                pass

        if page > total_pages:
            page = 1

        players_items = self.model.items.getAllSellingCraftedItems(limit=items_on_page, skip=(page - 1) * items_on_page,
                                                                   query=search, sort_query=sort)

        authors_ids = Set()
        items_ids = Set()

        for item in players_items:
            authors_ids.add(item['author'])
            items_ids.add(item['_id'])

        players_names = self.model.players.getPlayersList(authors_ids, ['_id', 'name'])
        item_likes = self.getLikesDict(items_ids)

        for item in players_items:

            if item['type'] == 1 and str_class:
                if not item['view'] in self.sbuilder.balance.available_weapons[str_class]:
                    item['cant_use'] = True

            for player in players_names:
                if player['_id'] == item['author']:
                    item['author_name'] = player['name']
                    break

            item['img'] = '/' + item['img'] + '_fit.png'

            item.update(prettyItemBonus(item, self.balance.stats_name))
            if "stat_parsed" in item:
                item.update({"bonus_parsed": json.dumps(item['stat_parsed'])})

            if "img" in item:
                item.update({"share_img": item["img"][3:]})

            item.update(self.getLike(item_likes, item['_id']))
            item.update({
            'create_date_f': getReadbleTime(item['create_time'])
            })

        return players_items
Example #3
0
    def getArtworks(self,
                    params,
                    artworks_on_page=20,
                    search={},
                    total_pages=0):
        page = 1
        if 'pa' in params:
            try:
                page = int(params['pa'])
            except Exception:
                pass

        if page > total_pages:
            page = 1

        verified = True
        if self.cur_player and 'login_admin' in self.cur_player and self.cur_player[
                'login_admin']:
            verified = 'nm'

        artworks = self.model.misc.getAllArtworks(
            limit=artworks_on_page,
            skip=(page - 1) * artworks_on_page,
            approved=True,
            search=search,
            sort_query={'approve.time': -1},
            verified=verified)

        items_ids = Set()
        for artwork in artworks:
            items_ids.add(artwork['_id'])

        item_likes = self.getLikesDict(items_ids)

        for artwork in artworks:
            artwork.update(self.getLike(item_likes, artwork['_id']))
            artwork.update(
                {'create_date_f': getReadbleTime(artwork['create_time'])})

        return miscController.formatArtworks(self, artworks)
Example #4
0
	def printNewsPage(self, fields, params):

		guild = self.model.guilds.getPlayersGuild(self.cur_player['login_id'])

		if not guild:
			return self.sbuilder.throwWebError(404)

		fields.update({self.title: 'News page'})
		fields.update(guild)

		if not 'id' in params:
			return self.sbuilder.redirect('/guilds/'+guild['link_name'])

		news = self.model.guilds.getGuildNews(guild['_id'])['news']

		try:
			news_UID = int(params['id'])
		except Exception:
			news_UID = 0

		if news_UID != 0:
			for story in news:
				if story['UID'] == news_UID:
					fields.update({'story': story})
					break
			else:
				news_UID = 0

		if 'story' in fields:
			fields['story'].update({
				'create_date_f': getReadbleTime(fields['story']['create_date']),
			    'img': self.core.GUILDS_AVATAR_FOLDER+guild['img']
			})

		if not news_UID:
			return self.sbuilder.redirect('/guilds/'+guild['link_name'])

		return basic.defaultController._printTemplate(self, 'news_page', fields)
Example #5
0
    def getArtworks(self, params, artworks_on_page=20, search={}, total_pages=0):
        page = 1
        if 'pa' in params:
            try:
                page = int(params['pa'])
            except Exception:
                pass

        if page > total_pages:
            page = 1

        verified = True
        if self.cur_player and 'login_admin' in self.cur_player and self.cur_player['login_admin']:
            verified = 'nm'

        artworks = self.model.misc.getAllArtworks(
            limit=artworks_on_page,
            skip=(page - 1) * artworks_on_page,
            approved=True,
            search=search,
            sort_query={'approve.time': -1},
            verified=verified
        )

        items_ids = Set()
        for artwork in artworks:
            items_ids.add(artwork['_id'])

        item_likes = self.getLikesDict(items_ids)

        for artwork in artworks:
            artwork.update(self.getLike(item_likes, artwork['_id']))
            artwork.update({
            'create_date_f': getReadbleTime(artwork['create_time'])
            })

        return miscController.formatArtworks(self, artworks)
Example #6
0
    def getSpells(self,
                  params,
                  spells_on_page=20,
                  search={},
                  sort={},
                  total_pages=0):
        page = 1
        if 'ps' in params:
            try:
                page = int(params['ps'])
            except Exception:
                pass

        if page > total_pages:
            page = 1

        spells = self.model.spells.getAllSellingCraftedPatterns(
            limit=spells_on_page,
            skip=(page - 1) * spells_on_page,
            query=search,
            sort_query=sort)

        if self.cur_player:
            _spells = self.model.spells.getPlayerSpells(
                self.cur_player['login_id'])
            player_spells = Set()
            for _spell in _spells:
                player_spells.add(_spell['name'])

        authors_ids = Set()
        spells_ids = Set()

        for spell in spells:
            authors_ids.add(spell['author'])
            spells_ids.add(spell['_id'])

        players_names = self.model.players.getPlayersList(
            authors_ids, ['_id', 'name'])
        spell_likes = self.getLikesDict(spells_ids)

        for spell in spells:
            spell['already_have'] = self.cur_player and spell[
                'name'] in player_spells

            for player in players_names:
                if player['_id'] == spell['author']:
                    spell['author_name'] = player['name']

            spell['img'] += '_fit.png'
            if "spell_actions" in spell:
                for action in spell["spell_actions"]:

                    if action["effect"].upper(
                    ) in self.sbuilder.balance.stats_name:
                        stat = action["effect"].upper()
                    else:
                        stat = action["effect"].lower()

                    action.update(
                        {"stat_name": self.sbuilder.balance.stats_name[stat]})

            spell.update({
                "share_img": spell["img"][3:],
            })

            spell.update(self.getLike(spell_likes, spell['_id']))
            spell.update(
                {'create_date_f': getReadbleTime(spell['create_time'])})

        return spells
Example #7
0
    def getPlayersItems(self,
                        params,
                        items_on_page=20,
                        search={},
                        sort={},
                        total_pages=0):
        if self.cur_player:
            str_class = str(self.cur_player['login_class'])
        else:
            str_class = False

        page = 1

        if 'pi' in params:
            try:
                page = int(params['pi'])
            except Exception:
                pass

        if page > total_pages:
            page = 1

        players_items = self.model.items.getAllSellingCraftedItems(
            limit=items_on_page,
            skip=(page - 1) * items_on_page,
            query=search,
            sort_query=sort)

        authors_ids = Set()
        items_ids = Set()

        for item in players_items:
            authors_ids.add(item['author'])
            items_ids.add(item['_id'])

        players_names = self.model.players.getPlayersList(
            authors_ids, ['_id', 'name'])
        item_likes = self.getLikesDict(items_ids)

        for item in players_items:

            if item['type'] == 1 and str_class:
                if not item['view'] in self.sbuilder.balance.available_weapons[
                        str_class]:
                    item['cant_use'] = True

            for player in players_names:
                if player['_id'] == item['author']:
                    item['author_name'] = player['name']
                    break

            item['img'] = '/' + item['img'] + '_fit.png'

            item.update(prettyItemBonus(item, self.balance.stats_name))
            if "stat_parsed" in item:
                item.update({"bonus_parsed": json.dumps(item['stat_parsed'])})

            if "img" in item:
                item.update({"share_img": item["img"][3:]})

            item.update(self.getLike(item_likes, item['_id']))
            item.update({'create_date_f': getReadbleTime(item['create_time'])})

        return players_items