Skip to main content

Async manga parser-converter from mangalib to telegraph pages

Project description

Mangagraph

From Mangalib to Telegraph with ❤️

Асинхронный парсер-конвертер манги из mangalib api в telegraph

Принцип работы

Даем ссылку на мангу (такого типа: https://mangalib.me/ru/manga/{slug_url}) и название бд куда мы сохраняем (том, главу, наименование главы, ссылку на главу для чтения и зеркало на случаи если главная ссылка не доступна) -> получаем полные данные о главах -> генерируем телеграф страницы на каждую главу -> ссылки на страницу сохраняем в SQLite бд, с использованием SQLAlchemy

-> На выходе получаем базу данных готовую к любому использованию и конечную ссылку телеграфа с зеркалом (оглавление) внутри которой находятся все главы с именами и ссылкой для чтения

Пример страницы главы: https://graph.org/Vanpanchmen--Opasnoe-sushchestvo-01-22-4

Пример оглавления: https://graph.org/Vanpanchmen-01-22-3 (ссылки на оглавление также сохраняются в бд, в таблицу ToC_url)

Установка

pip install -U mangagraph

Использование

CLI

mangagraph --url https://mangalib.me/ru/manga/706--onepunchman

или

python mangagraph --url https://mangalib.me/ru/manga/706--onepunchman

Обработка одной конкретной главы (к примеру вторая)

Важно! При обработки одной главы не создается БД и оглавление, возвращается только кортеж из двух строк (главной ссылки и зеркала)

python mangagraph --url https://mangalib.me/ru/manga/706--onepunchman --c 2

Несколько глав через запятую

Обработка нескольких конкретных глав:

python mangagraph --url https://mangalib.me/ru/manga/706--onepunchman --c "1,2,5,10"

Поиск манги

python mangagraph --q "Berserk" --limit 10

Raw

from mangagraph import Mangagraph
from mangagraph.exceptions import MangagraphError

async def main():
    try:
        mgraph = Mangagraph()
        # Поиск манги по ключевому слову и с лимитом
        results = await mgraph.search_manga("Berserk", limit=3)

        for idx, result in enumerate(results, 1):
            print(f"{idx}. {result.name} / {result.rus_name}")
            print(f"   Рейтинг: {result.rating.raw_average} ({result.rating.raw_votes} отзывов)")
            print(f"   Год: {result.release_year} | Тип: {result.type} | Статус: {result.status}")
            print(f"   Ссылка: https://mangalib.me/ru/manga/{result.slug_url}")
            print()

        # Парсинг одной конкретной главы
        chapter_num = 97
        url, mirror_url = await mgraph.process_chapter(
            'https://mangalib.me/ru/manga/7965--chainsaw-man',
            chapter_num
        )
        print(f'Бензочел, глава номер {chapter_num}: {url} | {mirror_url}')

        # Парсинг нескольких глав сразу
        results = await mgraph.process_chapters(
            'https://mangalib.me/ru/manga/7965--chainsaw-man',
            chapter_nums=[90, 91, 92]
        )

        print("Главы:\n")
        for num, (toc, mirror) in results.items():
            print(f"📖 Глава №{num}")
            print(f"   TOC: {toc}")
            print(f"   Mirror: {mirror}\n")

        # Парсинг манги и загрузка телеграф
        toc_url, mirror_toc_url = await mgraph.process_manga('https://mangalib.me/ru/manga/706--onepunchman')

        print(f"Table of Contents: {toc_url}")
        print(f"Mirror: {mirror_toc_url}")
    except MangagraphError as e:
        print(f"Parser error: {e}")
    except Exception as e:
        print(f"Unexpected error: {e}")

import asyncio

asyncio.run(main())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mangagraph-0.1.0.tar.gz (16.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mangagraph-0.1.0-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file mangagraph-0.1.0.tar.gz.

File metadata

  • Download URL: mangagraph-0.1.0.tar.gz
  • Upload date:
  • Size: 16.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for mangagraph-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cc7f552437a64334f91f55d5928c54c1ba9a17e1d191075bd57c91edf7377b65
MD5 6b162db296bbb96b1f21da9fba3cd4fa
BLAKE2b-256 ef1594e38518b08783f3ce3de9b03e5a964de88276f213b76f8f0d41c359eddc

See more details on using hashes here.

File details

Details for the file mangagraph-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mangagraph-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for mangagraph-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4bac26bd30284fcb2b35823c914deb4cc11390b4eda3a93c295c7827e9afd568
MD5 03e94d3e4a0bd7baa22d5e09c35934b0
BLAKE2b-256 27e9423d8e070179b05dce4ae6bffebee31349fc336f0721f0046e83e821ac8a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page