diff --git a/src/cotdantic/__init__.py b/src/cotdantic/__init__.py index 2782c2c..b183cdf 100644 --- a/src/cotdantic/__init__.py +++ b/src/cotdantic/__init__.py @@ -1,4 +1,4 @@ -__version__ = '2.1.1' +__version__ = '2.1.2' from .models import * diff --git a/src/cotdantic/models.py b/src/cotdantic/models.py index 6348965..dee9ba8 100644 --- a/src/cotdantic/models.py +++ b/src/cotdantic/models.py @@ -239,6 +239,10 @@ class ChatGroup(CotBase, tag='chatgrp'): uid1: Optional[str] = attr(default=None) +class RangeUnits(CotBase, tag='rangeUnits'): + value: Optional[int] = attr(default=None) + + class Chat(CotBase, tag='__chat'): id: Optional[str] = attr(default=None) chatroom: Optional[str] = attr(default=None) @@ -274,10 +278,42 @@ class UniqueID(CotBase, tag='uid'): droid: Optional[str] = attr(default=None, name='Droid') +class Range(CotBase, tag='range'): + value: Optional[float] = attr(default=None) + + +class NorthRef(CotBase, tag='northRef'): + value: Optional[float] = attr(default=None) + + +class BearingUnits(CotBase, tag='bearingUnits'): + value: Optional[float] = attr(default=None) + + +class Bearing(CotBase, tag='bearing'): + value: Optional[float] = attr(default=None) + + +class Inclination(CotBase, tag='inclination'): + value: Optional[float] = attr(default=None) + + class Navcues(CotBase, tag='__navcues'): pass +class BullsEye(CotBase, tag='bullseye'): + title: Optional[str] = attr(default=None) + edge_to_center: Optional[bool] = attr(name='edgeToCenter', default=None) + mils: Optional[bool] = attr(default=None) + has_range_rings: Optional[bool] = attr(name='hasRangeRings', default=None) + ring_dist: Optional[float] = attr(name='ringDist', default=None) + range_ring_visible: Optional[bool] = attr(name='rangeRingVisible', default=None) + distance: Optional[float] = attr(default=None) + bullseye_uid: Optional[str] = attr(name='bullseyeUID', default=None) + bearing_ref: Optional[str] = attr(name='bearingRef', default=None) + + class RouteInfo(CotBase, tag='__routeinfo'): navcues: Optional[Navcues] = element(default=None) @@ -334,6 +370,13 @@ class Detail(CotBase, tag='detail'): shape: Optional[Shape] = element(default=None) file_share: Optional[FileShare] = element(default=None) ack_request: Optional[AckRequest] = element(default=None) + range_units: Optional[RangeUnits] = element(default=None) + bulls_eye: Optional[BullsEye] = element(default=None) + inclination: Optional[Inclination] = element(default=None) + north_ref: Optional[NorthRef] = element(default=None) + bearingUnits: Optional[BearingUnits] = element(default=None) + bearing: Optional[Bearing] = element(default=None) + range: Optional[Range] = element(default=None) @classmethod @lru_cache diff --git a/src/cotdantic/windows.py b/src/cotdantic/windows.py index 2e077f5..96fcaa7 100644 --- a/src/cotdantic/windows.py +++ b/src/cotdantic/windows.py @@ -61,11 +61,12 @@ def wrap_line(self, line: str): def update(self, key: int): if not self.selected: return + if key == curses.KEY_UP: self._up_scroll(1) elif key == curses.KEY_DOWN: self._down_scroll(1) - elif key == curses.KEY_BACKSPACE: + elif key == curses.KEY_ENTER: self._scroll_end() def _scroll_end(self, over_scroll: int = 0): @@ -82,9 +83,7 @@ def _down_scroll(self, lines: int): if len(self._text) < self.max_y: self.index = 0 elif len(self._text) > self.max_y - self.over_scroll_max: - self.index = min( - self.index + lines, len(self._text) - self.max_y + self.over_scroll_max - ) + self.index = min(self.index + lines, len(self._text) - self.max_y + self.over_scroll_max) else: self.index = 0