Basic draft for kissasian and masterani
parent
5d2b9ce66a
commit
7ab97c5bf4
|
@ -12,7 +12,7 @@ matrix:
|
|||
before_install:
|
||||
- pip install pytest-cov
|
||||
install:
|
||||
- pip install -e ".[kissanime]"
|
||||
- pip install -e ".[cloudflare]"
|
||||
script:
|
||||
- python -m pytest tests --cov=.
|
||||
after_success:
|
||||
|
|
|
@ -39,7 +39,7 @@ $ pip install -U git+https://github.com/vn-ki/anime-downloader.git
|
|||
KissAnime support is currently only available in master. Use the following command to install with KissAnime support.
|
||||
|
||||
```bash
|
||||
pip install -U git+https://github.com/vn-ki/anime-downloader.git#egg=anime-downloader'[kissanime]'
|
||||
pip install -U git+https://github.com/vn-ki/anime-downloader.git#egg=anime-downloader'[cloudflare]'
|
||||
```
|
||||
|
||||
**IMP**: For KissAnime scraping [cfscrape](https://github.com/Anorov/cloudflare-scrape) is used. It depends on `node-js`. So if you want to use KissAnime, make sure you have node installed.
|
||||
|
|
|
@ -27,7 +27,7 @@ class KissanimeEpisode(BaseEpisode):
|
|||
|
||||
def getData(self):
|
||||
url = self._base_url+self.episode_id
|
||||
r = scraper.get(url + '/Mobile/', headers=mobile_headers)
|
||||
r = scraper.get(url)
|
||||
soup = BeautifulSoup(r.text, 'html.parser')
|
||||
|
||||
if self.VERIFY_HUMAN:
|
||||
|
@ -37,17 +37,22 @@ class KissanimeEpisode(BaseEpisode):
|
|||
episode_url = self.episode_id
|
||||
|
||||
ret = scraper.get(self._base_url+episode_url)
|
||||
|
||||
rapid_re = re.compile(r'iframe.*src="https://(.*?)"')
|
||||
rapid_url = rapid_re.findall(ret.text)[0]
|
||||
|
||||
data = util.get_stream_url_rapidvideo('https://'+rapid_url,
|
||||
self.quality)
|
||||
data = self._scrape_episode(ret)
|
||||
|
||||
self.stream_url = data['stream_url']
|
||||
self.title = data['title']
|
||||
self.image = data['image']
|
||||
|
||||
def _scrape_episode(self, response):
|
||||
|
||||
rapid_re = re.compile(r'iframe.*src="https://(.*?)"')
|
||||
rapid_url = rapid_re.findall(response.text)[0]
|
||||
|
||||
data = util.get_stream_url_rapidvideo('https://'+rapid_url,
|
||||
self.quality)
|
||||
|
||||
return data
|
||||
|
||||
|
||||
class Kissanime(BaseAnimeCF):
|
||||
sitename = 'kissanime'
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
from anime_downloader.sites.kissanime import Kissanime, KissanimeEpisode
|
||||
from bs4 import BeautifulSoup
|
||||
from anime_downloader.sites.exceptions import NotFoundError
|
||||
|
||||
|
||||
class KissasianEpisode(KissanimeEpisode):
|
||||
_base_url = ''
|
||||
VERIFY_HUMAN = False
|
||||
|
||||
# def _scrape_episode(self, reponse):
|
||||
# soup = BeautifulSoup(reponse.text, 'html.parser')
|
||||
# data = dict()
|
||||
# data['stream_url'] = soup.find_all('iframe')
|
||||
# data['title'] = ''
|
||||
# data['image'] = ''
|
||||
# return data
|
||||
|
||||
|
||||
class Kissasian(Kissanime):
|
||||
sitename = 'kisscartoon'
|
||||
_episodeClass = KissasianEpisode
|
||||
|
||||
def _getEpisodeUrls(self, soup):
|
||||
ret = soup.find('div', {'class': 'listing'}).find_all('a')
|
||||
ret = [str(a['href']) for a in ret]
|
||||
|
||||
if ret == []:
|
||||
err = 'No episodes found in url "{}"'.format(self.url)
|
||||
args = [self.url]
|
||||
raise NotFoundError(err, *args)
|
||||
|
||||
return list(reversed(ret))
|
|
@ -0,0 +1,19 @@
|
|||
from anime_downloader.sites.anime import BaseAnime, BaseEpisode
|
||||
import json
|
||||
import requests
|
||||
|
||||
# class MasteraniEpisode(BaseEpisode):
|
||||
|
||||
|
||||
class Masterani(BaseAnime):
|
||||
sitename = 'masterani'
|
||||
QUALITIES = ['360p', '480p', '720p']
|
||||
_api_url = 'https://www.masterani.me/api/anime/{}/detailed'
|
||||
|
||||
def getEpisodes(self):
|
||||
anime_id = self.url.split('info/')[-1].split('-')[0]
|
||||
url = self._api_url.format(anime_id)
|
||||
res = requests.get(url)
|
||||
res = res.json()
|
||||
|
||||
self.meta = res['info']
|
Loading…
Reference in New Issue