Example usage for org.jsoup.nodes Element text

List of usage examples for org.jsoup.nodes Element text

Introduction

In this page you can find the example usage for org.jsoup.nodes Element text.

Prototype

public String text() 

Source Link

Document

Gets the combined text of this element and all its children.

Usage

From source file:com.rickendirk.rsgwijzigingen.ZoekService.java

private void addDagEnDatum(Wijzigingen wijzigingen, Document doc) {
    //Dag waarvoor wijzigingen zijn ophalen
    Element dag = doc.select("body > div > div:nth-child(2) > p > b > span").first();
    //Compatibiliteit met andere opmaak, om NPE te voorkomen
    if (dag == null) {
        dag = doc.select("body > center:nth-child(2) > div").first();
    }//w  w w  .  j  a  v a  2  s  .  c o  m
    String dagStr = dag.text().toLowerCase();
    // Woorden staan verkeerd om: omwisselen
    int indexVanSpatie = dagStr.indexOf(" ");
    String datum = dagStr.substring(0, indexVanSpatie);
    String rest = dagStr.substring(indexVanSpatie + 1);
    String dagGoed = rest + " " + datum;
    wijzigingen.setDagEnDatum(dagGoed);

    //Stand ophalen: staat in 1e tabel van HTML
    Element tableDate = doc.select("table").get(0);
    String dateFullText = tableDate.getElementsContainingOwnText("Stand:").text();
    //Deel achter "Stand:" pakken
    String FullTextSplit[] = dateFullText.split("Stand:");
    wijzigingen.setStandZin("Stand van" + FullTextSplit[1]);
}

From source file:com.rickendirk.rsgwijzigingen.ZoekService.java

private ArrayList<String> checkerKlas() {
    ArrayList<String> tempList = new ArrayList<>();
    //String halen uit SP
    String klasTextS = PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
            .getString("pref_klas", "");
    //Checken of klas niet leeg is
    if (klasTextS.equals("")) {
        tempList.add("geenKlas");
        return tempList;
    }/*from  www.  ja  v a2  s  . c  o m*/
    //Eerste teken klas mag geen letter zijn
    if (Character.isLetter(klasTextS.charAt(0))) {
        tempList.add("EersteTekenLetter");
        return tempList;
    }
    //String opsplitsen in 2 delen, om naar hoofdletters te converteren
    char charcijfer = klasTextS.charAt(0);
    String klascijfer = String.valueOf(charcijfer);
    char charafdeling = klasTextS.charAt(1);
    String klasafdelingBig = String.valueOf(charafdeling).toUpperCase();
    //Onderstaand voor hoofdlettercorrectie
    String klasCorrect; //KlasCorrect is klas na hoofdlettercorrectie
    switch (klasTextS.length()) {
    case 2:
        klasCorrect = klascijfer + klasafdelingBig;
        break;
    case 3:
        char klasabc = klasTextS.charAt(2);
        String klasabcSmall = String.valueOf(klasabc).toLowerCase();
        klasCorrect = klascijfer + klasafdelingBig + klasabcSmall;
        break;
    case 4:
        char klasafdeling2 = klasTextS.charAt(2);
        String klasafdeling2Big = String.valueOf(klasafdeling2).toUpperCase();
        klasabc = klasTextS.charAt(3);
        klasabcSmall = String.valueOf(klasabc).toLowerCase();

        klasCorrect = klascijfer + klasafdelingBig + klasafdeling2Big + klasabcSmall;
        break;
    default:
        tempList.add("klasMeerDan4Tekens");
        return tempList;
    }

    //Try en catch in het geval dat de internetverbinding mist
    try {
        String url = "http://www.rsgtrompmeesters.nl/roosters/roosterwijzigingen/Lijsterbesstraat/subst_001.htm";
        Document doc = Jsoup.connect(url).get();
        Elements tables = doc.select("table");
        if (tables.size() < 2) {
            //Geen geschikte tabel aanwezig
            tempList.add("geenTabel");
            return tempList;
        }
        Element table = tables.get(1);
        Elements rows = table.select("tr");
        //Loop genereren, voor elke row kijken of het de goede tekst bevat
        //Beginnen bij 4e, bovenstaande is niet belangrijk
        for (int i = 2; i < rows.size(); i++) {
            Element row = rows.get(i);
            Elements cols = row.select("td");

            if (cols.get(0).text().contains(klasCorrect)) {
                String vakOud = Jsoup.parse(cols.get(2).toString()).text();
                String docentOud = Jsoup.parse(cols.get(3).toString()).text();
                String vakNieuw = Jsoup.parse(cols.get(4).toString()).text();
                String docentNieuw = Jsoup.parse(cols.get(5).toString()).text();
                //If in geval van uitval, else ingeval van wijziging
                if (Jsoup.parse(cols.get(6).toString()).text().contains("--")) {
                    //2 opties: wordt verplaatst of valt uit
                    if (Jsoup.parse(cols.get(8).toString()).text().contains("Uitval")) {
                        String wijziging = Jsoup.parse(cols.get(1).toString()).text() + "e uur "
                                + Jsoup.parse(cols.get(2).toString()).text() + " valt uit";
                        tempList.add(wijziging);
                    } else {
                        //Uur wordt verplaatst
                        String wijziging = Jsoup.parse(cols.get(1).toString()).text() + "e uur "
                                + "wordt verplaatst naar " + Jsoup.parse(cols.get(8).toString()).text();
                        tempList.add(wijziging);
                    }
                } else if (vakOud.equals(vakNieuw) && docentOud.equals(docentNieuw)) {
                    String wijziging = Jsoup.parse(cols.get(1).toString()).text() + "e uur " + vakOud
                            + " wordt verplaatst naar " + Jsoup.parse(cols.get(6).toString()).text();
                    tempList.add(wijziging);
                } else {
                    String wijzigingKaal;
                    if (vakOud.equals(vakNieuw) && !docentOud.equals(docentNieuw)) {
                        // Opvang door andere docent: dit staat alleen bij klas omdat
                        // dit amper gebeurt bij clusters
                        wijzigingKaal = Jsoup.parse(cols.get(1).toString()).text() + "e uur " + docentOud
                                + " wordt opgevangen door " + docentNieuw;
                    } else { //Geen opvang door andere docent, lokaalwijziging oid
                        wijzigingKaal =
                                // Voegt alle kolommen samen tot 1 string
                                // .text() zorgt voor leesbare text
                                // Spaties voor leesbaarheid
                                Jsoup.parse(cols.get(1).toString()).text() + "e uur "
                                        + Jsoup.parse(cols.get(2).toString()).text() + " "
                                        + Jsoup.parse(cols.get(3).toString()).text() + " wordt "
                                        + Jsoup.parse(cols.get(4).toString()).text() + " "
                                        + Jsoup.parse(cols.get(5).toString()).text() + " in "
                                        + Jsoup.parse(cols.get(6).toString()).text();
                    }
                    //ipv en naar bevatten een "/" ivm uren (ma 12-04 / 4)
                    String ipv = "";
                    if (Jsoup.parse(cols.get(7).toString()).text().contains("/")) {
                        ipv = "ipv " + Jsoup.parse(cols.get(7).toString()).text();
                    }
                    String naar = "";
                    if (Jsoup.parse(cols.get(8).toString()).text().contains("/")) {
                        naar = "naar " + Jsoup.parse(cols.get(8).toString()).text() + " ";
                    }
                    String vervangingsTekst = "";
                    //&nbsp; staat in lege cell, encoding enz, zie volgende link:
                    // http://stackoverflow.com/questions/26837034/how-to-tell-if-a-html-table-has-an-empty-cell-nbsp-using-jsoup
                    //Soms veregeten ze de opmerkingen, dan krijg je size = 9 en error
                    if (cols.size() > 9) {
                        if (!Jsoup.parse(cols.get(9).toString()).text().equals("\u00a0")) {
                            vervangingsTekst = "(" + Jsoup.parse(cols.get(9).toString()).text() + ")";
                        }
                    }
                    String wijziging = wijzigingKaal + " " + ipv + " " + naar + " " + vervangingsTekst;
                    tempList.add(wijziging);

                }

            }
            //Geen wijzigingen pas bij laatste rij
            if (i == rows.size() - 1) {
                //Checken of tempList leeg is, zo ja 1 ding toevoegen
                if (tempList.isEmpty()) {
                    tempList.add("Er zijn geen wijzigingen");
                }
                //Dag waarvoor wijzigingen zijn ophalen
                Element dag = doc.select("body > div > div:nth-child(2) > p > b > span").first();
                //Compatibiliteit met andere opmaak, om NPE te voorkomen
                if (dag == null) {
                    dag = doc.select("body > center:nth-child(2) > div").first();
                }
                String dagStr = dag.text().toLowerCase();
                // Woorden staan verkeerd om: omwisselen
                int indexVanSpatie = dagStr.indexOf(" ");
                String datum = dagStr.substring(0, indexVanSpatie);
                String rest = dagStr.substring(indexVanSpatie + 1);
                String dagGoed = rest + " " + datum;
                tempList.add(dagGoed);

                //Stand ophalen: staat in 1e tabel van HTML
                Element tableDate = doc.select("table").get(0);
                String dateFullText = tableDate.getElementsContainingOwnText("Stand:").text();
                //Deel achter "Stand:" pakken
                String FullTextSplit[] = dateFullText.split("Stand:");
                tempList.add(FullTextSplit[1]);
                return tempList;
            }
        }
    } catch (java.io.IOException e) {
        //Error toevoegen aan tempList, dat wordt weergegeven in messagebox
        tempList.clear();
        tempList.add("verbindFout");
        return tempList;
    }
    //Zover hoort de method NOOIT te komen
    tempList.add("andereFout");
    return tempList;
}

From source file:com.rickendirk.rsgwijzigingen.ZoekService.java

private ArrayList<String> checkerClusters() {
    ArrayList<String> tempList = new ArrayList<>();
    //String van klas halen uit SP
    String klasTextS = PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
            .getString("pref_klas", "");
    String url = "http://www.rsgtrompmeesters.nl/roosters/roosterwijzigingen/Lijsterbesstraat/subst_001.htm";
    SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    //Clusters ophalen uit SP
    ArrayList<String> clusters = new ArrayList<>();
    for (int a = 1; a < 15; a++) {
        //String initializen, anders kan hij hem niet toevoegen
        String clusterLowCase = "";
        String cluster = sp.getString("pref_cluster" + a, "");
        //If om nullpointer te voorkomen
        if (!cluster.equals("")) {
            clusterLowCase = cluster.substring(0, 1).toLowerCase() + cluster.substring(1);
        }//w  w w  .  j ava 2  s .c  om
        clusters.add(clusterLowCase);
    }

    //Lege clusters weghalen uit arraylist TODO: Kijken of singleton werkt/wat het is
    clusters.removeAll(Collections.singleton(""));
    //Er moeten wel clusters zijn ingevoerd: Zo nee, komt AlertDialog via onPostExecute
    if (clusters.isEmpty()) {
        tempList.add("geenClusters");
        return tempList;
    }
    //Checken of klas niet leeg is
    if (klasTextS.equals("")) {
        tempList.add("geenKlas");
        return tempList;
    }
    //Eerste teken klas mag geen letter zijn
    if (Character.isLetter(klasTextS.charAt(0))) {
        tempList.add("EersteTekenLetter");
        return tempList;
    }
    //String opsplitsen in 2 delen, om naar hoofdletters te converteren
    char charcijfer = klasTextS.charAt(0);
    String klascijfer = String.valueOf(charcijfer);
    char charafdeling = klasTextS.charAt(1);
    String klasafdelingBig = String.valueOf(charafdeling).toUpperCase();
    //Onderstaand voor hoofdlettercorrectie
    String klasCorrect; //KlasCorrect is klas na hoofdlettercorrectie
    switch (klasTextS.length()) {
    case 2:
        klasCorrect = klascijfer + klasafdelingBig;
        break;
    case 3:
        char klasabc = klasTextS.charAt(2);
        String klasabcSmall = String.valueOf(klasabc).toLowerCase();
        klasCorrect = klascijfer + klasafdelingBig + klasabcSmall;
        break;
    case 4:
        char klasafdeling2 = klasTextS.charAt(2);
        String klasafdeling2Big = String.valueOf(klasafdeling2).toUpperCase();
        klasabc = klasTextS.charAt(3);
        klasabcSmall = String.valueOf(klasabc).toLowerCase();

        klasCorrect = klascijfer + klasafdelingBig + klasafdeling2Big + klasabcSmall;
        break;
    default:
        tempList.add("klasMeerDan4Tekens");
        return tempList;
    }
    //Try en catch in het geval dat de internetverbinding mist
    try {
        Document doc = Jsoup.connect(url).get();
        Elements tables = doc.select("table");
        if (tables.size() < 1) {
            //Geen geschikte tabel aanwezig
            tempList.add("geenTabel");
            return tempList;
        }
        Element table = tables.get(1);
        Elements rows = table.select("tr");
        //Eerste loop is om 2e loop te herhalen voor iedere cluster, tweede loop
        //doorzoekt dan op zowel klas als cluster
        for (int b = 0; b < clusters.size(); b++) {
            for (int i = 2; i < rows.size(); i++) {
                Element row = rows.get(i);
                Elements cols = row.select("td");

                if (cols.get(0).text().contains(klasCorrect) && cols.get(2).text().contains(clusters.get(b))) {
                    String vakOud = Jsoup.parse(cols.get(2).toString()).text();
                    String docentOud = Jsoup.parse(cols.get(3).toString()).text();
                    String vakNieuw = Jsoup.parse(cols.get(4).toString()).text();
                    String docentNieuw = Jsoup.parse(cols.get(5).toString()).text();
                    //If in geval van uitval, else ingeval van wijziging
                    if (Jsoup.parse(cols.get(6).toString()).text().contains("--")) {
                        //2 opties: wordt verplaatst of valt uit
                        if (Jsoup.parse(cols.get(8).toString()).text().contains("Uitval")) {
                            String wijziging = Jsoup.parse(cols.get(1).toString()).text() + "e uur "
                                    + Jsoup.parse(cols.get(2).toString()).text() + " valt uit";
                            tempList.add(wijziging);
                        } else {
                            //Uur wordt verplaatst
                            String wijziging = Jsoup.parse(cols.get(1).toString()).text() + "e uur "
                                    + "wordt verplaatst naar " + Jsoup.parse(cols.get(8).toString()).text();
                            tempList.add(wijziging);
                        }
                    } else if (vakOud.equals(vakNieuw) && docentOud.equals(docentNieuw)) {
                        String wijziging = Jsoup.parse(cols.get(1).toString()).text() + "e uur " + vakOud
                                + " wordt verplaatst naar " + Jsoup.parse(cols.get(6).toString()).text();
                        tempList.add(wijziging);
                    } else {
                        String wijzigingKaal =
                                // Voegt alle kolommen samen tot 1 string
                                // .text() zorgt voor leesbare text
                                // Spaties voor leesbaarheid
                                Jsoup.parse(cols.get(1).toString()).text() + "e uur "
                                        + Jsoup.parse(cols.get(2).toString()).text() + " "
                                        + Jsoup.parse(cols.get(3).toString()).text() + " wordt "
                                        + Jsoup.parse(cols.get(4).toString()).text() + " "
                                        + Jsoup.parse(cols.get(5).toString()).text() + " in "
                                        + Jsoup.parse(cols.get(6).toString()).text();

                        //ipv en naar bevatten een "/" ivm uren (ma 12-04 / 4)
                        String ipv = "";
                        if (Jsoup.parse(cols.get(7).toString()).text().contains("/")) {
                            ipv = "ipv " + Jsoup.parse(cols.get(7).toString()).text();
                        }
                        String naar = "";
                        if (Jsoup.parse(cols.get(8).toString()).text().contains("/")) {
                            naar = "naar " + Jsoup.parse(cols.get(8).toString()).text() + " ";
                        }
                        String vervangingsTekst = "";
                        //&nbsp; staat in lege cell, encoding enz, zie volgende link:
                        // http://stackoverflow.com/questions/26837034/how-to-tell-if-a-html-table-has-an-empty-cell-nbsp-using-jsoup
                        if (cols.size() > 9) {
                            if (!Jsoup.parse(cols.get(9).toString()).text().equals("\u00a0")) {
                                vervangingsTekst = "(" + Jsoup.parse(cols.get(9).toString()).text() + ")";
                            }
                        }
                        String wijziging = wijzigingKaal + " " + ipv + " " + naar + " " + vervangingsTekst;
                        tempList.add(wijziging);
                    }

                }
                //Geen wijzigingen pas bij laatste rij en de laatste cluster
                if (i == rows.size() - 1 && b == clusters.size() - 1) {
                    //Checken of tempList leeg is, zo ja 1 ding toevoegen
                    if (tempList.isEmpty()) {
                        tempList.add("Er zijn geen wijzigingen");
                    }
                    //Dag waarvoor wijzigingen zijn ophalen
                    Element dag = doc.select("body > div > div:nth-child(2) > p > b > span").first();
                    //Compatibiliteit met andere opmaak, om NPE te voorkomen
                    if (dag == null) {
                        dag = doc.select("body > center:nth-child(2) > div").first();
                    }
                    String dagStr = dag.text().toLowerCase();
                    // Woorden staan verkeerd om: omwisselen
                    int indexVanSpatie = dagStr.indexOf(" ");
                    String datum = dagStr.substring(0, indexVanSpatie);
                    String rest = dagStr.substring(indexVanSpatie + 1);
                    String dagGoed = rest + " " + datum;
                    tempList.add(dagGoed);

                    //Stand ophalen: staat in 1e tabel van HTML
                    Element tableDate = doc.select("table").get(0);
                    String dateFullText = tableDate.getElementsContainingOwnText("Stand:").text();
                    //Deel achter "Stand:" pakken
                    String FullTextSplit[] = dateFullText.split("Stand:");
                    tempList.add(FullTextSplit[1]);
                    return tempList;

                }
            }
        }
    } catch (java.io.IOException e) {
        //Error toevoegen aan tempList, dat wordt weergegeven in messagebox
        tempList.clear();
        tempList.add("verbindFout");
        return tempList;
    }
    //Zover hoort de method NOOIT te komen
    tempList.add("andereFout");
    return tempList;
}

From source file:github.popeen.dsub.fragments.SelectPodcastsFragment.java

private String getRssFeed(String url) {
    String url2 = url;/*ww  w  .  j  a  va2s.co  m*/
    try {
        if (url.toLowerCase().contains("itunes.apple.com")) {
            Pattern pattern = Pattern.compile("/id([0-9]*)");
            Matcher matcher = pattern.matcher(url);
            if (matcher.find()) {
                try {
                    String raw = KakaduaUtil.http_get_contents(
                            "https://itunes.apple.com/lookup?id=" + matcher.group(1) + "&entity=podcast");
                    url2 = new JSONObject(raw).getJSONArray("results").getJSONObject(0).getString("feedUrl");
                    Log.w("podcast", url2);
                } catch (Exception e) {
                    Log.w("podcast", e.toString());
                }
            }

        } else if (url.toLowerCase().contains("soundcloud.com")) {
            try {
                Document doc = Jsoup.connect(url).get();
                Elements metas = doc.getElementsByTag("meta");
                for (Element meta : metas) {
                    if (meta.attr("property").equals("al:android:url")) {
                        String id = meta.attr("content").replace("soundcloud://users:", "");
                        url2 = "https://feeds.soundcloud.com/users/soundcloud:users:" + id + "/sounds.rss";
                        Log.w("podcast", url2);
                    }
                }
            } catch (Exception e) {
                Log.w("podcast", e.toString());
            }
        } else if (url.toLowerCase().contains("player.fm/series")) {
            try {
                Document doc = Jsoup.connect(url).get();
                Elements links = doc.select(".blatant");
                for (Element link : links) {
                    if (link.text().equals("Public Feed")) {
                        url2 = link.attr("href");
                        Log.w("podcast", url2);
                    }
                }
            } catch (Exception e) {
                Log.w("podcast", e.toString());
            }
        } else if (url.toLowerCase().contains("acast.com") || url.toLowerCase().contains("podbean.com")) {
            /*
            TODO,
            This uses a standard tag that most podcasting websites support.
            Make it always try this if the url entered is not a valid feed or a website with a specific conversion above like for example iTunes.
            If it fails it needs to prevent the app from adding it to the server and then show an error message
             */
            try {
                Document doc = Jsoup.connect(url).get();
                Elements links = doc.select("link");
                for (Element link : links) {
                    if (link.attr("type").equals("application/rss+xml")) {
                        url2 = link.attr("href");
                        Log.w("podcast", url2);
                    }
                }
            } catch (Exception e) {
                Log.w("podcast", e.toString());
            }
        }
    } catch (Exception e) {
        Log.w("podcast", e.toString());
    }
    return url2;
}

From source file:im.ene.lab.attiq.ui.activities.ItemDetailActivity.java

private void buildArticleMenu(@NonNull Article article) {
    String articleHtml = article.getRenderedBody();
    Elements headers = Jsoup.parse(articleHtml).select("h0, h1, h2, h3, h4, h5, h6");

    mMenuContainer.removeAllViews();//from  w  ww.  j a  v  a 2s.  co m
    final LayoutInflater inflater = LayoutInflater.from(mMenuContainer.getContext());
    if (!UIUtil.isEmpty(headers)) {
        // 1. Find the top level (lowest level)
        Iterator<Element> items = headers.iterator();
        int topLevel = WebUtil.getHeaderLevel(items.next().tagName());
        while (items.hasNext()) {
            int level = WebUtil.getHeaderLevel(items.next().tagName());
            if (topLevel > level) {
                topLevel = level;
            }
        }

        Log.e(TAG, "buildArticleMenu: " + topLevel);
        // 2. Build the menu for headers
        for (final Element item : headers) {
            View menuItemView = inflater.inflate(R.layout.item_detail_menu_row, mMenuContainer, false);
            CheckedTextView menuContent = (CheckedTextView) menuItemView.findViewById(R.id.header_content);
            menuContent.setText(item.text());

            int currentLevel = WebUtil.getHeaderLevel(item.tagName());
            if (currentLevel - topLevel > 0) {
                menuContent.setCompoundDrawablesWithIntrinsicBounds(
                        new ThreadedCommentDrawable(mCommentThreadColor, mHeaderDepthWidth, mHeaderDepthGap,
                                currentLevel - topLevel),
                        null, null, null);
            }

            menuItemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mMenuAnchor = item;
                    mContentView.clearMatches();
                    mContentView.findAllAsync(item.text());
                }
            });

            mMenuContainer.addView(menuItemView);
        }
        mMenuLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
        mArticleHeaderMenu.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                mMenuLayout.openDrawer(GravityCompat.END);
                return true;
            }
        });
    } else {
        mMenuLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
        mArticleHeaderMenu.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                if (!isFinishing() && mContentContainer != null) {
                    Snackbar.make(mContentContainer, R.string.item_detail_no_menu, Snackbar.LENGTH_LONG).show();
                }
                return true;
            }
        });
    }
}

From source file:net.meiolania.apps.habrahabr.fragments.companies.loader.CompaniesLoader.java

@Override
public ArrayList<CompaniesData> loadInBackground() {
    ArrayList<CompaniesData> data = new ArrayList<CompaniesData>();

    try {/*w  w  w.  j  a v a  2s . c o m*/
        String readyUrl = String.format(URL, page);

        Log.i(TAG, "Loading a page: " + readyUrl);

        Document document = Jsoup.connect(readyUrl).get();

        Elements companies = document.select("div.company");

        for (Element company : companies) {
            CompaniesData companiesData = new CompaniesData();

            Element icon = company.select("div.icon > img").first();
            Element index = company.select("div.habraindex").first();
            Element title = company.select("div.description > div.name > a").first();
            Element description = company.select("div.description > p").first();

            companiesData.setTitle(title.text());
            companiesData.setUrl(title.attr("abs:href"));
            // TODO: rewrite the code below
            companiesData.setIcon("http://habrahabr.ru" + icon.attr("src"));
            companiesData.setIndex(index.text());
            companiesData.setDescription(description.text());

            data.add(companiesData);
        }
    } catch (IOException e) {
    }

    return data;
}

From source file:net.meiolania.apps.habrahabr.fragments.events.loader.EventLoader.java

@Override
public ArrayList<EventsData> loadInBackground() {
    ArrayList<EventsData> data = new ArrayList<EventsData>();

    try {//from   w w w .  ja va2 s .com
        String readyUrl = url.replace("%page%", String.valueOf(page));

        Log.i(TAG, "Loading a page: " + readyUrl);

        Document document = Jsoup.connect(readyUrl).get();

        Elements events = document.select("div.event");

        for (Element event : events) {
            EventsData eventsData = new EventsData();

            Element title = event.select("h1.title > a").first();
            //Element detail = event.select("div.detail").first();
            Element text = event.select("div.text").first();
            Element month = event.select("div.date > div.month").first();
            Element day = event.select("div.date > div.day").first();
            Element hubs = event.select("div.hubs").first();

            eventsData.setTitle(title.text());
            eventsData.setUrl(title.attr("abs:href"));
            //eventsData.setDetail(detail.text());
            eventsData.setText(text.text());
            eventsData.setDate(day.text() + " " + month.text());
            eventsData.setHubs(hubs.text());

            data.add(eventsData);
        }
    } catch (IOException e) {
    }

    return data;
}

From source file:net.meiolania.apps.habrahabr.fragments.events.loader.EventShowLoader.java

@Override
public EventFullData loadInBackground() {
    EventFullData event = new EventFullData();

    try {/*w  ww .j  a  va  2 s.c o  m*/
        Document document = Jsoup.connect(url).get();

        Element day = document.select("div.date > div.day").first();
        Element month = document.select("div.date > div.month").first();
        // TODO: add logo
        Element logo = document.select("div.logo > img").first();
        Element title = document.select("div.info_block > h1.title").first();
        Element detail = document.select("div.info_block > div.detail").first();
        Element description = document.select("div.info_block > div.description").first();
        Elements additionalInfo = document.select("div.info_block").first().getElementsByTag("dd");

        Element location = null, pay = null, site = null;
        // TODO: need to test this code more
        int i = 0;
        for (Element info : additionalInfo) {
            switch (i) {
            case INFO_LOCATION:
                location = info;
                break;
            case INFO_PAY:
                pay = info;
                break;
            case INFO_SITE:
                site = info;
                break;
            }
            i++;
        }

        event.setTitle(title.text());
        event.setUrl(url);
        event.setDate(day.text() + " " + month.text());
        // eventsFullData.setLogo(logo.attr("src"));
        event.setDetail(detail.text());
        event.setText(description.text());
        event.setPay(pay.text());
        event.setLocation(location.text());
        event.setSite(site.text());
    } catch (IOException e) {
    }

    return event;
}

From source file:net.meiolania.apps.habrahabr.fragments.hubs.loader.HubsLoader.java

@Override
public ArrayList<HubsData> loadInBackground() {
    ArrayList<HubsData> data = new ArrayList<HubsData>();

    try {//from w w  w .  j  ava2s .  co m
        String readyUrl = url.replace("%page%", String.valueOf(page));

        Log.i(TAG, "Loading a page: " + readyUrl);

        Document document = Jsoup.connect(readyUrl).get();

        Elements hubs = document.select("div.hub");

        for (Element hub : hubs) {
            HubsData hubsData = new HubsData();

            Element index = hub.select("div.habraindex").first();
            Element title = hub.select("div.title > a").first();
            Element stat = hub.select("div.stat").first();

            hubsData.setTitle(title.text());
            hubsData.setUrl(title.attr("abs:href"));
            hubsData.setStat(stat.text());
            hubsData.setIndex(index.text());

            data.add(hubsData);
        }
    } catch (IOException e) {
    }

    return data;
}

From source file:net.meiolania.apps.habrahabr.fragments.posts.loader.PostCommentsLoader.java

private void parseComments(Elements comments, int level) {
    for (Element comment : comments) {
        CommentsData commentsData = new CommentsData();

        /*//from w  ww .  jav  a  2s  .  c  o m
         * TODO: Really awful. Need to rewrite this.
         */
        String commentId = comment.attr("id");
        if (containedComments.contains(commentId))
            continue;

        containedComments.add(commentId);

        Element name = comment.select("a.username").first();
        Element message = comment.select("div.message").first();
        Element linkToComment = comment.select("a.link_to_comment").first();
        Element score = comment.select("span.score").first();

        commentsData.setScore(score.text());
        commentsData.setUrl(linkToComment.attr("abs:href"));
        commentsData.setAuthorUrl(name.attr("abs:href"));
        commentsData.setAuthor(name.text());
        commentsData.setComment(message.text());
        commentsData.setLevel(level);

        commentsDatas.add(commentsData);

        Elements replyComments = comment.select("div.reply_comments > div.comment_item");

        parseComments(replyComments, level + 1);
    }
}