package org.dbpedia.mappings.missingbot.token;
import net.sourceforge.jwbf.core.actions.HttpActionClient;
import net.sourceforge.jwbf.mediawiki.bots.MediaWikiBot;
import org.apache.http.client.CookieStore;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.impl.client.HttpClientBuilder;
import org.dbpedia.mappings.missingbot.label.TranslateLabelArticle;
import java.net.MalformedURLException;
import java.net.URL;
/**
* Created by peterr on 20.06.14.
*/
public class TokenBot {
private MediaWikiBot bot = null;
public TokenBot(String session_name, String session_id, String url) {
HttpActionClient client = null;
try {
client = create_client(session_name,
session_id,
url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
this.bot = new MediaWikiBot(client);
}
public TokenModifyContent save_article(String title, String translation, String language, String token) {
TranslateLabelArticle article = new TranslateLabelArticle(this.bot, title, language);
article.translated_label = translation;
article.setText(article.build_new_text());
article.setEditSummary("label@" + language + " = " + translation);
return this.bot.getPerformedAction(new TokenModifyContent(article, token));
}
public static HttpActionClient create_client(String session_name, String session, String url) throws MalformedURLException {
return create_client(session_name, session, new URL(url));
}
public static HttpActionClient create_client(String session_name, String session, URL url) {
HttpClientBuilder builder = HttpClientBuilder.create();
builder.setUserAgent("missingBot/1.1");
CookieStore cookieStore = new BasicCookieStore();
BasicClientCookie c1 = new BasicClientCookie(session_name + "_session", session);
c1.setDomain(url.getHost());
cookieStore.addCookie(c1);
builder.setDefaultCookieStore(cookieStore);
return new HttpActionClient(builder, url);
}
}