Search in sources :

Example 1 with News

use of com.itculturalfestival.smartcampus.entity.News in project SmartCampus by Vegen.

the class MoreNewsPresenter method getTagNews.

private List<News> getTagNews(Element photoList, int type) {
    List<News> newsList = new ArrayList<>();
    Elements photodiv = photoList.getElementsByTag("div").select("#photodiv");
    String text = "";
    for (Element link : photodiv) {
        Elements photoLink = link.getElementById("photo").getElementsByTag("a");
        Element newsElement = photoLink.get(0);
        String title = newsElement.attr("title");
        String url = newsElement.attr("href");
        String pic = newsElement.getElementsByTag("img").get(0).attr("src");
        String date = link.getElementById("title").ownText();
        text += title + "\n" + url + "\n" + pic + "\n" + date.substring(1, date.length() - 1) + "\n";
        News news = new News(type, title, pic, url, date.substring(1, date.length() - 1));
        newsList.add(news);
    }
    LogUtils.e("HomePresenter", type + "\n" + text);
    return newsList;
}
Also used : News(com.itculturalfestival.smartcampus.entity.News) Element(org.jsoup.nodes.Element) ArrayList(java.util.ArrayList) Elements(org.jsoup.select.Elements)

Example 2 with News

use of com.itculturalfestival.smartcampus.entity.News in project SmartCampus by Vegen.

the class HomePresenter method getTagNews.

private List<News> getTagNews(Element photoList, String tag, int type) {
    List<News> newsList = new ArrayList<>();
    Element focusNews = photoList.getElementById(tag);
    Elements focusLinks = focusNews.getElementsByTag("div").select("#photodiv");
    String text = "";
    for (Element link : focusLinks) {
        Elements photoLink = link.getElementById("photo").getElementsByTag("a");
        Element newsElement = photoLink.get(0);
        String title = newsElement.attr("title");
        String url = newsElement.attr("href");
        String pic = newsElement.getElementsByTag("img").get(0).attr("src");
        String date = link.getElementById("title").ownText();
        text += title + "\n" + url + "\n" + pic + "\n" + date.substring(1, date.length() - 1) + "\n";
        News news = new News(type, title, pic, url, date.substring(1, date.length() - 1));
        newsList.add(news);
    }
    LogUtils.e("HomePresenter", type + "\n" + text);
    return newsList;
}
Also used : News(com.itculturalfestival.smartcampus.entity.News) Element(org.jsoup.nodes.Element) ArrayList(java.util.ArrayList) Elements(org.jsoup.select.Elements)

Example 3 with News

use of com.itculturalfestival.smartcampus.entity.News in project SmartCampus by Vegen.

the class MoreNewsPresenter method getNewsList.

@Override
public void getNewsList(int page, String url, int newsType, String view_state, String view_state_generator, String event_validation) {
    Disposable disposable = Observable.create((ObservableOnSubscribe<Document>) e -> {
        Connection connection = Jsoup.connect(url);
        connection.data("__EVENTARGUMENT", "");
        connection.data("__EVENTTARGET", "PageNavigator1$LnkBtnNext");
        connection.data("__EVENTVALIDATION", event_validation);
        connection.data("__VIEWSTATE", view_state);
        connection.data("__VIEWSTATEGENERATOR", view_state_generator);
        connection.data("Date", "30");
        connection.data("tags", "");
        Document document = connection.post();
        e.onNext(document);
        e.onComplete();
    }).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(document -> {
        Element body = document.body();
        // 下一页的参数
        String __VIEWSTATE = body.select("#__VIEWSTATE").first().attr("value").trim();
        String __VIEWSTATEGENERATOR = body.select("#__VIEWSTATEGENERATOR").first().attr("value").trim();
        String __EVENTVALIDATION = body.select("#__EVENTVALIDATION").first().attr("value").trim();
        Map<String, String> newsForm = new HashMap<>();
        newsForm.put("__VIEWSTATE", __VIEWSTATE);
        newsForm.put("__VIEWSTATEGENERATOR", __VIEWSTATEGENERATOR);
        newsForm.put("__EVENTVALIDATION", __EVENTVALIDATION);
        // 本页的数据
        Element photoList = body.getElementById("ListNews").getElementById("leftbox").getElementById("photolist");
        List<News> newsList = getTagNews(photoList, newsType);
        if (mView != null) {
            mView.nextNewsListForm(newsForm);
            mView.showNewsList(newsList);
            mView.hideLoading(false);
        }
    }, throwable -> {
        if (mView != null) {
            mView.showMessage(HttpError.getErrorMessage(throwable));
            mView.hideLoading(true);
            mView.loadMoreFail();
        }
    });
    mHttpLinkers.add(new DisposableHolder(disposable));
}
Also used : Disposable(io.reactivex.disposables.Disposable) ObservableOnSubscribe(io.reactivex.ObservableOnSubscribe) HashMap(java.util.HashMap) Element(org.jsoup.nodes.Element) News(com.itculturalfestival.smartcampus.entity.News) DisposableHolder(com.vegen.smartcampus.baseframework.network.DisposableHolder) Connection(org.jsoup.Connection) Document(org.jsoup.nodes.Document)

Aggregations

News (com.itculturalfestival.smartcampus.entity.News)3 Element (org.jsoup.nodes.Element)3 ArrayList (java.util.ArrayList)2 Elements (org.jsoup.select.Elements)2 DisposableHolder (com.vegen.smartcampus.baseframework.network.DisposableHolder)1 ObservableOnSubscribe (io.reactivex.ObservableOnSubscribe)1 Disposable (io.reactivex.disposables.Disposable)1 HashMap (java.util.HashMap)1 Connection (org.jsoup.Connection)1 Document (org.jsoup.nodes.Document)1