Implement Client.message_offer()
This commit is contained in:
parent
3a0dac2c41
commit
dfe94c61e4
1 changed files with 14 additions and 2 deletions
|
@ -2,6 +2,7 @@ import re
|
||||||
import socket
|
import socket
|
||||||
import ssl
|
import ssl
|
||||||
import datetime
|
import datetime
|
||||||
|
import email.header
|
||||||
import email.utils
|
import email.utils
|
||||||
|
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
@ -9,7 +10,7 @@ from typing import Optional
|
||||||
from nntp.tiny.socket import Connection
|
from nntp.tiny.socket import Connection
|
||||||
from nntp.tiny.host import Host
|
from nntp.tiny.host import Host
|
||||||
from nntp.tiny.response import Response, ResponseCode
|
from nntp.tiny.response import Response, ResponseCode
|
||||||
from nntp.tiny.message import MessageRange, Message
|
from nntp.tiny.message import MessageRange, Message, MessagePart
|
||||||
|
|
||||||
from nntp.tiny.remote import (
|
from nntp.tiny.remote import (
|
||||||
RemoteException,
|
RemoteException,
|
||||||
|
@ -143,7 +144,7 @@ class Client(Connection):
|
||||||
|
|
||||||
yield message
|
yield message
|
||||||
|
|
||||||
def get_message_by_id(self, message_id: str) -> Message:
|
def message_by_id(self, message_id: str) -> Message:
|
||||||
message = Message()
|
message = Message()
|
||||||
|
|
||||||
self.request('ARTICLE', message_id)
|
self.request('ARTICLE', message_id)
|
||||||
|
@ -154,3 +155,14 @@ class Client(Connection):
|
||||||
message.finish()
|
message.finish()
|
||||||
|
|
||||||
return message
|
return message
|
||||||
|
|
||||||
|
def message_offer(self, message: Message):
|
||||||
|
response = self.request('IHAVE', message.message_id)
|
||||||
|
|
||||||
|
if response.code is ResponseCode.NNTP_ARTICLE_NOT_WANTED_ID:
|
||||||
|
return
|
||||||
|
elif response.code not ResponseCode.NNTP_INQUIRY_ARTICLE_ID:
|
||||||
|
raise RemoteException(response)
|
||||||
|
|
||||||
|
self.message_send(message, MessagePart.WHOLE)
|
||||||
|
self.end()
|
||||||
|
|
Loading…
Add table
Reference in a new issue