package com.aiyou.bbs.bean;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.content.Context;
import com.aiyou.bbs.utils.BBSManager;
import com.aiyou.utils.JsonHelper;
import com.aiyou.utils.http.HttpManager;
/**
* 主题帖元数据
*
* @author sollian
*/
public class Threads {
private static final String API_THREADS = BBSManager.API_HEAD + "/threads/";
public int id = -1;
public int group_id = -1;
public int reply_id = -1;
public String flag;
public boolean is_top = false;
public boolean is_subject = false;
public boolean has_attachment = false;
public boolean is_admin = false;
public String title;
public long post_time = -1;
public String board_name;
public int reply_count = -1;
public User user;
public Article[] articles;
public Pagination pagination;
public Threads() {
}
public Threads(String strJson) {
if (strJson == null) {
return;
}
try {
JSONObject jsonObject = new JSONObject(strJson);
id = JsonHelper.getInt(jsonObject, "id");
group_id = JsonHelper.getInt(jsonObject, "group_id");
reply_id = JsonHelper.getInt(jsonObject, "reply_id");
flag = JsonHelper.getString(jsonObject, "flag");
is_top = JsonHelper.getBoolean(jsonObject, "is_top");
is_subject = JsonHelper.getBoolean(jsonObject, "is_subject");
has_attachment = JsonHelper.getBoolean(jsonObject, "has_attachment");
is_admin = JsonHelper.getBoolean(jsonObject, "is_admin");
title = JsonHelper.getString(jsonObject, "title");
post_time = JsonHelper.getLong(jsonObject, "post_time");
board_name = JsonHelper.getString(jsonObject, "board_name");
reply_count = JsonHelper.getInt(jsonObject, "reply_count");
JSONObject userObj = JsonHelper.getJSONObject(jsonObject, "user");
if (null != userObj) {
user = new User(userObj.toString());
if (null == user.id) {
user.id = JsonHelper.getString(jsonObject, "user");
}
} else {
user = new User();
user.id = JsonHelper.getString(jsonObject, "user");
}
if ("null".equals(user.id)) {
user.id = "原帖已删除";
}
JSONObject paginationObj = JsonHelper.getJSONObject(jsonObject,
"pagination");
if (null != paginationObj) {
pagination = new Pagination(paginationObj.toString());
}
JSONArray articleArray = JsonHelper.getJSONArray(jsonObject, "article");
if (null != articleArray) {
int length = articleArray.length();
articles = new Article[length];
for (int i = 0; i < length; i++) {
articles[i] = new Article(articleArray.opt(i).toString());
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
/**
* 获取指定主题的信息
*
* @param board 合法的版面名称
* @param id 文章或主题id
* @return
*/
public static String getThreads(Context context, String board, int id) {
return getThreads(context, board, id, 1);
}
/**
* 获取指定主题的信息
*
* @param board 合法的版面名称
* @param id 文章或主题id
* @param page 主题文章的页数
* @return
*/
public static String getThreads(Context context, String board, int id, int page) {
return HttpManager.getInstance(context).getHttp(context, API_THREADS + board + "/" + id
+ BBSManager.FORMAT + "?page=" + page + "&appkey=" + BBSManager.APPKEY);
}
/**
* 获取指定主题的信息
*
* @param board 合法的版面名称
* @param id 文章或主题id
* @param au 只显示该主题中某一用户的文章,au为该用户的用户名,大小写敏感
* @return
*/
public static String getThreads(Context context, String board, int id, String au) {
return getThreads(context, board, id, au, 1);
}
/**
* 获取指定主题的信息
*
* @param board 合法的版面名称
* @param id 文章或主题id
* @param au 只显示该主题中某一用户的文章,au为该用户的用户名,大小写敏感
* @param page 主题文章的页数
* @return
*/
public static String getThreads(Context context, String board, int id, String au, int page) {
return HttpManager.getInstance(context).getHttp(context,
API_THREADS + board + "/" + id + BBSManager.FORMAT + "?au="
+ au + "&page=" + page + "&appkey=" + BBSManager.APPKEY);
}
}