Skip to content

Commit 8aaf4e1

Browse files
committed
Integre bperian Works
Integre Vintel pull Xanthos-Code#167
1 parent c92a9bc commit 8aaf4e1

File tree

1 file changed

+38
-8
lines changed

1 file changed

+38
-8
lines changed

src/vi/dotlan.py

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,15 @@ def _extractSystemsFromSoup(self, soup):
119119
for element in symbol.select(".sys"):
120120
name = element.select("text")[0].text.strip().upper()
121121
mapCoordinates = {}
122+
sov = {}
123+
sovData = element.select("text")[1].text.strip().upper()
124+
try:
125+
sov["name"] = sovData[0:(sovData.index('(')-1)]
126+
sov["sov_level"] = sovData[sovData.index('(')+1:len(sovData)-1]
127+
except:
128+
# If system SOV is NPC index isn't set
129+
sov["name"] = sovData
130+
122131
for keyname in ("x", "y", "width", "height"):
123132
mapCoordinates[keyname] = float(uses[symbolId][keyname])
124133
mapCoordinates["center_x"] = (mapCoordinates["x"] + (mapCoordinates["width"] / 2))
@@ -127,8 +136,9 @@ def _extractSystemsFromSoup(self, soup):
127136
transform = uses[symbolId]["transform"]
128137
except KeyError:
129138
transform = "translate(0,0)"
130-
systems[name] = System(name, element, self.soup, mapCoordinates, transform, systemId)
139+
systems[name] = System(name, element, self.soup, mapCoordinates, transform, systemId, sov)
131140
return systems
141+
132142

133143
def _prepareSvg(self, soup, systems):
134144
svg = soup.select("svg")[0]
@@ -291,7 +301,7 @@ class System(object):
291301
UNKNOWN_COLOR = "#FFFFFF"
292302
CLEAR_COLOR = "#59FF6C"
293303

294-
def __init__(self, name, svgElement, mapSoup, mapCoordinates, transform, systemId):
304+
def __init__(self, name, svgElement, mapSoup, mapCoordinates, transform, systemId, sovData):
295305
self.status = states.UNKNOWN
296306
self.name = name
297307
self.svgElement = svgElement
@@ -301,6 +311,8 @@ def __init__(self, name, svgElement, mapSoup, mapCoordinates, transform, systemI
301311
self.secondLine = svgElement.select("text")[1]
302312
self.lastAlarmTime = 0
303313
self.messages = []
314+
self.sovData = sovData
315+
self.sovShown = False
304316
self.setStatus(states.UNKNOWN)
305317
self.__locatedCharacters = []
306318
self.backgroundColor = "#FFFFFF"
@@ -440,8 +452,15 @@ def setStatus(self, newStatus):
440452
self.secondLine["style"] = "fill: #000000;"
441453
elif newStatus == states.UNKNOWN:
442454
self.setBackgroundColor(self.UNKNOWN_COLOR)
443-
# second line in the rects is reserved for the clock
444-
self.secondLine.string = "?"
455+
# second line in the rects is reserved for the clock and SOV
456+
if self.sovShown is False:
457+
self.SovShown = True
458+
self.secondLine.string = self.sovData["name"]
459+
try:
460+
self.secondLine.string += " (" + self.sovData["sov_level"] + ")"
461+
except KeyError:
462+
pass # System is NPC owned
463+
445464
self.secondLine["style"] = "fill: #000000;"
446465
if newStatus not in (states.NOT_CHANGE, states.REQUEST): # unknown not affect system status
447466
self.status = newStatus
@@ -473,15 +492,26 @@ def update(self):
473492
seconds = int(diff - minutes * 60)
474493
string = "{m:02d}:{s:02d}".format(m=minutes, s=seconds)
475494
if self.status == states.CLEAR:
495+
476496
secondsUntilWhite = 10 * 60
477497
calcValue = int(diff / (secondsUntilWhite / 255.0))
478498
if calcValue > 255:
479499
calcValue = 255
480500
self.secondLine["style"] = "fill: #008100;"
481-
string = "clr: {m:02d}:{s:02d}".format(m=minutes, s=seconds)
482-
self.setBackgroundColor("rgb({r},{g},{b})".format(r=calcValue, g=255, b=calcValue))
483-
self.secondLine.string = string
484-
501+
if minutes > 30 and self.sovShown is False:
502+
self.SovShown = True
503+
self.secondLine.string = self.sovData["name"]
504+
try:
505+
self.secondLine.string += " (" + self.sovData["sov_level"] + ")"
506+
except KeyError:
507+
pass # System is NPC owned
508+
else:
509+
self.sovShown = False
510+
string = "clr: {m:02d}:{s:02d}".format(m=minutes, s=seconds)
511+
self.setBackgroundColor("rgb({r},{g},{b})".format(r=calcValue, g=255, b=calcValue))
512+
self.secondLine.string = string
513+
514+
485515

486516
def convertRegionName(name):
487517
"""

0 commit comments

Comments
 (0)