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
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
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)
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)
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)
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
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