Example usage for org.apache.commons.net.nntp NNTPClient iterateArticleInfo

List of usage examples for org.apache.commons.net.nntp NNTPClient iterateArticleInfo

Introduction

In this page you can find the example usage for org.apache.commons.net.nntp NNTPClient iterateArticleInfo.

Prototype

public Iterable<Article> iterateArticleInfo(long lowArticleNumber, long highArticleNumber) throws IOException 

Source Link

Document

Return article headers for all articles between lowArticleNumber and highArticleNumber, inclusively, using the XOVER command.

Usage

From source file:examples.nntp.MessageThreading.java

public static void main(String[] args) throws SocketException, IOException {

    if (args.length != 2 && args.length != 4) {
        System.out.println("Usage: MessageThreading <hostname> <groupname> [<user> <password>]");
        return;//w  ww  . j  a  v  a 2s. com
    }

    String hostname = args[0];
    String newsgroup = args[1];

    NNTPClient client = new NNTPClient();
    client.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true));
    client.connect(hostname);

    if (args.length == 4) { // Optional auth
        String user = args[2];
        String password = args[3];
        if (!client.authenticate(user, password)) {
            System.out.println("Authentication failed for user " + user + "!");
            System.exit(1);
        }
    }

    String fmt[] = client.listOverviewFmt();
    if (fmt != null) {
        System.out.println("LIST OVERVIEW.FMT:");
        for (String s : fmt) {
            System.out.println(s);
        }
    } else {
        System.out.println("Failed to get OVERVIEW.FMT");
    }
    NewsgroupInfo group = new NewsgroupInfo();
    client.selectNewsgroup(newsgroup, group);

    long lowArticleNumber = group.getFirstArticleLong();
    long highArticleNumber = lowArticleNumber + 5000;

    System.out
            .println("Retrieving articles between [" + lowArticleNumber + "] and [" + highArticleNumber + "]");
    Iterable<Article> articles = client.iterateArticleInfo(lowArticleNumber, highArticleNumber);

    System.out.println("Building message thread tree...");
    Threader threader = new Threader();
    Article root = (Article) threader.thread(articles);

    Article.printThread(root, 0);
}

From source file:Main.java

/**
 * Given an {@link NNTPClient} instance, and an integer range of messages, return
 * an array of {@link Article} instances.
 * @param client//  w ww . j a  va  2s.c  om
 * @param lowArticleNumber
 * @param highArticleNumber
 * @return Article[] An array of Article
 * @throws IOException
 */
public static List<Article> getArticleInfo(NNTPClient client, long lowArticleNumber, long highArticleNumber)
        throws IOException {
    List<Article> articles = new ArrayList<Article>();
    Iterable<Article> arts = client.iterateArticleInfo(lowArticleNumber, highArticleNumber);
    for (Article article : arts) {
        articles.add(article);
    }
    return articles;
}