All pastes #577040 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-06-19 19:14 UTC
rendered paste body
	private void lookupWord(String word, String channel, String nick) {
		try {
			WebRequest request = new GetMethodWebRequest("http://en.wikipedia.org/wiki/Special:Search?search=" + word + "&go=Go");
			WebResponse resultPage;
			synchronized(this.wc) {
				resultPage = this.wc.getResponse(request);
			}
			String url = resultPage.getURL().toString();
			TextBlock[] blocks = resultPage.getTextBlocks();
			for (TextBlock textBlock : blocks) {

				Pattern p = Pattern.compile("^(.{100,}?)\\.($| [A-Z])");
				Matcher m = p.matcher(textBlock.getText());
				if (m.find()) {
					if(m.group(1).contains("No page with that title exists")) {
						break;
					}
					if(m.group(1).contains("You can create this article or request it")) {
						break;
					}
					if(m.group(1).contains("Please wikify (format) this article")) {
						break;
					}
					
					String desc=m.group(1);
					desc=desc.replaceAll("\\s*\\(.+?\\)","");
					
					sendMessage(channel, nick + ", " + trimText(desc,450-6-url.length()-nick.length()-2) + ". [ " + url + " ]");
					return;
				}
			}
		} catch (Exception e) {
			sendNotice(nick, "Problem while filling request: " + e.getMessage());
		}
		sendMessage(channel, nick + ", I couldn't find a wikipedia entry. Try being more specific.");
	}