SkillAgentSearch skills...

Maga

Another DHT crawler written in Python using asyncio

Install / Use

/learn @whtsky/Maga
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Maga

A DHT crawler framework using asyncio.

Usage

.. code-block:: python

from maga import Maga

import logging
logging.basicConfig(level=logging.INFO)


class Crawler(Maga):
    async def handler(self, infohash, addr):
        logging.info(addr)
        logging.info(infohash)


# Or, if you want to have more control

class Crawler(Maga):
    async def handle_get_peers(self, infohash, addr):
        logging.info(
            "Receive get peers message from DHT {}. Infohash: {}.".format(
                addr, infohash
            )
        )

    async def handle_announce_peer(self, infohash, addr, peer_addr):
        logging.info(
            "Receive announce peer message from DHT {}. Infohash: {}. Peer address:{}".format(
                addr, infohash, peer_addr
            )
        )


crawler = Crawler()
# Set port to 0 will use a random available port
crawler.run(port=0)

ChangeLog

Version 3.0.0


+ Add `peer_addr` param to `handle_announce_peer` method.
+ Don't raise NotImplementedError on `handler`

Version 2.0.1
  • Don't fail when signals are not implemented.( #3 <https://github.com/whtsky/maga/pull/3>_ )

Version 2.0.0


+ Add `handle_get_peers`, `handle_announce_peer` method.
+ Add `addr` param to `handler`
View on GitHub
GitHub Stars139
CategoryDevelopment
Updated2mo ago
Forks41

Languages

Python

Security Score

95/100

Audited on Jan 19, 2026

No findings