Implement LIST NEWSGROUPS client method
This commit is contained in:
parent
00264b2d16
commit
329c695131
1 changed files with 20 additions and 8 deletions
|
@ -12,7 +12,11 @@ from nntp.tiny.response import Response, ResponseCode
|
|||
from nntp.tiny.message import MessageRange
|
||||
|
||||
from nntp.tiny.remote import (
|
||||
RemoteException, RemoteNewsgroup, RemoteMessage
|
||||
RemoteException,
|
||||
RemoteNewsgroup,
|
||||
RemoteNewsgroupDescription,
|
||||
RemoteNewsgroupOverview,
|
||||
RemoteMessage
|
||||
)
|
||||
|
||||
class ClientException(Exception):
|
||||
|
@ -87,11 +91,19 @@ class Client(Connection):
|
|||
|
||||
yield line
|
||||
|
||||
def each_newsgroup(self):
|
||||
self.request('LIST', 'NEWSGROUPS')
|
||||
|
||||
for line in self.each_response_line():
|
||||
parts = line.split(' ', 1)
|
||||
|
||||
yield RemoteNewsgroupDescription(parts[0], parts[1])
|
||||
|
||||
def each_newsgroup_since(self, timestamp: datetime.datetime):
|
||||
date = timestamp.strftime('%Y%m%d')
|
||||
time = timestamp.strftime('%H%M%S')
|
||||
|
||||
response = self.request('NEWGROUPS', date, time)
|
||||
self.request('NEWGROUPS', date, time)
|
||||
|
||||
for line in self.each_response_line():
|
||||
parts = self.RE_SPLIT.split(line)
|
||||
|
@ -99,19 +111,19 @@ class Client(Connection):
|
|||
if len(parts) != 4:
|
||||
raise RemoteException('Unexpected result from NEWGROUPS')
|
||||
|
||||
yield RemoteNewsgroup(parts[0],
|
||||
int(parts[1]),
|
||||
int(parts[2]),
|
||||
parts[3] == 'y')
|
||||
yield RemoteNewsgroupOverview(parts[0],
|
||||
int(parts[1]),
|
||||
int(parts[2]),
|
||||
parts[3] == 'y')
|
||||
|
||||
def each_newsgroup_message(self, newsgroup: RemoteNewsgroup, msgrange: Optional[MessageRange]):
|
||||
self.request('GROUP', newsgroup.name)
|
||||
self.request('OVER', str(msgrange))
|
||||
|
||||
for line in self.each_response_line():
|
||||
message = RemoteMessage()
|
||||
parts = line.split('\t')
|
||||
parts = line.split('\t')
|
||||
|
||||
message = RemoteMessage()
|
||||
message.id = int(parts[0])
|
||||
message.subject = parts[1]
|
||||
message.sender = parts[2]
|
||||
|
|
Loading…
Add table
Reference in a new issue