Fix HEAD, BODY

This commit is contained in:
XANTRONIX Development 2024-11-25 20:34:26 -05:00
parent 0fc03c3b21
commit dcd639e96d

View file

@ -408,28 +408,24 @@ class Session():
return self.end() return self.end()
def _message_by_id(self, identifier: str): def _message_by_id(self, identifier: str):
cr = None
if identifier[0] == '<': if identifier[0] == '<':
cr = self.db.query(Message, { return self.db.get(Message, {
'newsgroup_id': self.newsgroup.id, 'newsgroup_id': self.newsgroup.id,
'message_id': identifier 'message_id': identifier
}) })
else: else:
cr = self.db.query(Message, { return self.db.get(Message, {
'newsgroup_id': self.newsgroup.id, 'newsgroup_id': self.newsgroup.id,
'id': int(identifier) 'id': int(identifier)
}) })
return cr.fetchone()
def _send_message_headers(self, message: Message): def _send_message_headers(self, message: Message):
for name in message.headers: for name in message.headers:
self.print("%s: %s" % ( self.print("%s: %s" % (
name, message.headers[name] name, message.headers[name]
)) ))
def _serve_message(self, part: MessagePart, identifier: Optional[str]): def _serve_message(self, part: MessagePart, identifier: Optional[str]=None):
if self.newsgroup is None: if self.newsgroup is None:
return self.respond(ResponseCode.NNTP_NEWSGROUP_NOT_SELECTED) return self.respond(ResponseCode.NNTP_NEWSGROUP_NOT_SELECTED)
@ -443,7 +439,7 @@ class Session():
self.article_id = message.id self.article_id = message.id
else: else:
if identifier is None: if identifier is None:
message = self._message_by_id(self.article_id) message = self._message_by_id(str(self.article_id))
else: else:
message = self._message_by_id(identifier) message = self._message_by_id(identifier)
self.article_id = message.id self.article_id = message.id
@ -466,13 +462,13 @@ class Session():
return self.end() return self.end()
def _cmd_head(self, identifier: Optional[str]): def _cmd_head(self, identifier: Optional[str]=None):
return self._serve_message(MessagePart.HEAD, identifier) return self._serve_message(MessagePart.HEAD, identifier)
def _cmd_body(self, identifier: Optional[str]): def _cmd_body(self, identifier: Optional[str]=None):
return self._serve_message(MessagePart.BODY, identifier) return self._serve_message(MessagePart.BODY, identifier)
def _cmd_article(self, identifier: Optional[str]): def _cmd_article(self, identifier: Optional[str]=None):
return self._serve_message(MessagePart.WHOLE, identifier) return self._serve_message(MessagePart.WHOLE, identifier)
COMMANDS = { COMMANDS = {