package jianshu.io.app.model; import android.content.Context; import com.google.gson.Gson; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; /** * Created by Administrator on 2014/4/12. */ public class UserInfo { private String userId; private String name; private String introduce; private String avatarUrl; public static UserInfo loadFromFileCache(Context context) { try { InputStreamReader reader = new InputStreamReader(context.openFileInput("userinfo")); BufferedReader bufferedReader = new BufferedReader(reader); String receiveString = null; StringBuilder stringBuilder = new StringBuilder(); while ( (receiveString = bufferedReader.readLine()) != null ) { stringBuilder.append(receiveString); } Gson gson = new Gson(); return gson.fromJson(stringBuilder.toString(), UserInfo.class); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } private static void save(Context context, UserInfo info) { Gson gson = new Gson(); String json = gson.toJson(info); try { OutputStreamWriter writer = new OutputStreamWriter(context.openFileOutput("userinfo", Context.MODE_PRIVATE)); writer.write(json); writer.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static UserInfo load(Context context, String userId) { String userPageUrl = String.format("http://jianshu.io/users/%s/latest_articles", userId); Object httpResult = JianshuSession.getsInstance().getSync(userPageUrl, true); if(httpResult instanceof String) { UserInfo userInfo = new UserInfo(); userInfo.userId = userId; Document doc = Jsoup.parse((String)httpResult); Element basicInfoEl = doc.select("div.basic-info").get(0); Element avatarEl = basicInfoEl.select("img").get(0); userInfo.avatarUrl = avatarEl.attr("src"); Element nameEl = basicInfoEl.select("h3 a").get(0); userInfo.name = nameEl.text(); Element introduceEle = basicInfoEl.select("p.intro").get(0); userInfo.introduce = introduceEle.text(); save(context, userInfo); return userInfo; } else { return null; } } public String getName() { return name; } public void setName(String mName) { this.name = mName; } public String getIntroduce() { return introduce; } public void setIntroduce(String mIntroduce) { this.introduce = mIntroduce; } public String getAvatarUrl() { return avatarUrl; } public void setAvatarUrl(String mAvatarUrl) { this.avatarUrl = mAvatarUrl; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } }