Search in sources :

Example 41 with Manga

use of ar.rulosoft.mimanganu.componentes.Manga in project MiMangaNu by raulhaag.

the class Taadd method getMangasFromSource.

private ArrayList<Manga> getMangasFromSource(String source) {
    Pattern pattern = Pattern.compile("<a href=\"([^\"]+?)\"><img src=\"([^\"]+?)\" alt=\"([^\"]+?)\"", Pattern.DOTALL);
    Matcher matcher = pattern.matcher(source);
    ArrayList<Manga> mangas = new ArrayList<>();
    while (matcher.find()) {
        Manga manga = new Manga(getServerID(), matcher.group(3), matcher.group(1), false);
        manga.setImages(matcher.group(2));
        mangas.add(manga);
    }
    return mangas;
}
Also used : Pattern(java.util.regex.Pattern) Matcher(java.util.regex.Matcher) ArrayList(java.util.ArrayList) Manga(ar.rulosoft.mimanganu.componentes.Manga)

Example 42 with Manga

use of ar.rulosoft.mimanganu.componentes.Manga in project MiMangaNu by raulhaag.

the class TuMangaOnline method getMangasJsonArray.

private ArrayList<Manga> getMangasJsonArray(JSONArray jsonArray) {
    ArrayList<Manga> result = new ArrayList<>();
    for (int i = 0; i < jsonArray.length(); i++) {
        try {
            JSONObject object = jsonArray.getJSONObject(i);
            Manga m = new Manga(getServerID(), object.getString("nombre"), object.getString("id"), "Finalizado".contains(object.getString("estado")));
            m.setImages("http://img1.tumangaonline.com/" + object.getString("imageUrl").replaceAll("\\\\", ""));
            result.add(m);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    return result;
}
Also used : JSONObject(org.json.JSONObject) ArrayList(java.util.ArrayList) JSONException(org.json.JSONException) Manga(ar.rulosoft.mimanganu.componentes.Manga)

Example 43 with Manga

use of ar.rulosoft.mimanganu.componentes.Manga in project MiMangaNu by raulhaag.

the class TuMangaOnline method searchForNewChapters.

@Override
public int searchForNewChapters(int id, Context context, boolean fast) throws Exception {
    // TODO FAST
    int returnValue;
    Manga mangaDb = Database.getFullManga(context, id);
    Manga manga = new Manga(mangaDb.getServerId(), mangaDb.getTitle(), mangaDb.getPath(), false);
    manga.setId(mangaDb.getId());
    this.loadMangaInformation(manga, true);
    loadChapters(manga, false, true);
    manga.getChapters().removeAll(mangaDb.getChapters());
    for (Chapter chapter : manga.getChapters()) {
        chapter.setMangaID(mangaDb.getId());
        chapter.setReadStatus(Chapter.NEW);
        Database.addChapter(context, chapter, mangaDb.getId());
    }
    if (manga.getChapters().size() > 0) {
        Database.updateMangaRead(context, mangaDb.getId());
        Database.updateNewMangas(context, mangaDb, manga.getChapters().size());
    }
    returnValue = manga.getChapters().size();
    if (returnValue > 0)
        new CreateGroupByMangaNotificationsTask(manga.getChapters(), manga, context).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
    boolean changes = false;
    if (!mangaDb.getAuthor().equals(manga.getAuthor()) && manga.getAuthor().length() > 2) {
        mangaDb.setAuthor(manga.getAuthor());
        changes = true;
    }
    if (!mangaDb.getImages().equals(manga.getImages()) && manga.getImages().length() > 2) {
        mangaDb.setImages(manga.getImages());
        changes = true;
    }
    if (!mangaDb.getSynopsis().equals(manga.getSynopsis()) && manga.getSynopsis().length() > 2) {
        mangaDb.setSynopsis(manga.getSynopsis());
        changes = true;
    }
    if (!mangaDb.getGenre().equals(manga.getGenre()) && manga.getGenre().length() > 2) {
        mangaDb.setGenre(manga.getGenre());
        changes = true;
    }
    if (mangaDb.isFinished() != manga.isFinished()) {
        mangaDb.setFinished(manga.isFinished());
        changes = true;
    }
    if (changes)
        Database.updateManga(context, mangaDb, false);
    return returnValue;
}
Also used : Chapter(ar.rulosoft.mimanganu.componentes.Chapter) Manga(ar.rulosoft.mimanganu.componentes.Manga)

Example 44 with Manga

use of ar.rulosoft.mimanganu.componentes.Manga in project MiMangaNu by raulhaag.

the class MangasRecAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    final Manga m = mangas.get(position);
    MangasHolder mHolder = (MangasHolder) holder;
    mHolder.serie.setText(m.getTitle());
    ((MangasHolder) holder).serie.setImageBitmap(null);
    imageLoader.displayImg(m.getImages(), mHolder.serie);
    mHolder.v.setTag(position);
    mHolder.v.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mangaClickListener != null) {
                mangaClickListener.onMangaClick(m);
            }
        }
    });
    ServerBase server = ServerBase.getServer(m.getServerId(), context);
    mHolder.server.setImageResource(server.getIcon());
    if (m.getNews() > 0) {
        mHolder.notif.setVisibility(ImageView.VISIBLE);
    } else {
        mHolder.notif.setVisibility(ImageView.INVISIBLE);
    }
    if (position == getItemCount() - 1 && lastItemListener != null)
        lastItemListener.onRequestedLastItem();
}
Also used : ServerBase(ar.rulosoft.mimanganu.servers.ServerBase) OnClickListener(android.view.View.OnClickListener) CardView(android.support.v7.widget.CardView) ImageView(android.widget.ImageView) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View) Manga(ar.rulosoft.mimanganu.componentes.Manga)

Example 45 with Manga

use of ar.rulosoft.mimanganu.componentes.Manga in project MiMangaNu by raulhaag.

the class MangaKawaii method getMangasFiltered.

@Override
public ArrayList<Manga> getMangasFiltered(int[][] filters, int pageNumber) throws Exception {
    // TODO implement filtering
    String web = HOST + "/liste-mangas?page=" + pageNumber;
    String source = getNavigatorAndFlushParameters().get(web);
    Pattern pattern = Pattern.compile("<div class=\"media-left\">(.+?)</div>", Pattern.DOTALL);
    Matcher matcher = pattern.matcher(source);
    ArrayList<Manga> mangas = new ArrayList<>();
    while (matcher.find()) {
        Manga m = new Manga(getServerID(), getFirstMatch("alt='([^']+)", matcher.group(1), context.getString(R.string.server_failed_locate_manga_name)), getFirstMatch("href=\"([^\"]+)", matcher.group(1), context.getString(R.string.server_failed_locate_manga_url)), false);
        m.setImages(getFirstMatchDefault("src='([^\']+)", matcher.group(1), ""));
        mangas.add(m);
    }
    return mangas;
}
Also used : Pattern(java.util.regex.Pattern) Matcher(java.util.regex.Matcher) ArrayList(java.util.ArrayList) Manga(ar.rulosoft.mimanganu.componentes.Manga)

Aggregations

Manga (ar.rulosoft.mimanganu.componentes.Manga)61 ArrayList (java.util.ArrayList)48 Matcher (java.util.regex.Matcher)40 Pattern (java.util.regex.Pattern)40 JSONObject (org.json.JSONObject)6 View (android.view.View)5 Navigator (ar.rulosoft.navegadores.Navigator)5 Chapter (ar.rulosoft.mimanganu.componentes.Chapter)4 AsyncAddManga (ar.rulosoft.mimanganu.utils.AsyncAddManga)4 JSONArray (org.json.JSONArray)4 MenuInflater (android.view.MenuInflater)3 ServerBase (ar.rulosoft.mimanganu.servers.ServerBase)3 List (java.util.List)3 Bundle (android.os.Bundle)2 RecyclerView (android.support.v7.widget.RecyclerView)2 OnClickListener (android.view.View.OnClickListener)2 AdapterView (android.widget.AdapterView)2 OnItemClickListener (android.widget.AdapterView.OnItemClickListener)2 ListView (android.widget.ListView)2 MangasRecAdapter (ar.rulosoft.mimanganu.adapters.MangasRecAdapter)2