| @@ -3,7 +3,7 @@ from datetime import datetime, timedelta | |||||
| import humanize | import humanize | ||||
| __all__ = ["format_isk", "format_isk_compact", "format_utctime", | __all__ = ["format_isk", "format_isk_compact", "format_utctime", | ||||
| "format_utctime_compact"] | |||||
| "format_utctime_compact", "format_security", "get_security_class"] | |||||
| def format_isk(value): | def format_isk(value): | ||||
| """Nicely format an ISK value.""" | """Nicely format an ISK value.""" | ||||
| @@ -64,3 +64,13 @@ def format_utctime_compact(value): | |||||
| if delta < timedelta(seconds=1): | if delta < timedelta(seconds=1): | ||||
| return "just now" | return "just now" | ||||
| return "{} ago".format(_format_compact_delta(delta)) | return "{} ago".format(_format_compact_delta(delta)) | ||||
| def format_security(value): | |||||
| """Given a system security status as a float, return a rounded string.""" | |||||
| return str(round(value, 1)) | |||||
| def get_security_class(value): | |||||
| """Given a system security status, return the corresponding CSS class.""" | |||||
| if value < 0.05: | |||||
| return "sec-null" | |||||
| return "sec-" + str(round(value, 1)).replace(".", "_") | |||||
| @@ -331,6 +331,50 @@ footer ul li:not(:last-child)::after { | |||||
| margin-bottom: 1em; | margin-bottom: 1em; | ||||
| } | } | ||||
| .sec-null { | |||||
| color: #F30202; | |||||
| } | |||||
| .sec-0_1 { | |||||
| color: #DC3201; | |||||
| } | |||||
| .sec-0_2 { | |||||
| color: #EB4903; | |||||
| } | |||||
| .sec-0_3 { | |||||
| color: #F66301; | |||||
| } | |||||
| .sec-0_4 { | |||||
| color: #E58000; | |||||
| } | |||||
| .sec-0_5 { | |||||
| color: #F5F501; | |||||
| } | |||||
| .sec-0_6 { | |||||
| color: #96F933; | |||||
| } | |||||
| .sec-0_7 { | |||||
| color: #00FF00; | |||||
| } | |||||
| .sec-0_8 { | |||||
| color: #02F34B; | |||||
| } | |||||
| .sec-0_9 { | |||||
| color: #4BF3C3; | |||||
| } | |||||
| .sec-1_0 { | |||||
| color: #33F9F9; | |||||
| } | |||||
| /* ================================ Modules ================================ */ | /* ================================ Modules ================================ */ | ||||
| /* ------------------------------- Campaigns ------------------------------- */ | /* ------------------------------- Campaigns ------------------------------- */ | ||||
| @@ -455,7 +499,7 @@ h2 .disabled-info { | |||||
| .operation .killboard.expanded { | .operation .killboard.expanded { | ||||
| position: absolute; | position: absolute; | ||||
| z-index: 1; | z-index: 1; | ||||
| transition: clip-path 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); | |||||
| transition: clip-path 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94); | |||||
| clip-path: inset(0 100% 0 0); | clip-path: inset(0 100% 0 0); | ||||
| } | } | ||||
| @@ -1,22 +1,27 @@ | |||||
| <%! | <%! | ||||
| from calefaction.format import format_isk_compact, format_utctime_compact | |||||
| from calefaction.format import ( | |||||
| format_isk_compact, format_utctime_compact, format_security, | |||||
| get_security_class) | |||||
| %> | %> | ||||
| <%def name="_killboard_kill(kill)"> | <%def name="_killboard_kill(kill)"> | ||||
| <% victim = kill["victim"] %> | |||||
| <% | |||||
| victim = kill["victim"] | |||||
| system = g.eve.universe.system(kill["system"]) | |||||
| %> | |||||
| <tr> | <tr> | ||||
| <td class="fluid"> | <td class="fluid"> | ||||
| <abbr title="${kill["date"].strftime("%Y-%m-%d %H:%M")}">${format_utctime_compact(kill["date"]) | h}</abbr><br/> | |||||
| <a href="https://zkillboard.com/kill/${kill['id']}/"> | <a href="https://zkillboard.com/kill/${kill['id']}/"> | ||||
| <abbr title="${kill["date"].strftime("%Y-%m-%d %H:%M")}">${format_utctime_compact(kill["date"]) | h}</abbr><br/> | |||||
| <abbr title="${"{:,.2f}".format(kill["value"])} ISK">${format_isk_compact(kill["value"]) | h}</abbr> | <abbr title="${"{:,.2f}".format(kill["value"])} ISK">${format_isk_compact(kill["value"]) | h}</abbr> | ||||
| </a> | </a> | ||||
| </td> | </td> | ||||
| <td class="fluid extra"> | <td class="fluid extra"> | ||||
| ${kill["system"]} 0.3<br/><!-- ... --> | |||||
| Region<!-- ... --> | |||||
| <a href="https://zkillboard.com/system/${system.id}/">${system.name}</a> <abbr title="${system.security}" class="${get_security_class(system.security)}">${format_security(system.security)}</abbr><br/> | |||||
| <a href="https://zkillboard.com/region/${system.region.id}/">${system.region.name}</a> | |||||
| </td> | </td> | ||||
| <td class="icon"> | <td class="icon"> | ||||
| <a href="https://zkillboard.com/kill/${kill['id']}/"> | <a href="https://zkillboard.com/kill/${kill['id']}/"> | ||||
| <img title="Kill ${kill['id']}" alt="Kill ${kill['id']}" src="${g.eve.image.inventory(victim["ship_id"], 64)}"/> | |||||
| <img title="Kill ${kill['id']}: ..." alt="Kill ${kill['id']}: ..." src="${g.eve.image.inventory(victim["ship_id"], 64)}"/> | |||||
| </a> | </a> | ||||
| </td> | </td> | ||||
| <td class="icon extra"> | <td class="icon extra"> | ||||