List of usage examples for org.apache.commons.net.nntp NNTPClient selectNewsgroup
public boolean selectNewsgroup(String newsgroup, NewsgroupInfo info) throws IOException
From source file:examples.nntp.ArticleReader.java
public static void main(String[] args) throws SocketException, IOException { if (args.length != 2 && args.length != 3 && args.length != 5) { System.out.println(//from w w w.j a v a 2s .c o m "Usage: MessageThreading <hostname> <groupname> [<article specifier> [<user> <password>]]"); return; } String hostname = args[0]; String newsgroup = args[1]; // Article specifier can be numeric or Id in form <m.n.o.x@host> String articleSpec = args.length >= 3 ? args[2] : null; NNTPClient client = new NNTPClient(); client.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true)); client.connect(hostname); if (args.length == 5) { // Optional auth String user = args[3]; String password = args[4]; if (!client.authenticate(user, password)) { System.out.println("Authentication failed for user " + user + "!"); System.exit(1); } } NewsgroupInfo group = new NewsgroupInfo(); client.selectNewsgroup(newsgroup, group); BufferedReader br; String line; if (articleSpec != null) { br = (BufferedReader) client.retrieveArticleHeader(articleSpec); } else { long articleNum = group.getLastArticleLong(); br = client.retrieveArticleHeader(articleNum); } if (br != null) { while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); } if (articleSpec != null) { br = (BufferedReader) client.retrieveArticleBody(articleSpec); } else { long articleNum = group.getLastArticleLong(); br = client.retrieveArticleBody(articleNum); } if (br != null) { while ((line = br.readLine()) != null) { System.out.println(line); } br.close(); } }
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;/*from w w w.j av a2 s .c o m*/ } 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:org.apache.commons.net.examples.nntp.ArticleReader.java
public static void main(String[] args) throws SocketException, IOException { if (args.length != 2 && args.length != 3 && args.length != 5) { System.out.println(//from w ww .j av a2 s . c o m "Usage: MessageThreading <hostname> <groupname> [<article specifier> [<user> <password>]]"); return; } String hostname = args[0]; String newsgroup = args[1]; // Article specifier can be numeric or Id in form <m.n.o.x@host> String articleSpec = args.length >= 3 ? args[2] : null; NNTPClient client = new NNTPClient(); client.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true)); client.connect(hostname); if (args.length == 5) { // Optional auth String user = args[3]; String password = args[4]; if (!client.authenticate(user, password)) { System.out.println("Authentication failed for user " + user + "!"); System.exit(1); } } NewsgroupInfo group = new NewsgroupInfo(); client.selectNewsgroup(newsgroup, group); BufferedReader brHdr; String line; if (articleSpec != null) { brHdr = (BufferedReader) client.retrieveArticleHeader(articleSpec); } else { long articleNum = group.getLastArticleLong(); brHdr = client.retrieveArticleHeader(articleNum); } if (brHdr != null) { while ((line = brHdr.readLine()) != null) { System.out.println(line); } brHdr.close(); } BufferedReader brBody; if (articleSpec != null) { brBody = (BufferedReader) client.retrieveArticleBody(articleSpec); } else { long articleNum = group.getLastArticleLong(); brBody = client.retrieveArticleBody(articleNum); } if (brBody != null) { while ((line = brBody.readLine()) != null) { System.out.println(line); } brBody.close(); } }
From source file:org.ossmeter.platform.communicationchannel.nntp.local.NntpUtil.java
public static NewsgroupInfo selectNewsgroup(NNTPClient client, NntpNewsGroup newsgroup) { String newsgroupName = newsgroup.getUrl().substring(newsgroup.getUrl().lastIndexOf("/") + 1); NewsgroupInfo newsgroupInfo = new NewsgroupInfo(); try {//from w w w . j a va2 s . c o m client.selectNewsgroup(newsgroupName, newsgroupInfo); } catch (IOException e) { // TODO Auto-generated catch block System.err.println("IOException while selecting newsgroup: '" + newsgroupName + "': " + e.getMessage()); } return newsgroupInfo; }
From source file:org.ossmeter.platform.communicationchannel.nntp.NntpUtil.java
public static NewsgroupInfo selectNewsgroup(NNTPClient client, NntpNewsGroup newsgroup) { String newsgroupName = newsgroup.getNewsGroupName();//newsgroup.getUrl().substring(newsgroup.getUrl().lastIndexOf("/") + 1); NewsgroupInfo newsgroupInfo = new NewsgroupInfo(); try {/*ww w .j a v a2 s. co m*/ client.selectNewsgroup(newsgroupName, newsgroupInfo); } catch (IOException e) { // TODO Auto-generated catch block System.err.println("IOException while selecting newsgroup: '" + newsgroupName + "': " + e.getMessage()); e.printStackTrace(); } return newsgroupInfo; }
From source file:org.rssowl.contrib.internal.nntp.NewsGroupHandler.java
public Pair<IFeed, IConditionalGet> reload(URI link, IProgressMonitor monitor, Map<Object, Object> properties) throws CoreException { IModelFactory factory = Owl.getModelFactory(); /* Create a new empty feed from the existing one */ IFeed feed = factory.createFeed(null, link); /* Retrieve last article pointer */ Integer lastArticleId = getLastArticleId(properties); /* Create a new HttpClient */ NNTPClient client = new NNTPClient(); try {//from w ww . ja v a 2s .c om /* Support early cancellation */ if (monitor.isCanceled()) return null; /* Connect to Server */ if (link.getPort() != -1) client.connect(link.getHost(), link.getPort()); else client.connect(link.getHost()); /* Set Timeout */ setTimeout(client, properties); /* Support early cancellation */ if (monitor.isCanceled()) return null; /* Authentication if provided */ setupAuthentication(link, client); /* Check Authentication Required */ checkAuthenticationRequired(client); /* Support early cancellation */ if (monitor.isCanceled()) return null; /* Enable Reader Mode */ client.sendCommand(MODE_READER); /* Support early cancellation */ if (monitor.isCanceled()) return null; /* Select Newsgroup */ String newsgroup = link.getPath().replace("/", ""); NewsgroupInfo groupInfo = new NewsgroupInfo(); boolean selected = client.selectNewsgroup(newsgroup, groupInfo); /* Check Authentication Required */ checkAuthenticationRequired(client); /* Check Newsgroup Selected */ if (!selected) throwConnectionException("Unable to select Newsgroup", client); /* Support early cancellation */ if (monitor.isCanceled()) return null; /* First reload: Retrieve an initial amount of News */ if (lastArticleId == null) { /* Set Article Pointer to last Article */ int status = client.stat(groupInfo.getLastArticle()); if (status != STATUS_ARTICLE_POINTER_OK) throwConnectionException("Unable to retrieve any News", client); /* Retrieve initial news */ for (int i = 0; i < INITIAL_NEWS && !monitor.isCanceled(); i++) { createNews(client.retrieveArticle(), feed, monitor); /* Goto previous news if provided */ int result = client.last(); if (result != STATUS_ARTICLE_POINTER_OK) break; } } /* Subsequent reload: Set pointer to last retrieved News */ else { /* Set Article Pointer to last retrieved News */ int status = client.stat(lastArticleId); if (status != STATUS_ARTICLE_POINTER_OK) throwConnectionException("Unable to retrieve any News", client); /* Retrieve all the following News */ while (client.next() == STATUS_ARTICLE_POINTER_OK && !monitor.isCanceled()) createNews(client.retrieveArticle(), feed, monitor); } /* Remember last article's ID */ lastArticleId = groupInfo.getLastArticle(); } /* Wrap Exceptions */ catch (IOException e) { throw new ConnectionException(Activator.createErrorStatus(e.getMessage(), e)); } /* Disconnect */ finally { try { if (client.isConnected()) client.disconnect(); } catch (IOException e) { throw new ConnectionException(Activator.createErrorStatus(e.getMessage(), e)); } } /* Create Conditional Get Object */ IConditionalGet conditionalGet = null; if (lastArticleId != null) conditionalGet = factory.createConditionalGet(null, link, String.valueOf(lastArticleId)); return Pair.create(feed, conditionalGet); }