Python

Python nntplib.NNTP

“The package specifies the class NNTP that carries out the Network News Transfer Protocol on the client side. The function of the NNTP module class is to find out where we can locate the client-side Network News Transfer Protocol implementation (NNTP). It may be applied to the development of autonomous news aggregators, news readers, or posters. Along with the more ancient RFC 977 and RFC 2980, it is interoperable with RFC 3977. Within this article, we will be implementing some examples in python to illustrate the usage of nntplib.NNTP module.”

Example 01

Within the first example of this article, let’s learn how to utilize NNTP in the Python programming language shown in the attached code image. The code is written and run using the Spyder Development tool. It is advised to import the NNTP from the nntplib library to use the NNTP module class.

The first two lines of script in the sample below import the required classes from the nntplib package. We need to import NNTP and decode_header first because we use them. We have supplied the Server Name, such as “news.gmane.io,” for which we are attempting to connect to the news server in the third line of Python code. Because we are setting the reader mode to true, NNTP causes news readers to activate.

However, we can omit this flag and only pass the server’s name, which is required. To display some statistical information about a newsgroup and the five most recent articles’ subjects. The class nntplib.NNTP(host, port=119 [by default], user=None, password=None, readermode=True, usenetrc=False[, timeout]). Before authentication is carried out, a mode reader command is issued if the optional flag reader mode is true. If you want to use reader-specific commands like group while connected to a local machine NNTP server, you may need to switch to reader mode to turn on. If you encounter unexpected NNTPPermanentErrors, you may have to enable reader mode.

Return a new NNTP object that represents a connection to the host-based, port-listening NNTP server. The socket connection has an optional timeout that can be defined. The AUTHINFO USER and AUTHINFO PASS instructions are used to authenticate the user who wants to connect to the server if somehow the optional username and password are supplied or if suitable credentials are available in /.netrc and the optional flag use netrc is true.

Before authentication is carried out, a mode reader command is delivered if the additional flag reader mode is set to true. If you want to use reader-specific commands like group while connected to a local NNTP server, you may need to switch to reader mode.

When the Python code is run, the output shown below is produced. The first line shows the total number of articles published or read from the “gmane.comp.python.commiters” group, which may also include the articles’ range. The subjects of the latest five articles published by this group are listed in the following lines.

Example 02

In this example, we’ll link to the news website that acts as server “news.gmane.org,” which belongs to the group “gmane.comp.python.general,” and browse the last 10 posts or articles inside. On the top of the code file, we have defined variables for the server name, group name, and several articles/posts that we wish to read individually. Following that, a print statement indicating that we will connect to the required server is shown.

After that, we used the import command to add the necessary NNTP class modules to the code. Afterward, we must use the NNTP class, which returns a connection object of type NNTP, to connect to the necessary server. Using the group name defined in the second line of the code in the python file, we must use this object to obtain the details of the desired group, which may contain the articles list.

However, Spyder Tool’s connection error indicates that the server’s information is inaccurate when we attempt to run the code. So in this example, we have seen that if we are trying to connect to some server that is either not responding or down.

We will connect to the server “news.mixmin.net” in this example. “talk.euthanasia” is the name of the group. We have an import statement for each module and the necessary classes at the beginning of our code. The message that we are connecting to the server for the group is then printed after that. After that, we used NNTP to create a connection to the newsgroup. Following that, we received information on the response, the number of articles/posts, their beginning and finishing numbers, and the name of the group.

The newnews function, which essentially takes the group name and the DateTime parameters to acquire the most recent news for that specific time period, is used in the following line. The sentence that shows that we have a group with several articles was then printed. Following that, we read the article responses before using a for loop to display them on the screen. Only the response’s identifier and title can be shown due to space restrictions. Using the body variable created in the third line of the for loop, however, we also have the option to show the article’s body.

In the last for loop, we have displayed the subject and body of the latest articles using the ids variable, which was the response of the newnews function. But we have no newnews for this date time. See the output screen of the execution of the above code.

Conclusion

This article was all about “Python nntplib.NNTP”. We have elaborated on the use of the NNTP class within the nntplib library of python. For this, we have utilized a total of 2 examples in our article to separately discuss different uses of it in python code. The detailed explanation of the code and the output depicts the usage of Python nntplib.NNTP. These examples are implemented on the Spyder tool in Windows operating system. However, it is up to the user to choose to work on the desired operating system.

About the author

Kalsoom Bibi

Hello, I am a freelance writer and usually write for Linux and other technology related content