No-dependency, single file NNTP server library for developing modern, rfc3977-compliant (bridge) NNTP servers for python >=3.7. Developed as part of tade
, a web discussion forum with mailing list/NNTP interfaces which powers the https://sic.pm link aggregator.
Included example servers are:
example_server.py
returning hard-coded articleshnnntp.py
querying news.ycombinator.com (hackernews) API and caching results in an sqlite3 database. A public instance might be online at nessuent.xyz:564 (TLS only)
Running example_server.py
:
$ python3 example_server.py --connect-with-nntplib
Listening on localhost:9999
Connecting with nntplib...
New connection.
sending 201 NNTP Service Ready, posting prohibited
got: CAPABILITIES
sending 101 Capability list:
sending VERSION 2
sending READER
sending HDR
sending LIST ACTIVE NEWSGROUPS OVERVIEW.FMT SUBSCRIPTIONS
sending OVER
sending .
got: GROUP example.all
Group name example.all
sending 211 1 1 1 example.all
got: XOVER 1-1
sending 224 Overview information follows (multi-line)
sending 1 Hello world! epilys <epilys@example.com> Wed, 01 Sep 2021 15:06:01 +0000 <unique@example.com> 16 1
sending .
got: LIST OVERVIEW.FMT
sending 215 Order of fields in overview database.
sending Subject:
sending From:
sending Date:
sending Message-ID:
sending References:
sending Bytes:
sending Lines:
sending .
1 epilys <epilys@example.com> Hello world! (1)
Done with nntplib.