diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/files/DataBase.java | 49 | ||||
| -rw-r--r-- | src/main/java/files/Parse.java | 221 | ||||
| -rw-r--r-- | src/main/java/files/entity/TelegramUser.java | 43 | 
3 files changed, 0 insertions, 313 deletions
| diff --git a/src/main/java/files/DataBase.java b/src/main/java/files/DataBase.java deleted file mode 100644 index d457d23..0000000 --- a/src/main/java/files/DataBase.java +++ /dev/null @@ -1,49 +0,0 @@ -package files; - -import com.pengrad.telegrambot.model.Update; -import com.pengrad.telegrambot.model.User; - -import files.entity.TelegramUser; - -import javax.persistence.EntityManager; -import javax.persistence.EntityManagerFactory; -import javax.persistence.Persistence; -import java.text.SimpleDateFormat; -import java.util.Date; - -public class DataBase { -    public static EntityManager connectionCreate() { -        EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("animarfo"); -        return entityManagerFactory.createEntityManager(); -    } - -    public static void connectionDestroy(EntityManager entityManager) { -        entityManager.close(); -    } - -    public static boolean checkIfUserNotExists(Long telegramId) { -        EntityManager manager = connectionCreate(); -        return (manager.find(TelegramUser.class, telegramId) == null); -    } - -    public static void saveUser(Update update) { -        User user = update.message().from(); -        Long telegramId = user.id(); -        String fullName = user.firstName() + TelegramUser.checkIfHasLastName(user); -        Boolean isBot = user.isBot(); -        String username = user.username(); -        String date = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(new Date(update.message().date() * 1000L)); - -        if (DataBase.checkIfUserNotExists(telegramId)) { -            EntityManager entityManager = DataBase.connectionCreate(); - -            TelegramUser telegramUser = new TelegramUser(telegramId, username, isBot, fullName, date); - -            entityManager.getTransaction().begin(); -            entityManager.merge(telegramUser); -            entityManager.getTransaction().commit(); - -            DataBase.connectionDestroy(entityManager); -        } -    } -} diff --git a/src/main/java/files/Parse.java b/src/main/java/files/Parse.java deleted file mode 100644 index 031e91e..0000000 --- a/src/main/java/files/Parse.java +++ /dev/null @@ -1,221 +0,0 @@ -package files; - -import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import org.jsoup.nodes.Element; -import org.jsoup.select.Elements; - -import java.io.IOException; -import java.net.URL; -import java.util.ArrayList; - -public class Parse { -    public static Document getPage(String url) throws IOException { -        return Jsoup.parse(new URL(url), 3000); -    } - -    public static Anime[] getAnimeAtMainMenu(String page, String typeOfAnime) throws IOException { -        Element animeList = Parse.getPage(page).select("div[id=dle-content]").first(); -        assert animeList != null; -        Elements namesTemp = animeList.select("div[class=th-title]"); -        Elements descriptionsTemp = animeList.select("div[class=th-tip-text]"); -        Elements yearsTemp = null; -        if (!typeOfAnime.equals("Ongoing")) yearsTemp = animeList.select("div[class=th-tip-meta fx-row fx-middle fx-start]"); -//        Elements genresTemp = animeList.select("span[class=anime-genre d-none d-sm-inline]").select("a[class=mb-2 text-link-gray text-underline]"); -        Elements seriesTemp = null; -        if (!typeOfAnime.equals("AnimeFilms")) { -            seriesTemp = animeList.select("div[class=th-title]"); -        } -        Elements ratingsTemp = animeList.select("div[class=th-rating]"); -        Elements imagesTemp = animeList.select("div[class=th-img img-resp-vert img-fit]"); -        Elements urlsTemp = animeList.select("div[class=th-itemb]").select("a[class=th-in]"); - -        byte countOfAnime = (byte) namesTemp.size(); - -        ArrayList<String> names = new ArrayList<>(); -        for (Element name : namesTemp) { -            if (!typeOfAnime.equals("AnimeFilms")) { -                String text = Jsoup.parse(String.valueOf(name)).text(); -                int start = 0; -                int end = text.indexOf(" ["); -                char[] dst = new char[end - start]; -                text.getChars(start, end, dst, 0); -                names.add(String.valueOf(dst)); -            } else { -                names.add(Jsoup.parse(String.valueOf(name)).text()); -            } -        } - -        ArrayList<String> descriptions = new ArrayList<>(); -        for (Element description : descriptionsTemp) { -            descriptions.add(Jsoup.parse(String.valueOf(description)).text()); -        } - -        ArrayList<String> years = new ArrayList<>(); -        if (!typeOfAnime.equals("Ongoing")) { -            for (Element year : yearsTemp) { -                Element yearTemp = year.child(0); -                years.add(Jsoup.parse(String.valueOf(yearTemp)).text()); -            } -        } - -        ArrayList<String> series = new ArrayList<>(); -        if (!typeOfAnime.equals("AnimeFilms")) { -            for (Element oneSeries : seriesTemp) { -                String text = oneSeries.toString(); -                int start = text.indexOf("из ") + 3; -                if (start == 2) start = text.indexOf("ИЗ ") + 3; -                int end = text.indexOf("]"); -                if (start == 2) { -                    start = text.indexOf("[") + 1; -                    end = text.indexOf(" по") + 1; -                } -                char[] dst = new char[end - start]; -                text.getChars(start, end, dst, 0); -                if (String.valueOf(dst).equals("ххх")) { -                    start = text.indexOf("[") + 1; -                    end = text.indexOf(" из") - 1; -                } -                series.add(String.valueOf(dst)); -            } -        } - -        ArrayList<String> ratings = new ArrayList<>(); -        for (Element rating : ratingsTemp) { -            ratings.add(Jsoup.parse(String.valueOf(rating)).text()); -        } - -        ArrayList<String> images = new ArrayList<>(); -        for (Element image : imagesTemp) { -            String text = image.toString(); -            int start = text.indexOf("data-src=\"") + 11; -            int end = text.indexOf(".jpg") + 4; -            if (end == 3) { -                end = text.indexOf(".png") + 4; -            } -            char[] dst = new char[end - start]; -            text.getChars(start, end, dst, 0); -            if (!String.valueOf(dst).contains("statics")) { -                images.add("https://online.anidub.com/" + String.valueOf(dst)); -            } else { -                images.add("h" + String.valueOf(dst)); -            } -        } - -        ArrayList<String> urls = new ArrayList<>(); -        for (Element url : urlsTemp) { -            String text = url.toString(); -            int start = text.indexOf("href=\"") + 6; -            int end = text.indexOf("\">"); -            char[] dst = new char[end - start]; -            text.getChars(start, end, dst, 0); -            urls.add(String.valueOf(dst)); -        } - -        Anime[] anime = new Anime[countOfAnime]; -        for (int i = 0; i < countOfAnime; i++) { -            if (typeOfAnime.equals("AnimeFilms")) { -                anime[i] = new Anime(names.get(i), descriptions.get(i), null, years.get(i), ratings.get(i), images.get(i), urls.get(i)); -            } else if (typeOfAnime.equals("Ongoing")) { -                anime[i] = new Anime(names.get(i), descriptions.get(i), null, null, series.get(i), ratings.get(i), images.get(i), urls.get(i)); -            } else { -                anime[i] = new Anime(names.get(i), descriptions.get(i), null, years.get(i), series.get(i), ratings.get(i), images.get(i), urls.get(i)); -            } -        } - -        return anime; -    } - -    public static Anime[] getAnimeAtSearch(String page) throws IOException { -        Element animeList = Parse.getPage(page).select("div[class=animes-grid position-relative]").first(); -        assert animeList != null; -        Elements namesTemp = animeList.select("div[class=h5 font-weight-normal mb-2 card-title text-truncate]").select("a"); -        Elements descriptionsTemp = animeList.select("div[class=anime-small-description read-more-container]"); -        Elements yearsTemp = animeList.select("span[class=anime-year]").select("a"); -        Elements seriesTemp = animeList.select("div[class=th-title]"); -        Elements maxSeriesTemp = animeList.select("div[class=th-title]"); -        Elements ratingsTemp = animeList.select("div[class=th-rating]"); -        Elements imagesTemp = animeList.select("div[class=anime-grid-lazy lazy]"); -        Elements urlsTemp = animeList.select("div[class=h5 font-weight-normal mb-2 card-title text-truncate]").select("a"); - -        byte countOfAnime = (byte) namesTemp.size(); - -        ArrayList<String> names = new ArrayList<>(); -        for (Element name : namesTemp) { -            names.add(Jsoup.parse(String.valueOf(name)).text()); -        } - -        ArrayList<String> descriptions = new ArrayList<>(); -        for (Element description : descriptionsTemp) { -            descriptions.add(Jsoup.parse(String.valueOf(description)).text()); -        } - -        ArrayList<String> years = new ArrayList<>(); -        for (Element year : yearsTemp) { -            years.add(Jsoup.parse(String.valueOf(year)).text()); -        } - -        ArrayList<String> series = new ArrayList<>(); -        for (Element oneSeries : seriesTemp) { -            String text = oneSeries.toString(); -            int start = text.indexOf("[") + 1; -            int end = text.indexOf(" из"); -            char[] dst = new char[end - start]; -            text.getChars(start, end, dst, 0); -            series.add(String.valueOf(dst)); -        } - -        ArrayList<String> maxSeries = new ArrayList<>(); -        for (Element oneMaxSeries : maxSeriesTemp) { -            String text = oneMaxSeries.toString(); -            int start = text.indexOf("из ") + 1; -            int end = text.indexOf("]"); -            char[] dst = new char[end - start]; -            text.getChars(start, end, dst, 0); -            maxSeries.add(String.valueOf(dst)); -        } - -        ArrayList<String> ratings = new ArrayList<>(); -        for (Element rating : ratingsTemp) { -            ratings.add(Jsoup.parse(String.valueOf(rating)).text()); -        } - -        ArrayList<String> images = new ArrayList<>(); -        for (Element image : imagesTemp) { -            String text = image.toString(); -            int start = text.indexOf("data-original=") + 15; -            int end = text.indexOf(">") - 1; -            char[] dst = new char[end - start]; -            text.getChars(start, end, dst, 0); -            images.add(String.valueOf(dst)); -        } - -        ArrayList<String> urls = new ArrayList<>(); -        for (Element url : urlsTemp) { -            String text = url.toString(); -            int start = text.indexOf("=\"") + 2; -            int end = text.indexOf("\" title") - 1; -            char[] dst = new char[end - start]; -            text.getChars(start, end, dst, 0); -            urls.add(String.valueOf(dst)); -        } - -        Anime[] anime = new Anime[countOfAnime]; -        for (int i = 0; i < countOfAnime; i++) { -            anime[i] = new Anime(names.get(i), null, null, years.get(i), series.get(i), ratings.get(i), images.get(i), urls.get(i)); -        } - -        return anime; -    } - -    public static byte getAnimeAtSearchSize(String page) throws IOException { -        Element animeList = Parse.getPage(page).select("div[class=animes-grid position-relative]").first(); -        assert animeList != null; - -        if (animeList == null) return 0; - -        Elements namesTemp = animeList.select("div[class=h5 font-weight-normal mb-2 card-title text-truncate]").select("a"); -        byte countOfAnime = (byte) namesTemp.size(); -        return countOfAnime; -    } -}
\ No newline at end of file diff --git a/src/main/java/files/entity/TelegramUser.java b/src/main/java/files/entity/TelegramUser.java deleted file mode 100644 index 5564a64..0000000 --- a/src/main/java/files/entity/TelegramUser.java +++ /dev/null @@ -1,43 +0,0 @@ -package files.entity; - -import com.pengrad.telegrambot.model.User; - -import javax.persistence.Entity; -import javax.persistence.Id; - -@Entity -public class TelegramUser { -    @Id -    private static Long id; -    private static String username; -    private static Boolean isBot; -    private static String fullName; -    private static String date; - -    public TelegramUser() {} - -    public TelegramUser(long id, String username, boolean isBot, String fullName, String date) { -        TelegramUser.id = id; -        TelegramUser.username = username; -        TelegramUser.isBot = isBot; -        TelegramUser.fullName = fullName; -        TelegramUser.date = date; -    } - -    public static String checkIfHasLastName(User user) { -        String lastName = user.lastName(); -        return (lastName != null) ? (" " + lastName) : (""); -    } - -    public static Long getId() { -        return id; -    } - -    public static String getUsername() { -        return username; -    } - -    public static String getFullName() { -        return fullName; -    } -} |