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)
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)
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)
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
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
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")
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
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
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')
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")
# -*- 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,
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')
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")
# 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")
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)
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')
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()
# 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")
# 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")
'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() #退出程序(报错后可能存在非守护线程不退出的情况,所以主动退出)
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)
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()
#!/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')
# 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...
# 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()
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")
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:
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)
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'),
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():