Compare commits

..

No commits in common. "6a18d811a0ad86cc5850051e02ce9f274aafe720" and "9ebe7933cbdd7ccd8a26df9a7c7441be4e1f0dab" have entirely different histories.

2 changed files with 21 additions and 28 deletions

View file

@ -3,9 +3,6 @@ import psycopg
from xenu_nntp.config import Config
def default(a, b):
return b if a is None else a
class DatabaseOrder(enum.Enum):
DEFAULT = 0
ASC = 1
@ -148,16 +145,13 @@ class Database():
self.db.execute(sql, values)
def query_sql(self, table, sql, values: list=None):
def query_sql(self, table, sql, values=list()):
cr = DatabaseTableCursor(table, self.db.cursor())
cr.execute(sql, default(values, list()))
cr.execute(sql, values)
return cr
def query(self, table, values: dict=None, order_by: list=None):
values = default(values, dict())
order_by = default(order_by, list())
def query(self, table, values=dict(), order_by=list()):
sql = "select %s from %s" % (
', '.join(table.columns),
table.name
@ -187,12 +181,10 @@ class Database():
return self.query_sql(table, sql, list(values.values()))
def get(self, table, values: dict=None):
return self.query(table, default(values, dict())).fetchone()
def _call(self, table, fn: str, column: str, values: dict=None) -> int:
values = default(values, dict())
def get(self, table, values: dict=dict()):
return self.query(table, values).fetchone()
def _call(self, table, fn: str, column: str, values: dict=dict()) -> int:
sql = f"select {fn}({column}) as ret from {table.name}"
if len(values) > 0:
@ -203,11 +195,11 @@ class Database():
return row[0] if row is not None else None
def min(self, table, column: str, values: dict=None) -> int:
return self._call(table, 'min', column, default(values, dict()))
def min(self, table, column: str, values: dict=dict()) -> int:
return self._call(table, 'min', column, values)
def max(self, table, column: str, values: dict=None) -> int:
return self._call(table, 'max', column, default(values, dict()))
def max(self, table, column: str, values: dict=dict()) -> int:
return self._call(table, 'max', column, values)
def count(self, table, values: dict=None) -> int:
return self._call(table, 'count', table.key, default(values, dict()))
def count(self, table, values: dict=dict()) -> int:
return self._call(table, 'count', table.key, values)

View file

@ -37,18 +37,19 @@ class Server():
try:
sock, addr = listener.accept()
except:
except ssl.SSLError:
return
def spawn():
try:
session = Session(self, sock)
session.handle()
except:
sock.close()
session = Session(self, sock)
thread = threading.Thread(target=spawn)
thread.start()
try:
session.handle()
thread = threading.Thread(target=spawn)
thread.start()
except (ssl.SSLEOFError, ssl.SSLError):
pass
def run(self):
hosts = re.split(r'\s*,\s*', self.config.get('listen', 'host'))