Compare commits
No commits in common. "6a18d811a0ad86cc5850051e02ce9f274aafe720" and "9ebe7933cbdd7ccd8a26df9a7c7441be4e1f0dab" have entirely different histories.
6a18d811a0
...
9ebe7933cb
2 changed files with 21 additions and 28 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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'))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue