Skip to main content

Add your description here

Project description

dotbot-neverland

A hack.chat bot framework which is simple, powerful, robust.

PyPI: dotbot-neverland

Installation with pip: pip install dotbot-neverland

Why?

  • Well typed

    All kinds of message are typed and you have IntelliSense. No need to deal with messy and unpredictable json objects.

  • We do the messy part

    You only need to deal with bot logic, with these things available for free:

    • Parse whisper and emote message from server message like XXX whispered: ...
    • List of online users
    • Current nickname of your bot
    • Query full user info with nickname
    • ...
  • For the future

    Dotbot-neverland is designed for asyncio.

    Also, it is written in the latest syntax of Python 3.12. Therefore, it only supports python >= 3.12.

Why Not? There are also some limitations. If you need one of the followings, we suggest you choose hvicorn:

  • Synchronous or threaded API
  • Compatible with older versions of Python

Quickstart

import asyncio
import os

from dotbot_neverland import Bot, ChatEvent, Context, SelfJoinEvent, WhisperEvent

bot = Bot()


@bot.on("onlineSet")
async def hello(c: Context[SelfJoinEvent]):
    await c.bot.chat("Hello from dotbot-neverland!")


@bot.on("chat", "whisper")
async def ping(c: Context[ChatEvent | WhisperEvent]):
    if c.event.text == "ping":
        await c.reply("pong!")


asyncio.run(bot.connect("lounge", "ping", os.getenv("HC_PWD")))

Documentation

/docs

TODO

  • Bypass DNS poisoning
  • Graceful ignore self
  • Informative error message
    • Error during parcing
  • Update-able chat message
  • Graceful shutdown
  • Command-like system
  • Reusable collection of listeners
  • Profiling and optimization
  • Hook system and logging
  • anti rate-limit and warnings
    • modelling of common warnings
    • built-in auto reconnecting
    • ability to know whether a message is accepted by HC (difficult)
    • optional auto-retry mechanism
  • Documentation
    • Articles
    • Generated API reference
    • Docstrings

Credits

  • foolishbird by light/await

    This inspired me to start both making HC bots and learning Python.

  • hvicorn by 0x24a

    This bot framework realized my dream of a "well typed" bot framework. It is very creative compared to previous bot frameworks, and dotbot-neverland references it heavily. Actually, the whole design of dotbot-neverland is inspired by hvicorn.

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

dotbot_neverland-0.1.3.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

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

dotbot_neverland-0.1.3-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file dotbot_neverland-0.1.3.tar.gz.

File metadata

  • Download URL: dotbot_neverland-0.1.3.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for dotbot_neverland-0.1.3.tar.gz
Algorithm Hash digest
SHA256 2c580ccac12237f13fae17af16ff26010b44fe9dbb24ab0bda427cec5b2ff386
MD5 aeb6f6f4ef151b5fd74b836031e64a09
BLAKE2b-256 faf6add130c39815b00a6f09d8256c1f465fdaf2436405546bbb7d2360fe9bc1

See more details on using hashes here.

File details

Details for the file dotbot_neverland-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for dotbot_neverland-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d31744f9bba49905a69a39e6143dc2e1fb718d7f6c56828d8777e1b8b6b46f72
MD5 783654ac0837f9c35e5739975ea4d223
BLAKE2b-256 68a9d59bf9d9fdef42d8302655ab9759538eaeb53718ee6b0145e6a9100eb94c

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