info.bliki.api.User Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of bliki-core Show documentation
Show all versions of bliki-core Show documentation
This is the core project.
The newest version!
package info.bliki.api;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
/**
* Manages user data from the Wikimedia API.
*
* See also Mediawiki
* API:Login
*/
public class User {
protected static final String SUCCESS_ID = "Success";
protected static final String NEED_TOKEN_ID = "NeedToken";
private static final String ILLEGAL_ID = "Illegal";
private String result;
private String userId;
private final String username;
private String normalizedUsername;
private String token;
private final String password;
private final String actionUrl;
private final String domain;
protected Connector connector;
/**
* Create a User for a Mediawiki wiki
*
* @param name User Name
* @param password Password
* @param mediawikiApiUrl A mediawiki API Url
* (example: http://meta.wikimedia.org/w/api.php
*/
public User(String name, String password, String mediawikiApiUrl) {
this(name, password, mediawikiApiUrl, "");
}
/**
* Create a User for a Mediawiki wiki
*
* @param name User Name
* @param password Password
* @param mediawikiApiUrl
* A mediawiki API Url (example: http://meta.wikimedia.org/w/api.php
* @param domain Domain (optional)
*/
public User(String name, String password, String mediawikiApiUrl, String domain) {
super();
this.result = ILLEGAL_ID;
this.userId = "";
this.username = name;
this.normalizedUsername = "";
this.password = password;
this.domain = domain;
this.actionUrl = mediawikiApiUrl;
this.connector = new Connector();
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return Objects.equals(normalizedUsername, user.normalizedUsername);
}
@Override
public int hashCode() {
return Objects.hash(normalizedUsername);
}
/**
* Complete the users login information. The user must contain a username,
* password and actionURL. See Mediawiki API:Login
*
* @return true
if th login was successful; false
* otherwise.
* @see User#getActionUrl()
*/
public boolean login() {
return connector.login(this) != null;
}
/**
* Get the content of Mediawiki wiki pages.
*
* @param listOfTitleStrings
* a list of title Strings "ArticleA,ArticleB,..."
* @return a list of downloaded Mediawiki pages.
*/
public List queryContent(List listOfTitleStrings) {
return connector.queryContent(this, listOfTitleStrings);
}
/**
* Get the content of Mediawiki wiki pages.
*
* @param listOfTitleStrings
* a list of title Strings "ArticleA,ArticleB,..."
* @return a list of downloaded Mediawiki pages.
*/
public List queryContent(String... listOfTitleStrings) {
return queryContent(arrayToList(listOfTitleStrings));
}
public List queryCategories(List listOfTitleStrings) {
return connector.queryCategories(this, listOfTitleStrings);
}
public List queryCategories(String... listOfTitleStrings) {
return queryCategories(arrayToList(listOfTitleStrings));
}
public List queryInfo(List listOfTitleStrings) {
return connector.queryInfo(this, listOfTitleStrings);
}
public List queryInfo(String... listOfTitleStrings) {
return queryInfo(arrayToList(listOfTitleStrings));
}
public List queryLinks(List listOfTitleStrings) {
return connector.queryLinks(this, listOfTitleStrings);
}
public List queryLinks(String... listOfTitleStrings) {
return queryLinks(arrayToList(listOfTitleStrings));
}
public List queryImageinfo(List listOfImageStrings) {
return connector.queryImageinfo(this, listOfImageStrings);
}
public List queryImageinfo(List listOfImageStrings, int imageWidth) {
return connector.queryImageinfo(this, listOfImageStrings, imageWidth);
}
public List queryImageinfo(String... listOfImageStrings) {
return queryImageinfo(arrayToList(listOfImageStrings));
}
public List queryImageinfo(String[] listOfImageStrings, int imageWidth) {
return queryImageinfo(arrayToList(listOfImageStrings), imageWidth);
}
public String getResult() {
return result;
}
protected void setResult(String result) {
this.result = result;
}
public String getToken() {
return token;
}
protected void setToken(String token) {
this.token = token;
}
public String getUserid() {
return userId;
}
protected void setUserid(String userid) {
this.userId = userid;
}
public String getUsername() {
return username;
}
/**
* Get the Mediawiki API Url defined for this user(example:
* http://meta.wikimedia.org/w/api.php)
*/
public String getActionUrl() {
return actionUrl;
}
public String getDomain() {
return domain;
}
public String getPassword() {
return password;
}
public boolean isAuthenticated() {
return SUCCESS_ID.equals(result);
}
@Override
public String toString() {
return "Result: " + result + "; UserID: " + userId + "; UserName: " + username + "; NormalizedUsername: "
+ normalizedUsername + "; Token: " + token + "; ActionURL: " + actionUrl;
}
public String getNormalizedUsername() {
return normalizedUsername;
}
protected void setNormalizedUsername(String normalizedUsername) {
this.normalizedUsername = normalizedUsername;
}
private List arrayToList(String[] listOfTitleStrings) {
List list = new ArrayList<>();
if (listOfTitleStrings != null) {
Collections.addAll(list, listOfTitleStrings);
}
return list;
}
}