package tk.djcrazy.libCC98; import java.net.URLEncoder; import tk.djcrazy.MyCC98.application.MyApplication; import tk.djcrazy.libCC98.data.LoginType; import android.app.Application; import com.google.inject.Inject; import com.google.inject.Singleton; @Singleton public class CC98UrlManagerImpl implements ICC98UrlManager { private final String CC98 = "http://www.cc98.org/"; @Inject private Application application; private MyApplication getApplication() { return (MyApplication) application; } private String getClientPrefix() { if (getProxyType()==LoginType.USER_DEFINED) { return getProxyUrl(); } else { return CC98; } } private String getClientPrefix(LoginType proxy) { if (proxy==LoginType.USER_DEFINED) { return getProxyUrl(); } else { return CC98; } } private String getClientPrefix(LoginType proxy, String proxyHost) { if (proxy==LoginType.USER_DEFINED) { return proxyHost; } else { return CC98; } } private LoginType getProxyType() { return ((MyApplication) application).getCurrentUserData().getLoginType(); } @Override public String getGetOutboxUrl(String pageNum) { return getClientPrefix() + "usersms.asp?action=issend&page=" + pageNum; } @Override public String getGetInboxUrl(String pageNum) { return getClientPrefix() + "usersms.asp?action=inbox&page=" + pageNum; } @Override public String getQueryUrl() { return getClientPrefix() + "queryresult.asp"; } @Override public String getQueryReferer() { return getClientPrefix() + "query.asp?boardid=0"; } @Override public String getUploadPictureUrl() { return getClientPrefix() + "saveannouce_upfile.asp?boardid=10"; } @Override public String getTodayBoardList() { return getClientPrefix() + "boardstat.asp?boardid=0"; } @Override public String getSearchUrl(String keyword, String boardid, String sType, int page) { StringBuilder sBuilder = new StringBuilder(getClientPrefix()); sBuilder.append("queryresult.asp?page=").append(page).append("&stype=") .append(sType).append("&pSearch=1&nSearch=&keyword=") .append(keyword).append("&SearchDate=1000&boardid=") .append(boardid).append("&sertype=1"); return sBuilder.toString(); } @Override public String getInboxUrl(int pageNum) { return getClientPrefix() + "usersms.asp?action=inbox&page=" + pageNum; } @Override public String getOutboxUrl(int pageNum) { return getClientPrefix() + "usersms.asp?action=issend&page=" + pageNum; } @Override public String getMessagePageUrl(int pmId) { return getClientPrefix() + "messanger.asp?action=read&id=" + pmId; } @Override public String getPersonalBoardUrl() { return getClientPrefix(); } @Override public String getClientUrl() { if (getProxyType()==LoginType.USER_DEFINED) { return getProxyUrl(); } else { return CC98; } } private String getProxyUrl() { return getApplication().getCurrentUserData().getProxyHost(); } @Override public String getBoardUrl(String boardId, int pageNum) { return getClientPrefix() + "list.asp?boardid=" + boardId + "&page=" + pageNum; } @Override public String getBoardUrl(String boardId) { return getBoardUrl(boardId, 1); } @Override public String getPostUrl(String boardId, String postId, int pageNum) { return getClientPrefix() + "dispbbs.asp?boardID=" + boardId + "&ID=" + postId + "&star=" + pageNum; } @Override public String getCC98PostUrl(String boardId, String postId, int pageNum) { return CC98 + "dispbbs.asp?boardID=" + boardId + "&ID=" + postId + "&star=" + pageNum; } @Override public String getHotTopicUrl() { return getClientPrefix() + "hottopic.asp"; } @Override public String getUserProfileUrl(String userName) { return getClientPrefix() + "dispuser.asp?name=" + URLEncoder.encode(userName); } @Override public String getUserProfileUrl(LoginType type, String userName) { return getClientPrefix(type) + "dispuser.asp?name=" + URLEncoder.encode(userName); } @Override public String getUserProfileUrl(LoginType type, String proxyHost, String userName) { return getClientPrefix(type, proxyHost) + "dispuser.asp?name=" + URLEncoder.encode(userName); } @Override public String getNewPostUrl(int pageNum) { return getClientPrefix() + "queryresult.asp?stype=3" + "&page=" + pageNum; } @Override public String getUserManagerUrl() { return getClientPrefix() + "usermanager.asp"; } @Override public String getAddFriendUrl() { return getClientPrefix() + "usersms.asp?action=friend"; } @Override public String getAddFriendUrlReferrer() { return getClientPrefix() + "usersms.asp?action=friend&todo=addF"; } @Override public String getLoginUrl() { return getClientPrefix() + "sign.asp"; } @Override public String getLoginUrl(LoginType loginType) { return getClientPrefix(loginType) + "sign.asp"; } @Override public String getLoginUrl(LoginType loginType, String proxyHost) { return getClientPrefix(loginType, proxyHost) + "sign.asp"; } @Override public String getSendPmUrl() { return getClientPrefix() + "messanger.asp?action=send"; } @Override public String getPushNewPostReferer(String boardID) { return getClientPrefix() + "announce.asp?boardid=" + boardID; } @Override public String getPushNewPostUrl(String boardId) { return getClientPrefix() + "SaveAnnounce.asp?boardID=" + boardId; } @Override public String getSubmitReplyUrl(String boardID) { return getClientPrefix() + "SaveReAnnounce.asp?method=Topic&boardID=" + boardID; } @Override public String getSubmitReplyReferer(String boardID, String rootID) { return getClientPrefix() + "reannounce.asp?BoardID=" + boardID + "&id=" + rootID + "&star=1"; } @Override public String getClientUrl(LoginType type) { if (type==LoginType.USER_DEFINED) { return getProxyUrl(); } else { return CC98; } } @Override public String getClientUrl(LoginType type, String proxyHost) { if (type==LoginType.USER_DEFINED) { return proxyHost; } else { return CC98; } } }