vypivshiy / ani-cli-ru

Просмотр аниме с русской озвучкой в терминале
GNU General Public License v3.0
139 stars 6 forks source link

doesn't works animego #33

Closed axax-loll closed 6 months ago

axax-loll commented 6 months ago

Как я почитал в интернете домен animego.org был заблокирован, и он у меня не работает, есть ли возможность использовать другой сайт например animego.pro?

axax-loll commented 6 months ago

Screenshot_20240424-092952_Vivaldi Я не знаю рабочий он или нет, можешь проверить вот код

import requests
from bs4 import BeautifulSoup

class AnimegoParser:
    def __init__(self, url):
        self.url = url
        self.soup = None

    def get_soup(self):
        response = requests.get(self.url)
        self.soup = BeautifulSoup(response.text, 'html.parser')

    def parse_anime_list(self):
        self.get_soup()
        anime_list = []
        anime_items = self.soup.find_all('div', class_='anime-item')
        for item in anime_items:
            anime = {}
            anime['title'] = item.find('h2', class_='anime-title').text.strip()
            anime['url'] = item.find('a')['href']
            anime['image'] = item.find('img')['src']
            anime_list.append(anime)
        return anime_list

    def parse_anime_info(self, url):
        self.url = url
        self.get_soup()
        anime_info = {}
        anime_info['title'] = self.soup.find('h1', class_='anime-title').text.strip()
        anime_info['description'] = self.soup.find('div', class_='anime-description').text.strip()
        anime_info['genres'] = [genre.text.strip() for genre in self.soup.find_all('a', class_='genre')]
        anime_info['episodes'] = self.soup.find('span', class_='episodes').text.strip()
        anime_info['status'] = self.soup.find('span', class_='status').text.strip()
        anime_info['rating'] = self.soup.find('span', class_='rating').text.strip()
        return anime_info

# пример использования
parser = AnimegoParser('https://animego.pro/anime')
anime_list = parser.parse_anime_list()
for anime in anime_list:
    print(anime['title'], anime['url'])

anime_url = 'https://animego.pro/anime/naruto'
anime_info = parser.parse_anime_info(anime_url)
print(anime_info)
vypivshiy commented 6 months ago

Привет, под этот домен нет реализации. Я добавил пометку, но реализую не скоро

Доступные можно получить через ключ --help и добавить ключ -s для изменения источника

anicli-ru -s a
usage: anicli-ru [OPTIONS]
anicli-ru: error: argument -s/--source: invalid choice: 'a' (choose from 'anilibria', 'animania', 'animego', 'animejoy', 'animevost', 'jutsu', 'sameband', 'sovetromantica')

Из более менее стабильных работают jutsu, animania, anilibria, animevost, остальные мало тестировались

vypivshiy commented 6 months ago

Я не знаю рабочий он или нет, можешь проверить вот код

В проекте используется преимущественно css селекторы для повышения читаемости кода, удобной разработки и отладки. И парсеры автоматически генерирую с помощью экспериментальной DSL надстройки для возможности в будущем портировать на другие ЯП

axax-loll commented 6 months ago

вот проблема то что и другие не работают кроме jutsu, в чем проблема я так и не понял image

axax-loll commented 6 months ago

короче, жду с нетерпением animego pro, если есть идеи в чем может быть дело недоступности расскажи

axax-loll commented 6 months ago

кстати а как смотреть аниме с сайта через mpv? типа

image

есть ссылка и что с ней делать? как смотреть через mpv?

vypivshiy commented 6 months ago

короче, жду с нетерпением animego pro, если есть идеи в чем может быть дело недоступности расскажи

На территории РФ экстракторы работают и даже anilibria через API (возможны только с animania проблемы). Ещё проблемы могут быть если IP отличный от СНГ региона или из-за провайдера или настроек блокировки роутера

кстати а как смотреть аниме с сайта через mpv? типа

mpv плеер запускает прямые ссылки на видео/плейлисты или пробует её вытащить через yt-dlp. Например, это можно сделать альтернативной реализацией получения видео, апи интерфейс отдельно от проекта живет. Пример вида ссылки на видео в devtools:

image

yt-dlp только сибнет поддерживает и только его запустит напрямую. Они kodik никогда не добавят из-за направленности работы только по легальным источникам:

As a matter of policy (as well as legality), youtube-dl does not include support for services that specialize in infringing copyright. As a rule of thumb, if you cannot easily find a video that the service is quite obviously allowed to distribute (i.e. that has been uploaded by the creator, the creator's distributor, or is published under a free license), the service is probably unfit for inclusion to youtube-dl.

vypivshiy commented 6 months ago

у anilibria и animevost ограничений на регион просмотра нет везде работает если в стране не забанен, в РФ работает, например.

vypivshiy commented 6 months ago

добавлен animego.pro

для испрользования необходимо обновить anicli-api библиотеку

тестов было минимально проведено и у источника проблемы с бекендом (при нагрузках выкидывает timeout)

axax-loll commented 6 months ago

Спасибо братан