whtsky / Maga
Licence: bsd-3-clause
Another DHT crawler written in Python using asyncio
Stars: ✭ 133
Programming Languages
python
139335 projects - #7 most used programming language
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`
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].