Implement Client.get_message_by_id()

This commit is contained in:
XANTRONIX Development 2024-12-05 15:07:44 -05:00
parent 447e593edb
commit 657c6d4b98

View file

@ -9,7 +9,7 @@ from typing import Optional
from nntp.tiny.socket import Connection
from nntp.tiny.host import Host
from nntp.tiny.response import Response, ResponseCode
from nntp.tiny.message import MessageRange
from nntp.tiny.message import MessageRange, Message
from nntp.tiny.remote import (
RemoteException,
@ -119,9 +119,9 @@ class Client(Connection):
int(parts[2]),
parts[3] == 'y')
def each_newsgroup_message(self, newsgroup: RemoteNewsgroup, msgrange: Optional[MessageRange]):
self.request('OVER', str(msgrange))
def each_newsgroup_message_overview(self, newsgroup: RemoteNewsgroup, msgrange: Optional[MessageRange]):
self.select_group(newsgroup.name)
self.request('OVER', str(msgrange))
for line in self.each_response_line():
parts = line.split('\t')
@ -142,3 +142,15 @@ class Client(Connection):
message.headers[key] = value
yield message
def get_message_by_id(self, message_id: str) -> Message:
message = Message()
self.request('ARTICLE', message_id)
for line in self.each_response_line():
message.readline(line + "\r\n")
message.finish()
return message