[Servers] Adds PhenixScans [FR]

This commit is contained in:
Valéry Febvre 2023-06-24 00:45:42 +02:00
parent 5946ba5193
commit 7dcf2b3d0b
4 changed files with 110 additions and 0 deletions

View File

@ -8,6 +8,7 @@
# Asura Scans [EN]
# Asura Scans [TR]
# Flam Scans [EN]
# PhenixScans [FR]
# Rawkuma [JA]
# Raw Manga [JA]
@ -123,6 +124,7 @@ class MangaStream(Server):
'coming soon',
'mass released',
'daily release',
'en cours', # fr
'devam ediyor', # tr
)
if any(re.findall('|'.join(labels), label, re.IGNORECASE)):
@ -131,6 +133,7 @@ class MangaStream(Server):
# Complete
labels = (
'completed',
'fini', # fr
'tamamlandı', # tr
)
if any(re.findall('|'.join(labels), label, re.IGNORECASE)):
@ -139,6 +142,7 @@ class MangaStream(Server):
# Hiatus
labels = (
'hiatus',
'en pause', # fr
'bırakıldı', # tr
)
if any(re.findall('|'.join(labels), label, re.IGNORECASE)):

View File

@ -0,0 +1,19 @@
# Copyright (C) 2019-2023 Valéry Febvre
# SPDX-License-Identifier: GPL-3.0-only or GPL-3.0-or-later
# Author: Valéry Febvre <vfebvre@easter-eggs.com>
from komikku.servers.multi.manga_stream import MangaStream
class Phenixscans(MangaStream):
id = 'phenixscans'
name = 'PhenixScans'
lang = 'fr'
base_url = 'https://phenixscans.fr'
authors_selector = '.infox .fmed:-soup-contains("Artiste") span, .infox .fmed:-soup-contains("Auteur") span'
genres_selector = '.infox .mgen a'
scanlators_selector = '.infox .fmed:-soup-contains("Serialization") span'
status_selector = '.tsinfo .imptdt:-soup-contains("Statut") i'
synopsis_selector = '[itemprop="description"]'

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -0,0 +1,87 @@
import logging
import pytest
from pytest_steps import test_steps
from komikku.utils import log_error_traceback
logging.basicConfig(level=logging.DEBUG)
@pytest.fixture
def phenixscans_server():
from komikku.servers.phenixscans import Phenixscans
return Phenixscans()
@test_steps('get_latest_updates', 'get_most_populars', 'search', 'get_manga_data', 'get_chapter_data', 'get_page_image')
def test_phenixscans(phenixscans_server):
# Get latest updates
print('Get latest updates')
try:
response = phenixscans_server.get_latest_updates('')
except Exception as e:
response = None
log_error_traceback(e)
assert response is not None
yield
# Get most popular
print('Get most popular')
try:
response = phenixscans_server.get_most_populars('')
except Exception as e:
response = None
log_error_traceback(e)
assert response
yield
# Search
print('Search')
try:
# Use first result of get_most_populars
response = phenixscans_server.search(response[0]['name'], '')
slug = response[0]['slug']
except Exception as e:
slug = None
log_error_traceback(e)
assert slug is not None
yield
# Get manga data
print('Get manga data')
try:
response = phenixscans_server.get_manga_data(dict(slug=slug))
chapter_slug = response['chapters'][0]['slug']
except Exception as e:
chapter_slug = None
log_error_traceback(e)
assert chapter_slug is not None
yield
# Get chapter data
print("Get chapter data")
try:
response = phenixscans_server.get_manga_chapter_data(None, None, chapter_slug, None)
page = response['pages'][0]
except Exception as e:
page = None
log_error_traceback(e)
assert page is not None
yield
# Get page image
print('Get page image')
try:
response = phenixscans_server.get_manga_chapter_page_image(None, None, chapter_slug, page)
except Exception as e:
response = None
log_error_traceback(e)
assert response is not None
yield