def html(self): self.load_data() fs = 8 # fontsize, small text bbcode = [] if self.__team: playerdata = self.__data['players'] bbcode += [ u'<div align="center">\n', u'<table width="300" cellspacing="0" cellpadding="0" border="0">', u'<tr>', u'<td width="13%"></td>', u'<td width="12%"></td>', u'<td width="12%"></td>', u'<td width="13%"></td>', u'<td width="13%"></td>', u'<td width="12%"></td>', u'<td width="12%"></td>', u'<td width="13%"></td>', u'</tr>' ] rows = [] images = [] playernames = [] playershortnames = [] for line in self.__team.split(u'\n'): players = filter(lambda x: x != u'', line.split(u' ')) if len(players) and not players[0]: players = [] rows += [players] imgs = [] names = [] shortnames = [] for player in players: img = playerdata['default']['image'] playerid = Data.player_id(self.__data, player) if playerid in playerdata: if 'image' in playerdata[playerid]: img = Data.get_imgurl(self.__data, playerdata[playerid]['image']) imgs += [ img ] names += [ Data.player_name(self.__data, playerid) ] shortnames += [ Data.player_shortname(self.__data, playerid) ] assert len(imgs) == len(players), "invalid len() test" images += [imgs] playernames += [names] playershortnames += [shortnames] skip = 0 for i, row in enumerate(rows): if skip > 0: skip -= 1 else: players = row imgs = images[i] names = playernames[i] shortnames = playershortnames[i] if (i+1) < len(rows): nextplayers = rows[i+1] nextimgs = images[i+1] nextnames = playernames[i+1] nextshortnames = playershortnames[i+1] if (i+2) < len(rows): frontplayers = rows[i+2] frontimgs = images[i+2] frontnames = playernames[i+2] frontshortnames = playershortnames[i+2] if len(players) == 0: bbcode += [ u'<tr height="10"></tr>' ] elif len(players) == 1: if (i+2) < len(rows) and len(rows[i+1]) == 2 and len(rows[i+2]) == 1: # diamant bbcode += [ u'<tr>', u'<td colspan="3" rowspan="2" align="center" valign="middle"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (nextimgs[0], nextnames[0], nextshortnames[0]), u'<td colspan="2" align="center" valign="top"><img src="%s" title="%s"/>[size=8]\n%s\n[/size]</td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="3" rowspan="2" align="center" valign="middle"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (nextimgs[1], nextnames[1], nextshortnames[1]), u'</tr>', u'<tr>', u'<td colspan="2" align="center" valign="top"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (frontimgs[0], frontnames[0], frontshortnames[0]), u'</tr>' ] skip = 2 elif (i+1) < len(rows) and len(rows[i+1]) == 2: # compact bbcode += [ u'<tr>', u'<td colspan="3" align="center" valign="bottom">\n<img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (nextimgs[0], nextnames[0], nextshortnames[0]), u'<td colspan="2" align="center" valign="top"><img src="%s" title="%s"/>[size=8]\n%s[/size]\n</td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="3" align="center" valign="bottom">\n<img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (nextimgs[1], nextnames[1], nextshortnames[1]), u'</tr>' ] skip = 1 else: bbcode += [ u'<tr><td colspan="8" align="center"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td></tr>' % (imgs[0], names[0], shortnames[0]) ] elif len(players) == 2: if (i+1) < len(rows) and len(rows[i+1]) == 1: # compact bbcode += [ u'<tr>', u'<td colspan="3" align="center" valign="top"><img src="%s" title="%s"/>[size=8]\n%s[/size]\n</td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="2" align="center" valign="bottom">\n<img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (nextimgs[0], nextnames[0], nextshortnames[0]), u'<td colspan="3" align="center" valign="top"><img src="%s" title="%s"/>[size=8]\n%s[/size]\n</td>' % (imgs[1], names[1], shortnames[1]), u'</tr>' ] skip = 1 else: bbcode += [ u'<tr>', u'<td colspan="4" align="center"><img src="%s" title="%s"/>\n[size=8]%s[/size]</td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="4" align="center"><img src="%s" title="%s"/>\n[size=8]%s[/size]</td>' % (imgs[1], names[1], shortnames[1]), u'</tr>' ] elif len(players) == 3: bbcode += [ u'<tr>', u'<td colspan="3" align="center"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="2" align="center"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[1], names[1], shortnames[1]), u'<td colspan="3" align="center"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[2], names[2], shortnames[2]), u'</tr>' ] elif len(players) == 4: bbcode += [ u'<tr>', u'<td colspan="2" align="center"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="2" align="center"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[1], names[1], shortnames[1]), u'<td colspan="2" align="center"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[2], names[2], shortnames[2]), u'<td colspan="2" align="center"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[3], names[3], shortnames[3]), u'</tr>' ] elif len(players) == 5: bbcode += [ u'<tr>', u'<td colspan="2" align="center">\n<img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="1" align="center"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[1], names[1], shortnames[1]), u'<td colspan="2" align="center"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[2], names[2], shortnames[2]), u'<td colspan="1" align="center"><img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[3], names[3], shortnames[3]), u'<td colspan="2" align="center">\n<img src="%s" title="%s"/>[size=8]\n%s[/size]</td>' % (imgs[4], names[4], shortnames[4]), u'</tr>' ] else: bbcode += [ u'<tr height="10"></tr>' ] bbcode += [ u'</table>\n', u'</div>', ] content = ''.join(bbcode) content = content.replace(u'<', u'<').replace(u'>', u'>') html = [] html += self.html_heading(u'Lagoppstilling BBCode') html += self.html_body_open() html += [ u'<pre>', content, u'</pre>' ] html += self.html_body_close() return html
def html(self): self.load_data() html = [] html += self.html_heading(u"Lagoppstilling") html += self.html_body_open() if self.__team: playerdata = self.__data['players'] html += [ u'<table width="300" cellspacing="0" cellpadding="0" border="0">', u'<tr>', u'<td width="13%"></td>', u'<td width="12%"></td>', u'<td width="12%"></td>', u'<td width="13%"></td>', u'<td width="13%"></td>', u'<td width="12%"></td>', u'<td width="12%"></td>', u'<td width="13%"></td>', u'</tr>' ] rows = [] images = [] playernames = [] playershortnames = [] for line in self.__team.split(u'\n'): players = filter(lambda x: x != u'', line.split(u' ')) if len(players) and not players[0]: players = [] rows += [players] imgs = [] names = [] shortnames = [] for player in players: img = playerdata['default']['image'] playerid = Data.player_id(self.__data, player) if playerid in playerdata: if 'image' in playerdata[playerid]: img = Data.get_imgurl(self.__data, playerdata[playerid]['image']) imgs += [ img ] names += [ Data.player_name(self.__data, playerid) ] shortnames += [ Data.player_shortname(self.__data, playerid) ] assert len(imgs) == len(players), "invalid len() test" images += [imgs] playernames += [names] playershortnames += [shortnames] skip = 0 for i, row in enumerate(rows): if skip > 0: skip -= 1 else: players = row imgs = images[i] names = playernames[i] shortnames = playershortnames[i] if (i+1) < len(rows): nextplayers = rows[i+1] nextimgs = images[i+1] nextnames = playernames[i+1] nextshortnames = playershortnames[i+1] if (i+2) < len(rows): frontplayers = rows[i+2] frontimgs = images[i+2] frontnames = playernames[i+2] frontshortnames = playershortnames[i+2] if len(players) == 0: html += [ u'<tr><td colspan="8"> </td></tr>' ] elif len(players) == 1: if (i+2) < len(rows) and len(rows[i+1]) == 2 and len(rows[i+2]) == 1: # diamant html += [ u'<tr>', u'<td colspan="3" rowspan="2" align="center" valign="middle"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (nextimgs[0], nextnames[0], nextshortnames[0]), u'<td colspan="2" align="center" valign="top"><img src="%s" title="%s"/><font size="-4"><br/>%s<br/></font></td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="3" rowspan="2" align="center" valign="middle"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (nextimgs[1], nextnames[1], nextshortnames[1]), u'</tr>', u'<tr>', u'<td colspan="2" align="center" valign="top"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (frontimgs[0], frontnames[0], frontshortnames[0]), u'</tr>'] skip = 2 elif (i+1) < len(rows) and len(rows[i+1]) == 2: # compact html += [ u'<tr>', u'<td colspan="3" align="center" valign="bottom"><br/><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (nextimgs[0], nextnames[0], nextshortnames[0]), u'<td colspan="2" align="center" valign="top"><img src="%s" title="%s"/><font size="-4"><br/>%s</font><br/></td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="3" align="center" valign="bottom"><br/><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (nextimgs[1], nextnames[1], nextshortnames[1]), u'</tr>' ] skip = 1 else: html += [ u'<tr><td colspan="8" align="center"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td></tr>' % (imgs[0], names[0], shortnames[0]) ] elif len(players) == 2: if (i+1) < len(rows) and len(rows[i+1]) == 1: # compact html += [ u'<tr>', u'<td colspan="3" align="center" valign="top"><img src="%s" title="%s"/><font size="-4"><br/>%s</font><br/></td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="2" align="center" valign="bottom"><br/><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (nextimgs[0], nextnames[0], nextshortnames[0]), u'<td colspan="3" align="center" valign="top"><img src="%s" title="%s"/><font size="-4"><br/>%s</font><br/></td>' % (imgs[1], names[1], shortnames[1]), u'</tr>' ] skip = 1 else: html += [ u'<tr>', u'<td colspan="4" align="center"><img src="%s" title="%s"/><br/><font size="-4">%s</font></td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="4" align="center"><img src="%s" title="%s"/><br/><font size="-4">%s</font></td>' % (imgs[1], names[1], shortnames[1]), u'</tr>' ] elif len(players) == 3: html += [ u'<tr>', u'<td colspan="3" align="center"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="2" align="center"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[1], names[1], shortnames[1]), u'<td colspan="3" align="center"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[2], names[2], shortnames[2]), u'</tr>' ] elif len(players) == 4: html += [ u'<tr>', u'<td colspan="2" align="center"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="2" align="center"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[1], names[1], shortnames[1]), u'<td colspan="2" align="center"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[2], names[2], shortnames[2]), u'<td colspan="2" align="center"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[3], names[3], shortnames[3]), u'</tr>' ] elif len(players) == 5: html += [ u'<tr>', u'<td colspan="2" align="center"><br/><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[0], names[0], shortnames[0]), u'<td colspan="1" align="center"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[1], names[1], shortnames[1]), u'<td colspan="2" align="center"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[2], names[2], shortnames[2]), u'<td colspan="1" align="center"><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[3], names[3], shortnames[3]), u'<td colspan="2" align="center"><br/><img src="%s" title="%s"/><font size="-4"><br/>%s</font></td>' % (imgs[4], names[4], shortnames[4]), u'</tr>' ] else: html += [ u'<tr><td colspan="8"> </td></tr>' ] html += [ u'<tr><td colspan="8" align="right">', u'<a title="BBCode" target="_blank" href="TeamFormationBBCode.py?team=%s">' % urllib.quote(self.__teamdata.encode('utf-8')), u'<i class="fa fa-code"></i>', u'</a>', u'</td></tr>', u'</table>' ] html += self.html_body_close() return html