diff options
author | Botond Hende <nettingman@gmail.com> | 2024-09-02 00:21:13 +0200 |
---|---|---|
committer | Botond Hende <nettingman@gmail.com> | 2024-09-02 00:21:13 +0200 |
commit | 1638f40eccc4a1321ee1bf19e3756157b6c965e1 (patch) | |
tree | 99209de68ebcd4f42cafcdf14e563d7916d69e00 /entities/ship.py | |
parent | 3a390ff218903b8665a99f94d7f3a65357b6e96d (diff) |
refactored code, use get_ship dependency for ship related calls
Diffstat (limited to 'entities/ship.py')
-rw-r--r-- | entities/ship.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/entities/ship.py b/entities/ship.py new file mode 100644 index 0000000..922f961 --- /dev/null +++ b/entities/ship.py @@ -0,0 +1,41 @@ +from typing import Dict + +from . import task_types +from ..modules.database import cursor, conn + + +class Ship: + def __init__(self, symbol: str): + self.symbol = symbol + self.callsign = "-".split(symbol)[0] + + self.task = None + self.name = None + + def get_data(self) -> Dict: + return {"name": self.name, "symbol": self.symbol, "task": self.task} + + def load_task(self): + cursor.execute("SELECT name, task, params FROM ships WHERE symbol = ?", (self.symbol,)) + row = cursor.fetchone() + if row is None: + cursor.execute("INSERT INTO ships (symbol, task, params, name) VALUES (?, ?, ?, ?)", + (self.symbol, task_types.IDLE, None, self.symbol)) + conn.commit() + + self.task = task_types.IDLE + self.task = self.symbol + else: + self.name = row[0] + self.task = row[1] + + def set_task(self, task): + self.task = task + if task != task_types.ERROR: + cursor.execute("UPDATE ships SET task = ? WHERE symbol = ?", (task, self.symbol)) + conn.commit() + + def rename(self, name): + self.name = name + cursor.execute("UPDATE ships SET name = ? WHERE symbol = ?", (name, self.symbol)) + conn.commit() |