Example #1
0
def app(
    nonebug_init: None,
    tmp_path: Path,
    monkeypatch: pytest.MonkeyPatch,
    request,
) -> App:
    param = getattr(request, "param", ())

    import nonebot

    config = nonebot.get_driver().config
    # 插件数据目录
    config.datastore_cache_dir = tmp_path / "cache"
    config.datastore_config_dir = tmp_path / "config"
    config.datastore_data_dir = tmp_path / "data"

    # 加载插件
    # 默认加载所有插件
    if param:
        for plugin in param:
            nonebot.load_plugin(plugin)
    else:
        nonebot.load_from_toml("pyproject.toml")

    return App(monkeypatch)
Example #2
0
def init():
    nonebot.init(**RUNTIME_CONFIG)
    driver().register_adapter("cqhttp", ATRIBot)
    nonebot.load_plugins("ATRI/plugins")
    if RUNTIME_CONFIG["debug"]:
        nonebot.load_plugin("nonebot_plugin_test")
    logger.info(f"Now running: {__version__}")
    sleep(3)
Example #3
0
def main():
    nonebot.init(command_start={'/', '!', "!"})
    driver = nonebot.get_driver()
    driver.register_adapter("cqhttp", CQHTTPBot)
    nonebot.load_plugin('nonebot_plugin_sentry')
    nonebot.load_plugins('epicteller/bot/plugin')
    nonebot.get_driver().on_startup(redis.pool.init)
    nonebot.get_driver().on_startup(bus_init)

    nonebot.run(host='0.0.0.0', port=10090)
Example #4
0
    async def cl(self):
        nonebot.init(dc)
        nonebot.load_plugin('testing.external.test_natural_language.test_basics.basics')

        cl = Client()
        cl.patch_nonebot()

        run_nonebot_in_thread()
        async for p in cl.run_client_until_test_done(available_port):
            yield p
Example #5
0
    async def cl(self):
        nonebot.init(dc)
        nonebot.load_plugin(
            'docs.guide.code.awesome-bot-2.awesome.plugins.weather')

        cl = Client()
        cl.patch_nonebot()

        run_nonebot_in_thread()
        async for p in cl.run_client_until_test_done(available_port):
            yield p
Example #6
0
async def test_require_loaded(app: App, monkeypatch: pytest.MonkeyPatch):
    import nonebot

    def _patched_find(name: str):
        assert False

    monkeypatch.setattr("nonebot.plugin.load._find_manager_by_name", _patched_find)

    nonebot.load_plugin("plugins.export")

    nonebot.require("plugins.export")
Example #7
0
async def test_load_plugin(load_plugin: Set["Plugin"]):
    import nonebot

    loaded_plugins = set(plugin for plugin in nonebot.get_loaded_plugins()
                         if not plugin.parent_plugin)
    assert loaded_plugins == load_plugin
    plugin = nonebot.get_plugin("export")
    assert plugin
    assert plugin.module_name == "plugins.export"
    assert "plugins.export" in sys.modules

    try:
        nonebot.load_plugin("plugins.export")
        assert False
    except RuntimeError:
        assert True
Example #8
0
async def test_load_plugin(app: App, load_plugin: Set["Plugin"]):
    import nonebot
    from nonebot.plugin import PluginManager

    loaded_plugins = {
        plugin for plugin in nonebot.get_loaded_plugins() if not plugin.parent_plugin
    }
    assert loaded_plugins == load_plugin

    # check simple plugin
    assert "plugins.export" in sys.modules

    # check sub plugin
    plugin = nonebot.get_plugin("nested_subplugin")
    assert plugin
    assert "plugins.nested.plugins.nested_subplugin" in sys.modules
    assert plugin.parent_plugin == nonebot.get_plugin("nested")

    # check load again
    with pytest.raises(RuntimeError):
        PluginManager(plugins=["plugins.export"]).load_all_plugins()
    with pytest.raises(RuntimeError):
        PluginManager(search_path=["plugins"]).load_all_plugins()

    # check not found
    assert nonebot.load_plugin("some_plugin_not_exist") is None
Example #9
0
def init():
    seconds_offset = time.localtime().tm_gmtoff
    local_utc = _format_offset(seconds_offset)
    if local_utc != 'UTC+8':
        logger.warning('当前时区不是东8区,请修改到正确的时区后再运行本程序')
        os._exit(0)
    kwargs = {
        'superusers': config.SUPERUSERS,
        'nickname': config.NICKNAME,
        'command_start': config.COMMAND_START,
        'command_sep': config.COMMAND_SEP,
        'debug': config.DEBUG
    }
    nonebot.init(**kwargs)
    driver = nonebot.get_driver()
    driver.register_adapter('cqhttp', CQHTTPBot)

    config_ = driver.config
    config_.savedata = 'data/service'

    nonebot.load_builtin_plugins()
    nonebot.load_plugin("nonebot_plugin_apscheduler")
    nonebot.load_plugin('nonebot_plugin_rauthman')
    if config.DEBUG:
        nonebot.load_plugin('nonebot_plugin_docs')
        nonebot.load_plugin('nonebot_plugin_test')
    nonebot.load_plugins('cheru/plugin')

    logger.add(error_log_file,
               rotation='0:00',
               format=default_format,
               compression='zip',
               enqueue=True,
               backtrace=True,
               diagnose=True,
               level='ERROR')
Example #10
0
import nonebot
from nonebot.adapters.cqhttp import Bot as CQHTTPBot

nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter("cqhttp", CQHTTPBot)

app = nonebot.get_asgi()

nonebot.load_builtin_plugins()
nonebot.load_plugin("christinaqqbot.plugins.pixiv")
nonebot.load_plugin("christinaqqbot.plugins.poke")
nonebot.load_plugin("christinaqqbot.plugins.waifu")
nonebot.load_plugin("christinaqqbot.plugins.Rss")
nonebot.load_plugin("christinaqqbot.plugins.mcping")
nonebot.load_plugin("christinaqqbot.plugins.function_manager")

if __name__ == "__main__":
    nonebot.run(app="bot:app")
Example #11
0
# -*- coding: utf-8 -*-

import sys
from os import path

import nonebot
from nonebot.adapters.cqhttp import Bot
from nonebot.log import default_format, logger

nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter('cqhttp', Bot)
app = nonebot.get_asgi()

nonebot.load_builtin_plugins()
nonebot.load_plugin('nonebot_plugin_apscheduler')
# 删除 haruka_bot 导入,否则 nonebot 导入时会忽略
del sys.modules['haruka_bot']
nonebot.load_plugin("haruka_bot")

# Modify some config / config depends on loaded configs
#
# config = nonebot.get_driver().config
# do something...

logger.add(path.join('log', "error.log"),
           rotation="00:00",
           retention='1 week',
           diagnose=False,
           level="ERROR",
           format=default_format,
Example #12
0
app = nonebot.get_asgi()

# 添加额外的配置
config = nonebot.get_driver().config
config.home_dir_path = Path().resolve()
# 插件数据目录
config.data_dir_path = config.home_dir_path / 'data'

# 自定义 logger
from nonebot.log import default_format, logger

logger.add(config.data_dir_path / 'logs' / 'error.log',
           rotation='5 MB',
           diagnose=False,
           level='ERROR',
           format=default_format)

# 加载外部插件
nonebot.load_plugin("nonebot_plugin_apscheduler")
nonebot.load_plugins("src/plugins")
# nonebot.load_plugin("nonebot_plugin_sentry")
# 加载开发环境插件
if config.debug:
    nonebot.load_plugin('nonebot_plugin_test')
    nonebot.load_plugin('nonebot_plugin_docs')
# 加载自己的插件
nonebot.load_plugins('plugins')

if __name__ == '__main__':
    nonebot.run(app='bot:app')
Example #13
0
import nonebot
from nonebot.log import default_format, logger
from nonebot.adapters.cqhttp import Bot as CQHTTPBot

nonebot.init()
app = nonebot.get_asgi()

driver = nonebot.get_driver()
driver.register_adapter("cqhttp", CQHTTPBot)

nonebot.load_builtin_plugins()
nonebot.load_plugin('nonebot_plugin_apscheduler')
# nonebot.load_plugin('nonebot_plugin_songpicker2')
nonebot.load_plugin('nonebot_plugin_picsearcher')
nonebot.load_plugin('nonebot_plugin_biliav')
nonebot.load_from_toml("pyproject.toml")

logger.add("./logs/{time}.log",
           rotation="00:00",
           retention='1 week',
           enqueue=True,
           diagnose=False,
           level="SUCCESS",
           format=default_format,
           encoding='utf-8')

if __name__ == "__main__":
    nonebot.run(app="__mp_main__:app")
Example #14
0
# from nonebot.log import logger, default_format
# logger.add("error.log",
#            rotation="00:00",
#            diagnose=False,
#            level="ERROR",
#            format=default_format)

# 初始化
# You can pass some keyword args config to init function
nonebot.init()
app = nonebot.get_asgi()
driver = nonebot.get_driver()

# 使用协议
driver.register_adapter("cqhttp", CQHTTPBot)

# 加载插件
nonebot.load_plugin("nonebot_plugin_biliav")
nonebot.load_builtin_plugins()
nonebot.load_from_toml("pyproject.toml")

# Modify some config / config depends on loaded configs
# 
# config = driver.config
# do something...


if __name__ == "__main__":
    nonebot.logger.warning("Always use `nb run` to start the bot instead of manually running!")
    nonebot.run(app="__mp_main__:app")
Example #15
0
from os import path

import nonebot
import config

if __name__ == "__main__":
    nonebot.init(config)
    nonebot.load_plugin("sdchaos.plugins.nmsl")
    nonebot.load_plugin("sdchaos.plugins.roll")
    nonebot.load_plugin("sdchaos.plugins.share_app_solver")
    nonebot.load_plugin("sdchaos.plugins.bili_search")
    nonebot.run(host="127.0.0.1", port=8080)
Example #16
0
filter.level = 'INFO'
logger.add(str(log_path),
           rotation='00:00',
           diagnose=False,
           filter=filter,
           format=default_format,
           encoding='utf-8')

# You can pass some keyword args config to init function
nonebot.init()
app = nonebot.get_asgi()

driver = nonebot.get_driver()
driver.register_adapter(OneBot_V11_Adapter)

nonebot.load_plugin('nonebot_plugin_apscheduler')
nonebot.load_plugin('nonebot_plugin_chatrecorder')
nonebot.load_plugin('nonebot_plugin_manager')
nonebot.load_plugin('nonebot_plugin_alias')
nonebot.load_plugin('nonebot_plugin_withdraw')
nonebot.load_plugin('nonebot_plugin_htmlrender')
nonebot.load_plugin('nonebot_plugin_petpet')
nonebot.load_plugin('nonebot_plugin_logo')
nonebot.load_plugin('nonebot_plugin_memes')
nonebot.load_plugin('nonebot_plugin_asoulcnki')
nonebot.load_plugin('nonebot_plugin_shindan')
nonebot.load_plugin('nonebot_plugin_remake')
nonebot.load_plugin('nonebot_plugin_caiyunai')
nonebot.load_plugin('nonebot_plugin_emojimix')
nonebot.load_plugin('nonebot_plugin_chess')
nonebot.load_plugin('nonebot_plugin_wordcloud')
Example #17
0
from os import path
import nonebot
import config
if __name__ == '__main__':
    nonebot.init(config)
    nonebot.load_builtin_plugins()
    nonebot.load_plugin("plugins.aqua")
    nonebot.run() 
Example #18
0
# Custom your logger
#
# from nonebot.log import logger, default_format
# logger.add("error.log",
#            rotation="00:00",
#            diagnose=False,
#            level="ERROR",
#            format=default_format)

# You can pass some keyword args config to init function
nonebot.init()
app = nonebot.get_asgi()

driver = nonebot.get_driver()
driver.register_adapter("cqhttp", CQHTTPBot)

nonebot.load_builtin_plugins()
nonebot.load_from_toml("pyproject.toml")
nonebot.load_plugin('nonebot_plugin_picsearcher')
#nonebot.load_plugin('nonebot-plugin-wordbank')
nonebot.load_plugins("qqbot_1/plugins")
# Modify some config / config depends on loaded configs
#
# config = driver.config
# do something...

if __name__ == "__main__":
    nonebot.logger.warning(
        "Always use `nb run` to start the bot instead of manually running!")
    nonebot.run(app="__mp_main__:app")
Example #19
0
#            level="ERROR",
#            format=default_format)

# You can pass some keyword args config to init function
nonebot.init()
# nonebot.init(apscherduler_autostart=True)
# nonebot.init(apscherduler_config={"apscheduler.timezone":"Asia/Shanghai"})
app = nonebot.get_asgi()

driver = nonebot.get_driver()
driver.register_adapter("cqhttp", CQHTTPBot)

# nonebot.load_from_toml("pyproject.toml")
# nonebot.load_plugin('nonebot_plugin_test')
# nonebot.load_plugin('nonebot_plugin_guess')
nonebot.load_plugin('simple1.plugins.menu')
nonebot.load_plugin('simple1.plugins.Qbotdone')
nonebot.load_plugin('simple1.plugins.weather')
nonebot.load_plugin('simple1.plugins.push_sys')
nonebot.load_plugin('simple1.plugins.qbothelp')
nonebot.load_plugin('simple1.plugins.wangyimusic')
# nonebot.load_plugin('simple1.plugins.test1')

# Modify some config / config depends on loaded configs
# config = driver.config
# do something...

if __name__ == "__main__":
    nonebot.logger.warning(
        "Always use `nb run` to start the bot instead of manually running!")
    nonebot.run(app="__mp_main__:app")
Example #20
0
            'Listener': tweetListener.runTwitterApiThread,
            'plugin': 'plugins.twitterListener.twitterApi',
        }
    }
    if config.UPDATA_METHOD not in allow_start_method:
        msg = '配置的更新检测(UPDATA_METHOD)方法不合法:' + str(config.UPDATA_METHOD)
        logger.critical(msg)
        raise Exception(msg)
    runTweetListener = allow_start_method[config.UPDATA_METHOD]['Listener']
    runTweetPlugin = allow_start_method[config.UPDATA_METHOD]['plugin']
    if runTweetListener == None:
        msg = '配置的更新检测(UPDATA_METHOD)方法未实现:' + str(config.UPDATA_METHOD)
        logger.critical(msg)
        raise Exception(msg)


if __name__ == "__main__":
    #初始化
    init()
    #启动线程
    time.sleep(2)
    logger.info('启动推特流...')
    runTweetListener()
    logger.info('启动nonebot...')
    nonebot.init(config)
    nonebot.load_plugins(path.join(path.dirname(__file__), 'plugins'),
                         'plugins')
    nonebot.load_plugin(runTweetPlugin)  #加载侦听对应的插件
    nonebot.run(host=config.NONEBOT_HOST, port=config.NONEBOT_PORT)  #阻塞
    sys.exit()  #退出程序(报错后可能存在非守护线程不退出的情况,所以主动退出)
Example #21
0
import nonebot
from nonebot.adapters.cqhttp import Bot

nonebot.init(debug=True)
nonebot.get_driver().register_adapter('cqhttp', Bot)
nonebot.load_plugin('nonetrip')

import nonetrip

nonetrip.init()
nonetrip.load_builtin_plugins()

nonebot.run(port=2333)
Example #22
0
from data import AllData
import nonebot
import config


class QQBot(object):
    """我的机器人"""
    def __init__(self):
        """初始化我的机器人"""
        self.data = AllData()

    def reset(self):
        """重置机器人"""
        self.data.reset_bot()


MyBot = QQBot()

if __name__ == '__main__':
    nonebot.init(config)
    nonebot.load_plugin('clan_war')
    nonebot.load_plugin('scheduler')
    nonebot.run()
Example #23
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from os import path

import nonebot
from nonebot.adapters.cqhttp import Bot
from nonebot.log import default_format, logger

nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter('cqhttp', Bot)
app = nonebot.get_asgi()

nonebot.load_builtin_plugins()
nonebot.load_plugin('nonebot_plugin_apscheduler')
nonebot.load_plugins("src/plugins")

# Modify some config / config depends on loaded configs
#
# config = nonebot.get_driver().config
# do something...

logger.add(path.join('log', "error.log"),
           rotation="00:00",
           retention='1 week',
           diagnose=False,
           level="ERROR",
           format=default_format,
           encoding='utf-8')
Example #24
0
# You can pass some keyword args config to init function
nonebot.init()

# nonebot.init(apscheduler_config={
#     "apscheduler.timezone": "Asia/Shanghai"
# })
# nonebot.init(apscheduler_autostart=True)

app = nonebot.get_asgi()

driver = nonebot.get_driver()
driver.register_adapter("cqhttp", CQHTTPBot)

nonebot.load_builtin_plugins()
nonebot.load_plugin("apeiria_network.plugins.weather")
nonebot.load_plugin("apeiria_network.plugins.notice")
nonebot.load_plugin("apeiria_network.plugins.repeat")
nonebot.load_plugin("apeiria_network.plugins.status")
nonebot.load_plugin("apeiria_network.plugins.switch")
nonebot.load_plugin("apeiria_network.plugins.chat")
nonebot.load_plugin("apeiria_network.plugins.russian_roulette")
# nonebot.load_plugins("apeiria_network/plugins")
nonebot.load_from_toml("pyproject.toml")

logger.info("Apeiria-Network Status OK")

# Modify some config / config depends on loaded configs
#
# config = driver.config
# do something...
Example #25
0
# bot.py
import nonebot
from nonebot.adapters.cqhttp import Bot as CQHTTPBot

nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter("cqhttp", CQHTTPBot)

# load plugins
# nonebot.load_builtin_plugins()
nonebot.load_plugins("awesome_bot/plugins")
# nonebot.load_plugin('nonebot_plugin_picsearcher')

from awesome_bot.config.config import config

if config.test:
    nonebot.load_plugin("nonebot_plugin_test")

app = nonebot.get_asgi()

if __name__ == "__main__":
    nonebot.run()
Example #26
0
from src.utils.yaml_loader import yml_loader
from src.utils.scheduler_job.epd_drawer import shutdown
from pathlib import Path

CONFIG_FILE = Path("./configs.yml")
configs = yml_loader(CONFIG_FILE)
bot_config = configs["bot"]

nonebot.init(debug=bot_config["DEBUG"],
             superusers=set(bot_config["SUPERUSERS"]),
             nickname=set(bot_config["NICKNAME"]),
             command_start=set(bot_config["COMMAND_START"]),
             command_sep=set(bot_config["COMMAND_SEP"]),
             host=bot_config["HOST"],
             port=bot_config["PORT"],
             apscheduler_autostart=False)
app = nonebot.get_asgi()

driver = nonebot.get_driver()
driver.register_adapter("cqhttp", CQHTTPBot)
driver.on_shutdown(shutdown)

nonebot.load_builtin_plugins()
nonebot.load_plugin("nonebot_plugin_apscheduler")
nonebot.load_plugins("src/plugins")


if __name__ == "__main__":
    nonebot.run(app="bot:app")
Example #27
0
COPYRIGHT = ("\033[0;37;1m" + r"""
                     _  _____ ______         _    _                   ______         _
                    | ||  _  || ___ \       | |  | |                  | ___ \       | |
  ___   ___    ___  | || | | || |_/ / _   _ | |_ | |__    ___   _ __  | |_/ /  ___  | |_
 / __| / _ \  / _ \ | || | | ||  __/ | | | || __|| '_ \  / _ \ | '_ \ | ___ \ / _ \ | __|
| (__ | (_) || (_) || |\ \/' /| |    | |_| || |_ | | | || (_) || | | || |_/ /| (_) || |_
 \___| \___/  \___/ |_| \_/\_\\_|     \__, | \__||_| |_| \___/ |_| |_|\____/  \___/  \__|
                                       __/ |
                                      |___/

Copyright © 2019-2020 mnixry,All Rights Reserved
Project: https://github.com/mnixry/coolQPythonBot
=================================================""" + "\033[0m")

nonebot.init(debug=settings.DEBUG)
nonebot.load_plugin("nonetrip")
nonebot.get_driver().register_adapter("cqhttp", Bot)

if __name__ == "__main__":
    print(COPYRIGHT)

    from app import initApp

    app = initApp()
    startTime = time()

    from utils.exception import ExceptionProcess

    try:
        nonebot.run(host=settings.HOST, port=settings.PORT)
    except KeyboardInterrupt:
Example #28
0
parser.add_argument('-d',
                    '--dev',
                    action='store_true',
                    default=False,
                    help='Enable the developing mode')
args = parser.parse_args()

if not args.dev:  # save the logs to disk in non-developing mode
    logger.add("logs/errors_{time}.log",
               rotation="00:00",
               diagnose=False,
               level="ERROR",
               format=default_format)

# initialize the bot
nonebot.init(debug=args.dev,
             fastapi_reload_dirs=['littlefish'],
             command_start=[''])
driver = nonebot.get_driver()
driver.register_adapter("cqhttp", Bot)
nonebot.load_plugin('nonebot_plugin_apscheduler')
nonebot.load_plugins('littlefish')

if args.dev:
    app = nonebot.get_asgi()  # load the ASGI app
    nonebot.load_plugin(
        'nonebot_plugin_test')  # enable the test frontend in developing mode

if __name__ == '__main__':
    nonebot.run(app='bot:app' * args.dev)
Example #29
0
File: bot.py Project: SK-415/dd-bot
import logging
import os
from os import path

import nonebot
from nonebot.log import logger

import config

if __name__ == '__main__':
    nonebot.init(config)
    nonebot.load_builtin_plugins()
    nonebot.load_plugin('help')

    # 将工作目录切换到 bot.py 所在的文件夹
    os.chdir(path.dirname(path.abspath(__file__)))

    # 导入 \plugins 下所有的插件
    for dirname in os.listdir('plugins'):
        if dirname != '__pycache__' and path.isdir(
                path.join('plugins', dirname)):
            nonebot.load_plugins(
                path.join(path.abspath('.'), 'plugins', dirname),
                'plugins.' + dirname)
            # 检查是否有对应 data 文件夹, 没有就创建一个
            if not path.isdir(path.join('data', dirname)):
                os.makedirs(path.join('data', dirname))

    # # 设置 DEBUG 日志
    # debug_handler = logging.handlers.TimedRotatingFileHandler(
    #     filename=path.join('log', 'debug.log'),
Example #30
0
import sys
from os import path

import nonebot
from nonebot.adapters.cqhttp import Bot
from nonebot.log import default_format, logger

nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter('cqhttp', Bot)
app = nonebot.get_asgi()

# 删除 haruka_bot 导入,否则 nonebot 导入时会忽略
del sys.modules['haruka_bot']
nonebot.load_plugin("haruka_bot")

# Modify some config / config depends on loaded configs
#
# config = nonebot.get_driver().config
# do something...

logger.add(path.join('log', "error.log"),
           rotation="00:00",
           retention='1 week',
           diagnose=False,
           level="ERROR",
           format=default_format,
           encoding='utf-8')


def run():