Esempio n. 1
0
def initApp():
    assert nonetrip.scheduler  # Check if scheduler exists
    # Initialize logging
    loggingPath = os.path.join(LOG_FILE_DIR, "{time}.log")
    botLogger.add(loggingPath, enqueue=True, encoding="utf-8")
    # Initialize settings
    nonetrip.init(settings)
    nonetrip.load_plugins("plugins", "plugins")
    botLogger.info(
        f"The robot is currently configured as: {convertSettingsToDict()}")
    bot = nonetrip.get_bot()
    return bot.asgi
Esempio n. 2
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')
Esempio n. 3
0
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')

if __name__ == "__main__":
    nonebot.run(app="bot:app")
Esempio n. 4
0
import platform
import os
import time, datetime

import nonebot
from nonebot.adapters.cqhttp import Bot, Event
from nonebot.adapters.cqhttp import MessageSegment as msg
from nonebot.matcher import Matcher
from nonebot import get_bots
from nonebot.log import logger

from christinaqqbot.utils.reply import get_random_reply
from christinaqqbot.utils.time import get_beijing_time
from .model import setu

logger.add('log.log', retention='10 days')

setu_tags = [
    '萝莉', '黑丝', '白丝', '魅魔', '吸血鬼', '白毛', 'arknights', '原神', '碧蓝航线', '百合', '红瞳',
    '舰队Collection', 'JK', '巨乳'
]

setu_api = nonebot.get_driver().config.setu_api


def get_2_setu(tag='random') -> setu:
    if (tag == 'random'):
        tag = get_random_reply(setu_tags)
    try:
        api_url = setu_api + '/pixiv/search/{tag}/popular/0'.format(tag=tag)
        r = requests.get(url=api_url)
Esempio n. 5
0
from nonebot.log import logger
from sentry_sdk.integrations.logging import EventHandler, BreadcrumbHandler

from .config import Config

driver = get_driver()
global_config = driver.config
config = Config(**global_config.dict())

assert config.sentry_dsn, "Sentry DSN must provided!"

sentry_sdk.init(**{
    key[7:]: value
    for key, value in config.dict().items() if key != "sentry_environment"
},
                environment=config.sentry_environment or driver.env,
                default_integrations=False)


class Filter:
    def __init__(self, level="INFO") -> None:
        self.level = level

    def __call__(self, record):
        levelno = logger.level(self.level).no
        return record["level"].no >= levelno


logger.add(EventHandler("ERROR"), filter=Filter("ERROR"))
logger.add(BreadcrumbHandler("INFO"), filter=Filter("INFO"))
Esempio n. 6
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")
Esempio n. 7
0
driver = nonebot.get_driver()
driver.register_adapter("cqhttp", CQHTTPBot)
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__':
Esempio n. 8
0
import os
import nonebot
from datetime import datetime
from nonebot.adapters.cqhttp import Bot as CQHTTPBot
from nonebot.log import logger, default_format

# Custom logger
log_info_name = f"{datetime.today().strftime('%Y%m%d-%H%M%S')}-INFO.log"
log_error_name = f"{datetime.today().strftime('%Y%m%d-%H%M%S')}-ERROR.log"
log_file_path = os.path.join(os.path.dirname(__file__), 'omega_miya', 'log')
log_info_path = os.path.join(log_file_path, log_info_name)
log_error_path = os.path.join(log_file_path, log_error_name)

logger.add(log_info_path,
           rotation="00:00",
           diagnose=False,
           level="INFO",
           format=default_format,
           encoding='utf-8')
logger.add(log_error_path,
           rotation="00:00",
           diagnose=False,
           level="ERROR",
           format=default_format,
           encoding='utf-8')

# You can pass some keyword args config to init function
nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter("cqhttp", CQHTTPBot)

nonebot.load_plugins("omega_miya/utils")
Esempio n. 9
0
from pathlib import Path
from nonebot.adapters.onebot.v11 import Adapter as OneBot_V11_Adapter

from nonebot.log import logger, Filter, default_format

log_name = 'nonebot.log'
log_dir = Path('log')
if not log_dir.exists():
    log_dir.mkdir()
log_path = log_dir / log_name

filter = Filter()
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')
Esempio n. 10
0
LOGGER_DIR = Path(".") / "ATRI" / "data" / "logs"
LOGGER_DIR.parent.mkdir(exist_ok=True, parents=True)

NOW_TIME = datetime.now().strftime("%Y%m%d-%H")

log_format = ("\033[36mATRI\033[0m "
              "| <g>{time:MM-DD HH:mm:ss}</g> "
              "| <lvl>{level}</lvl> "
              "<c><u>{name}</u></c> >> "
              "{message}")

logger.remove()
logger.add(
    sys.stdout,
    level="DEBUG" if Config.BotSelfConfig.debug else "INFO",
    colorize=True,
    format=log_format,
)

logger.add(
    LOGGER_DIR / "info" / f"{NOW_TIME}-INFO.log",
    rotation="10 MB",
    enqueue=True,
    level="INFO",
    encoding="utf-8",
    format=log_format,
)

logger.add(
    LOGGER_DIR / "warning" / f"{NOW_TIME}-WARNING.log",
    rotation="10 MB",
Esempio n. 11
0
    '.'
) / 'logs' / 'error' / f"{datetime.datetime.now().strftime('%Y%m%d-%H%M%S')}-ERROR.log"

nonebot.init(debug=bool(config['debug']),
             superusers=set(config['superusers']),
             nickname=set(config['nickname']),
             command_start=set(config['command_start']),
             command_sep=set(config['command_sep']))
app = nonebot.get_asgi()

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

nonebot.load_plugins('ATRI/plugins')

logger.add(LOGGER_INFO_PATH,
           rotation='10 MB',
           diagnose=False,
           level='INFO',
           format=default_format)

logger.add(LOGGER_ERROR_PATH,
           rotation='10 MB',
           diagnose=False,
           level='ERROR',
           format=default_format)

if __name__ == "__main__":
    logger.info("Running ATRI...")
    nonebot.run(app='bot:app', host=config['host'], port=config['port'])
Esempio n. 12
0
import nonebot
from nonebot.adapters.cqhttp import Bot
from nonebot.log import default_format, logger


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

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

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

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!")
Esempio n. 13
0
_log_file = os.path.expanduser('./log/salmon.log')
_error_log_file = os.path.expanduser('./log/error.log')
_critical_log_file = os.path.expanduser('./log/critical.log')
bot_filter = Filter()
if configs.DEBUG:
    bot_filter.level = 'DEBUG'
else:
    bot_filter.level = 'INFO'
log_format = ("<g>{time:MM-DD HH:mm:ss}</g> "
              "[<lvl>{level}</lvl>] "
              "<c><u>{name}</u></c> | "
              "{message}")
logger.remove()
logger.add(sys.stdout,
           colorize=True,
           diagnose=False,
           filter=bot_filter,
           format=log_format)
logger.add(_log_file,
           rotation='05:00',
           retention='3 days',
           level='INFO',
           encoding='utf-8')
logger.add(_error_log_file,
           rotation='05:00',
           retention='7 days',
           level='ERROR',
           encoding='utf-8')
logger.add(_critical_log_file,
           rotation='05:00',
           retention='10 days',
Esempio n. 14
0
"""
使用这个模块中的logger以自动记录日志到指定文件
"""

from pathlib import Path
from nonebot.log import logger
from .easy_setting import DEBUG

logfolder = Path('./logs')
if not logfolder.exists():
    logfolder.mkdir()

level = "DEBUG" if DEBUG else "WARNING"
logger.add(logfolder / "{time:YYYY-MM-DD}.log",
           rotation="00:00",
           retention="1 days",
           encoding='utf-8',
           level=level)

if __name__ == "__main__":
    logger.info('编码测试')
Esempio n. 15
0
import os
import sys

sys.path.insert(0, os.path.abspath(".."))

import nonebot
from nonebot.log import logger, default_format

# test custom log
logger.add("error.log",
           rotation="00:00",
           diagnose=False,
           level="ERROR",
           format=default_format)

nonebot.init(custom_config2="config on init")
app = nonebot.get_asgi()

# load builtin plugin
nonebot.load_builtin_plugins()

# load local plugins
nonebot.load_plugins("test_plugins")

print(nonebot.require("test_export"))

# modify some config / config depends on loaded configs
config = nonebot.get_driver().config
config.custom_config3 = config.custom_config1
config.custom_config4 = "New custom config"
Esempio n. 16
0
    def __init__(self) -> None:
        self.level: Union[int, str] = "DEBUG"

    def __call__(self, record):
        module_name: str = record["name"]
        module = sys.modules.get(module_name)
        if module:
            module_name = getattr(module, "__module_name__", module_name)
        record["name"] = module_name.split(".")[0]
        levelno = (logger.level(self.level).no
                   if isinstance(self.level, str) else self.level)
        nonebot_warning_level = logger.level("WARNING").no
        return (record["level"].no >= levelno if record["name"] != "nonebot"
                else record["level"].no >= nonebot_warning_level)


if plugin_config.bison_filter_log:
    logger.remove()
    default_filter = Filter()
    logger.add(
        sys.stdout,
        colorize=True,
        diagnose=False,
        filter=default_filter,
        format=default_format,
    )
    config = nonebot.get_driver().config
    logger.success("Muted info & success from nonebot")
    default_filter.level = (("DEBUG" if config.debug else "INFO")
                            if config.log_level is None else config.log_level)
Esempio n. 17
0
import nonebot
from nonebot.adapters.cqhttp import Bot as CQHTTPBot
from nonebot.log import logger

nonebot.init()
driver = nonebot.get_driver()
driver.register_adapter("cqhttp", CQHTTPBot)
# nonebot.load_builtin_plugins()
nonebot.load_plugins("src/plugins")

if __name__ == "__main__":
    nonebot.run()
    logger.add("file_1.log", rotation="4096 MB")

Esempio n. 18
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import nonebot
from nonebot.adapters.cqhttp import Bot as CQHTTPBot

import os
import nonebot
from nonebot.adapters.cqhttp import Bot as CQHTTPBot
from nonebot.log import logger, default_format

log_root = "logs/"

os.makedirs(log_root, exist_ok=True)
logger.add(log_root + "{time:YYYYMMDD}.log", rotation="00:00", level="INFO")
logger.add(log_root + "{time:YYYYMMDD}_error.log",
           rotation="00:00",
           level="ERROR")
logger.add(log_root + "{time:YYYYMMDD}_debug.log",
           rotation="00:00",
           level="DEBUG")

# 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_plugins("src/plugins")