Search in sources :

Example 1 with IllegalWriteException

use of org.eclipse.ecf.bulletinboard.IllegalWriteException in project ecf by eclipse.

the class Thread method createReplyMessage.

public IThreadMessage createReplyMessage() throws IllegalWriteException {
    if ((mode & READ_ONLY) == READ_ONLY) {
        throw new IllegalWriteException(E_READ_ONLY);
    }
    ThreadMessage msg = new ThreadMessage();
    msg.setBulletinBoard(bb);
    msg.setThread(this);
    return msg;
}
Also used : IllegalWriteException(org.eclipse.ecf.bulletinboard.IllegalWriteException) IThreadMessage(org.eclipse.ecf.bulletinboard.IThreadMessage)

Example 2 with IllegalWriteException

use of org.eclipse.ecf.bulletinboard.IllegalWriteException in project ecf by eclipse.

the class Thread method postReply.

public ID postReply(IThreadMessage message) throws IllegalWriteException, BBException {
    if ((mode & READ_ONLY) == READ_ONLY) {
        throw new IllegalWriteException(E_READ_ONLY);
    }
    ThreadMessage msg = (ThreadMessage) message;
    // FIXME assert msg.bb == bb;
    assert msg.getThread() == this;
    PostRequest request = new PostRequest(bb.getHttpClient(), bb.getURL(), "posting.php");
    NameValuePair[] params = new NameValuePair[] { new NameValuePair("subject", msg.getName()), new NameValuePair("message", msg.getMessage()), new NameValuePair("t", String.valueOf(id.getLongValue())), new NameValuePair("mode", "reply"), // checkbox : disabled new NameValuePair("notify", "on"),
    new NameValuePair("post", "Submit") };
    request.addParameters(params);
    String resp = null;
    try {
        request.execute();
        resp = request.getResponseBodyAsString();
        String info = ((PHPBBParser) bb.getParser()).parseInformationMessage(resp);
        Matcher m = Pattern.compile("<a href=\"viewtopic.php\\?p=([0-9]+)(?:.*?)\">").matcher(info);
        if (m.find()) {
            synchronized (this) {
                try {
                    lastReadMessageId = (ThreadMessageID) new ThreadMessageFactory().createBBObjectId(bb.getNamespace(), bb.getURL(), m.group(1));
                    return lastReadMessageId;
                } catch (NumberFormatException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IDCreateException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        } else {
            throw new BBException("The message was not posted.");
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}
Also used : NameValuePair(org.apache.commons.httpclient.NameValuePair) Matcher(java.util.regex.Matcher) IDCreateException(org.eclipse.ecf.core.identity.IDCreateException) BBException(org.eclipse.ecf.bulletinboard.BBException) IOException(java.io.IOException) PostRequest(org.eclipse.ecf.internal.bulletinboard.commons.webapp.PostRequest) IllegalWriteException(org.eclipse.ecf.bulletinboard.IllegalWriteException) IThreadMessage(org.eclipse.ecf.bulletinboard.IThreadMessage)

Example 3 with IllegalWriteException

use of org.eclipse.ecf.bulletinboard.IllegalWriteException in project ecf by eclipse.

the class Forum method postThread.

public boolean postThread(IThread thread) throws IllegalWriteException, BBException {
    if ((mode & READ_ONLY) == READ_ONLY) {
        throw new IllegalWriteException(E_READ_ONLY);
    }
    WebRequest request = new PostRequest(bb.getHttpClient(), bb.getURL(), "posting.php");
    NameValuePair[] params;
    params = new NameValuePair[] { new NameValuePair("subject", thread.getPrePostMessage().getName()), new NameValuePair("message", thread.getPrePostMessage().getMessage()), new NameValuePair("f", String.valueOf(id.getLongValue())), new NameValuePair("mode", "newtopic"), // checkbox : disabled new NameValuePair("notify", "on"),
    new NameValuePair("post", "Submit") };
    request.addParameters(params);
    // We seem to always have to get the response body.
    try {
        request.execute();
        request.getResponseBodyAsString();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    request.releaseConnection();
    return true;
}
Also used : NameValuePair(org.apache.commons.httpclient.NameValuePair) PostRequest(org.eclipse.ecf.internal.bulletinboard.commons.webapp.PostRequest) WebRequest(org.eclipse.ecf.internal.bulletinboard.commons.webapp.WebRequest) IllegalWriteException(org.eclipse.ecf.bulletinboard.IllegalWriteException) IOException(java.io.IOException)

Example 4 with IllegalWriteException

use of org.eclipse.ecf.bulletinboard.IllegalWriteException in project ecf by eclipse.

the class Forum method createThread.

public IThread createThread() throws IllegalWriteException, BBException {
    if ((mode & READ_ONLY) == READ_ONLY) {
        throw new IllegalWriteException(E_READ_ONLY);
    }
    Thread thread = new Thread();
    thread.setBulletinBoard(bb);
    thread.forum = this;
    return thread;
}
Also used : IllegalWriteException(org.eclipse.ecf.bulletinboard.IllegalWriteException) IThread(org.eclipse.ecf.bulletinboard.IThread)

Example 5 with IllegalWriteException

use of org.eclipse.ecf.bulletinboard.IllegalWriteException in project ecf by eclipse.

the class Thread method postReply.

public ID postReply(IThreadMessage message) throws IllegalWriteException, BBException {
    if ((mode & READ_ONLY) == READ_ONLY) {
        throw new IllegalWriteException(E_READ_ONLY);
    }
    ThreadMessage msg = (ThreadMessage) message;
    // FIXME assert msg.bb == bb;
    assert msg.getThread() == this;
    PostRequest request = new PostRequest(bb.getHttpClient(), bb.getURL(), "newreply.php");
    NameValuePair[] params = new NameValuePair[] { new NameValuePair("emailupdate", "9999"), new NameValuePair("rating", "0") };
    request.addParameters(params);
    params = new NameValuePair[] { new NameValuePair("title", message.getName()), new NameValuePair("message", msg.getMessage()), new NameValuePair("iconid", "0"), new NameValuePair("s", ""), new NameValuePair("do", "postreply"), new NameValuePair("t", String.valueOf(id.getLongValue())) };
    request.addParameters(params);
    if (message.getReplyTo() != null) {
        params = new NameValuePair[] { new NameValuePair("p", String.valueOf(((ThreadMessageID) message.getReplyTo().getID()).getLongValue())) };
        request.addParameters(params);
    }
    params = new NameValuePair[] { new NameValuePair("posthash", ""), new NameValuePair("poststarttime", ""), new NameValuePair("sbutton", "Submit Reply"), new NameValuePair("parseurl", "1") // checkbox : disabled new NameValuePair("disablesmilies", "1"),
    };
    request.addParameters(params);
    try {
        request.execute();
        // TODO: do we have to do this?
        String resp = request.getResponseBodyAsString();
        Header newLocation = request.getMethod().getResponseHeader("Location");
        if (newLocation == null) {
            throw ((VBParser) bb.getParser()).createVBException("The message was not posted.", resp);
        }
        Matcher m = Pattern.compile("showthread.php\\?p=([0-9]+)").matcher(newLocation.getValue());
        if (m.find()) {
            synchronized (this) {
                lastReadMessageId = (ThreadMessageID) new ThreadMessageFactory().createBBObjectId(bb.getNamespace(), bb.getURL(), m.group(1));
                return lastReadMessageId;
            }
        } else {
            throw ((VBParser) bb.getParser()).createVBException("The message was not posted.", resp);
        }
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (NumberFormatException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IDCreateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}
Also used : NameValuePair(org.apache.commons.httpclient.NameValuePair) ThreadMessageFactory(org.eclipse.ecf.internal.provider.vbulletin.internal.ThreadMessageFactory) Matcher(java.util.regex.Matcher) IDCreateException(org.eclipse.ecf.core.identity.IDCreateException) IOException(java.io.IOException) PostRequest(org.eclipse.ecf.internal.bulletinboard.commons.webapp.PostRequest) Header(org.apache.commons.httpclient.Header) IllegalWriteException(org.eclipse.ecf.bulletinboard.IllegalWriteException) IThreadMessage(org.eclipse.ecf.bulletinboard.IThreadMessage)

Aggregations

IllegalWriteException (org.eclipse.ecf.bulletinboard.IllegalWriteException)6 IThreadMessage (org.eclipse.ecf.bulletinboard.IThreadMessage)4 IOException (java.io.IOException)3 NameValuePair (org.apache.commons.httpclient.NameValuePair)3 PostRequest (org.eclipse.ecf.internal.bulletinboard.commons.webapp.PostRequest)3 Matcher (java.util.regex.Matcher)2 IDCreateException (org.eclipse.ecf.core.identity.IDCreateException)2 Header (org.apache.commons.httpclient.Header)1 BBException (org.eclipse.ecf.bulletinboard.BBException)1 IThread (org.eclipse.ecf.bulletinboard.IThread)1 WebRequest (org.eclipse.ecf.internal.bulletinboard.commons.webapp.WebRequest)1 ThreadMessageFactory (org.eclipse.ecf.internal.provider.vbulletin.internal.ThreadMessageFactory)1