diff --git a/LittlePaimon-install-windows.ps1 b/LittlePaimon-install-windows.ps1 new file mode 100644 index 0000000..917bc2b --- /dev/null +++ b/LittlePaimon-install-windows.ps1 @@ -0,0 +1,294 @@ +# this file should be saved as "UTF-8 with BOM" +$ErrorActionPreference = "Stop" + +function Expand-ZIPFile($file, $destination) { + $file = (Resolve-Path -Path $file).Path + $destination = (Resolve-Path -Path $destination).Path + $shell = new-object -com shell.application + $zip = $shell.NameSpace($file) + foreach ($item in $zip.items()) { + $shell.Namespace($destination).copyhere($item) + } +} + +# 检查运行环境 +if ($Host.Version.Major -lt 3) { + Write-Output 'powershell 版本过低,无法一键安装' + exit +} +if ((Get-ChildItem -Path Env:OS).Value -ine 'Windows_NT') { + Write-Output '当前操作系统不支持一键安装' + exit +} +if (![Environment]::Is64BitProcess) { + Write-Output '暂时不支持32位系统' + exit +} + +if (Test-Path ./LittlePaimon-Bot) { + Write-Output '发现重复,是否删除旧文件并重新安装?' + $reinstall = Read-Host '请输入 y 或 n (y/n)' + Switch ($reinstall) { + Y { Remove-Item .\LittlePaimon-Bot -Recurse -Force } + N { exit } + Default { exit } + } +} + +try { + py -3.8 --version + if ($LASTEXITCODE = '0') { + Write-Output 'python 3.8 已发现,跳过安装' + $install_git = $false + } + else { + $install_python = $true + Write-Output 'python 3.8 未发现,将自动安装' + } +} +catch [System.Management.Automation.CommandNotFoundException] { + $install_python = $true + Write-Output 'python 3.8 未发现,将自动安装' +} + +try { + git --version + $install_git = $false + Write-Output 'git 已发现,跳过安装' +} +catch [System.Management.Automation.CommandNotFoundException] { + $install_git = $true + Write-Output 'git 未发现,将自动安装' +} + +$qqid = Read-Host '请输入作为机器人的QQ号:' +$qqpassword = Read-Host -AsSecureString '请输入作为机器人的QQ密码:' +$qqsuperuser = Read-Host '请输入机器人管理员的QQ号:' + +$loop = $true +while ($loop) { + $loop = $false + Write-Output '请选择下载源' + Write-Output '1、中国大陆' + Write-Output '2、港澳台或国外' + $user_in = Read-Host '请输入 1 或 2' + Switch ($user_in) { + 1 { $source_cn = $true } + 2 { $source_cn = $false } + Default { $loop = $true } + } +} + +if ($source_cn) { + # 中国大陆下载源 + $python38 = 'https://mirrors.huaweicloud.com/python/3.8.6/python-3.8.6-amd64.exe' + $git = 'https://mirrors.huaweicloud.com/git-for-windows/v2.35.1.windows.1/Git-2.35.1-64-bit.exe' + $gocqhttp = 'https://download.fastgit.org/Mrs4s/go-cqhttp/releases/download/v1.0.0-rc1/go-cqhttp_windows_amd64.zip' + $LittlePaimongit = 'https://hub.fastgit.xyz/CMHopeSunshine/LittlePaimon.git' + $pypi = 'http://mirrors.aliyun.com/pypi/simple/' +} +else { + # 国际下载源 + $python38 = 'https://www.python.org/ftp/python/3.8.6/python-3.8.6-amd64.exe' + $git = 'https://github.com/git-for-windows/git/releases/download/v2.35.1.windows.1/Git-2.35.1-64-bit.exe' + $gocqhttp = 'https://github.com/Mrs4s/go-cqhttp/releases/download/v1.0.0-rc1/go-cqhttp_windows_amd64.zip' + $LittlePaimongit = 'https://github.com/CMHopeSunshine/LittlePaimon.git' + $pypi = 'https://pypi.org/simple/' +} + +# 创建运行目录 +New-Item -Path .\LittlePaimon-Bot -ItemType Directory +Set-Location LittlePaimon-Bot +New-Item -ItemType Directory -Path .\go-cqhttp + +# 下载安装程序 +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + +if ($install_python) { + Write-Output "正在安装 python" + Invoke-WebRequest $python38 -OutFile .\python-3.8.6.exe + Start-Process -Wait -FilePath .\python-3.8.6.exe -ArgumentList "/quiet InstallAllUsers=1 PrependPath=1 Include_test=0" + Write-Output "python 安装成功" + Remove-Item python-3.8.6.exe +} +if ($install_git) { + Write-Output "正在安装 git" + Invoke-WebRequest $git -OutFile .\git-2.35.1.exe + Start-Process -Wait -FilePath .\git-2.35.1.exe -ArgumentList "/SILENT /SP-" + $env:Path += ";C:\Program Files\Git\bin" # 添加 git 环境变量 + Write-Output "git 安装成功" + Remove-Item git-2.35.1.exe +} +Invoke-WebRequest $gocqhttp -O .\go-cqhttp.zip +Expand-ZIPFile go-cqhttp.zip -Destination .\go-cqhttp\ +Remove-Item go-cqhttp.zip + +# 下载源码 +git clone $LittlePaimongit --depth=1 +Set-Location LittlePaimon +py -3.8 -m pip install "matplotlib~=3.2.0" -i $pypi +py -3.8 -m pip install -r requirements.txt -i $pypi +Copy-Item -Recurse hoshino\config_example hoshino\config +Set-Location .. + +# 写入 gocqhttp 配置文件 +$realpassword = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($qqpassword)) +New-Item -Path .\go-cqhttp\config.yml -ItemType File -Value @" +# go-cqhttp 默认配置文件 + +account: # 账号相关 + uin: ${qqid} # QQ账号 + password: '${realpassword}' # 密码为空时使用扫码登录 + encrypt: false # 是否开启密码加密 + status: 0 # 在线状态 请参考 https://docs.go-cqhttp.org/guide/config.html#在线状态 + relogin: # 重连设置 + delay: 3 # 首次重连延迟, 单位秒 + interval: 3 # 重连间隔 + max-times: 0 # 最大重连次数, 0为无限制 + + # 是否使用服务器下发的新地址进行重连 + # 注意, 此设置可能导致在海外服务器上连接情况更差 + use-sso-address: true + +heartbeat: + # 心跳频率, 单位秒 + # -1 为关闭心跳 + interval: 5 + +message: + # 上报数据类型 + # 可选: string,array + post-format: string + # 是否忽略无效的CQ码, 如果为假将原样发送 + ignore-invalid-cqcode: false + # 是否强制分片发送消息 + # 分片发送将会带来更快的速度 + # 但是兼容性会有些问题 + force-fragment: true + # 是否将url分片发送 + fix-url: false + # 下载图片等请求网络代理 + proxy-rewrite: '' + # 是否上报自身消息 + report-self-message: false + # 移除服务端的Reply附带的At + remove-reply-at: false + # 为Reply附加更多信息 + extra-reply-data: false + # 跳过 Mime 扫描, 忽略错误数据 + skip-mime-scan: false + +output: + # 日志等级 trace,debug,info,warn,error + log-level: warn + # 日志时效 单位天. 超过这个时间之前的日志将会被自动删除. 设置为 0 表示永久保留. + log-aging: 15 + # 是否在每次启动时强制创建全新的文件储存日志. 为 false 的情况下将会在上次启动时创建的日志文件续写 + log-force-new: true + # 是否启用日志颜色 + log-colorful: true + # 是否启用 DEBUG + debug: false # 开启调试模式 + +# 默认中间件锚点 +default-middlewares: &default + # 访问密钥, 强烈推荐在公网的服务器设置 + access-token: '' + # 事件过滤器文件目录 + filter: '' + # API限速设置 + # 该设置为全局生效 + # 原 cqhttp 虽然启用了 rate_limit 后缀, 但是基本没插件适配 + # 目前该限速设置为令牌桶算法, 请参考: + # https://baike.baidu.com/item/%E4%BB%A4%E7%89%8C%E6%A1%B6%E7%AE%97%E6%B3%95/6597000?fr=aladdin + rate-limit: + enabled: false # 是否启用限速 + frequency: 1 # 令牌回复频率, 单位秒 + bucket: 1 # 令牌桶大小 + +database: # 数据库相关设置 + leveldb: + # 是否启用内置leveldb数据库 + # 启用将会增加10-20MB的内存占用和一定的磁盘空间 + # 关闭将无法使用 撤回 回复 get_msg 等上下文相关功能 + enable: true + + # 媒体文件缓存, 删除此项则使用缓存文件(旧版行为) + cache: + image: data/image.db + video: data/video.db + +# 连接服务列表 +servers: + # 添加方式,同一连接方式可添加多个,具体配置说明请查看文档 + #- http: # http 通信 + #- ws: # 正向 Websocket + #- ws-reverse: # 反向 Websocket + #- pprof: #性能分析服务器 + # 反向WS设置 + - ws-reverse: + # 反向WS Universal 地址 + # 注意 设置了此项地址后下面两项将会被忽略 + universal: ws://127.0.0.1:80/ws/ + # 反向WS API 地址 + api: ws://127.0.0.1:80/api/ + # 反向WS Event 地址 + event: ws://127.0.0.1:80/event/ + # 重连间隔 单位毫秒 + reconnect-interval: 3000 + middlewares: + <<: *default # 引用默认中间件 + +"@ + +# 写入 LittlePaimon 配置文件 +Set-Content .\LittlePaimon\hoshino\config\__bot__.py -Value @" +# coding=gbk +# hoshino监听的端口与ip +PORT = 80 +HOST = '127.0.0.1' # 本地部署使用此条配置(QQ客户端和bot端运行在同一台计算机) +# HOST = '0.0.0.0' # 开放公网访问使用此条配置(不安全) + +DEBUG = False # 调试模式 + +WHITE_LIST = [] +SUPERUSERS = [${qqsuperuser}] # 填写超级用户的QQ号,可填多个用半角逗号","隔开 +GUILDADMIN = [] +NICKNAME = ('派蒙','bot') # 机器人的昵称。呼叫昵称等同于@bot,可用元组配置多个昵称 + +COMMAND_START = {''} # 命令前缀(空字符串匹配任何消息) +COMMAND_SEP = set() # 命令分隔符(hoshino不需要该特性,保持为set()即可) + +# 发送图片的协议 +# 可选 http, file, base64 +# 当QQ客户端与bot端不在同一台计算机时,可用http协议 +RES_PROTOCOL = 'file' +# 资源库文件夹,需可读可写,windows下注意反斜杠转义 +RES_DIR = r'./res/' +# 使用http协议时需填写,原则上该url应指向RES_DIR目录 +RES_URL = 'http://127.0.0.1:5000/static/' + + +# 启用的模块 +# 初次尝试部署时请先保持默认 +# 如欲启用新模块,请认真阅读部署说明,逐个启用逐个配置 +# 切忌一次性开启多个 +MODULES_ON = { + 'botmanage', + 'dice', + 'avatar_gif', + 'codeonline', + 'Paimonchat', + 'Genshin_Paimon', + 'myb_exchange' +} +"@ + +# 写启动程序 +New-Item -Path .\启动.ps1 -ItemType File -Value @" +Start-Process -FilePath py.exe -ArgumentList "-3.8 ${pwd}\LittlePaimon\run.py" -WorkingDirectory .\LittlePaimon +Set-Location .\go-cqhttp +./go-cqhttp.exe +"@ + +Write-Output '用powershell运行"启动.ps1"来启动机器人吧!' \ No newline at end of file diff --git a/hoshino/modules/Genshin_Paimon/res/reliquaries/73523.png b/hoshino/modules/Genshin_Paimon/res/reliquaries/73523.png new file mode 100644 index 0000000..ba0a1f5 Binary files /dev/null and b/hoshino/modules/Genshin_Paimon/res/reliquaries/73523.png differ diff --git a/hoshino/modules/Genshin_Paimon/res/weapon/UI_EquipIcon_Bow_Crowfeather.png b/hoshino/modules/Genshin_Paimon/res/weapon/UI_EquipIcon_Bow_Crowfeather.png new file mode 100644 index 0000000..b97b793 Binary files /dev/null and b/hoshino/modules/Genshin_Paimon/res/weapon/UI_EquipIcon_Bow_Crowfeather.png differ diff --git a/requirements.txt b/requirements.txt index e943d3e..c77ff6c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,7 @@ pytz>=2021.3 requests>=2.22.0 zhconv>=1.4.0 Pillow>=8.4.0 -matplotlib==3.2.0 +matplotlib>=3.2.0 numpy>=1.18.0 beautifulsoup4>=4.9.0 pygtrie>=2.0