package com.npes87184.ntuapp; import android.os.AsyncTask; import android.util.Log; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; /** * Created by npes87184 on 2015/4/4. */ enum DataType { Notification, Activity } public class DataFetch extends AsyncTask<DataType, Void, Boolean> { @Override protected Boolean doInBackground(DataType[] params) { switch (params[0]) { case Notification: // clear old data DataClass.getInstance().notifi.clear(); DataClass.getInstance().link.clear(); try { Document doc = Jsoup.connect("http://www.ntu.edu.tw/").get(); Elements tableTags = doc.getElementsByAttributeValue("id", "news").select("ul"); Elements aTags = tableTags.select("a"); for (int i = 0; i < aTags.size(); i++) { DataClass.getInstance().notifi.add(aTags.get(i).text()); DataClass.getInstance().link.add((aTags.get(i).attr("href"))); } } catch (Exception e) { return false; } break; case Activity: //clear old data DataClass.getInstance().activity.clear(); try { Document doc = Jsoup.connect("https://ntu-activities.herokuapp.com/activities").get(); Elements pTags = doc.select("p"); for (int i = 0; i < pTags.size(); i++) { DataClass.getInstance().activity.add(pTags.get(i).text()); } } catch (Exception e) { return false; } for(int i=1;i<13;i++) { for(int j=1;j<32;j++) { DataClass.getInstance().events[i][j] = "0"; } } try { for(String input : DataClass.getInstance().activity) { String[] line = input.split(" ")[0].split("-"); //fix activity has space String [] temp_line = input.split(" "); String output = ""; for(int i=1;i<temp_line.length;i++) { output = output + " " + temp_line[i]; } if(DataClass.getInstance().events[Integer.parseInt(line[1])][Integer.parseInt(line[2])].equals("0")) { DataClass.getInstance().events[Integer.parseInt(line[1])][Integer.parseInt(line[2])] = output; } else { DataClass.getInstance().events[Integer.parseInt(line[1])][Integer.parseInt(line[2])] = DataClass.getInstance().events[Integer.parseInt(line[1])][Integer.parseInt(line[2])] + ", " + output; } } } catch(Exception e) { Log.i("error", "bye"); } break; } return true; } @Override protected void onPostExecute(Boolean bool) { } }