mirror of
http://shenjack.top:5100/shenjack/icalingua-python-bot.git
synced 2025-04-20 12:09:54 +08:00
Compare commits
3 Commits
c65a2229cc
...
f8332f7761
Author | SHA1 | Date | |
---|---|---|---|
f8332f7761 | |||
80c5c18bdb | |||
b349cdf4af |
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -653,7 +653,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ica-rs"
|
name = "ica-rs"
|
||||||
version = "0.6.2"
|
version = "0.6.3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "ica-rs"
|
name = "ica-rs"
|
||||||
version = "0.6.2"
|
version = "0.6.3"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import io
|
import io
|
||||||
import re
|
import re
|
||||||
import time
|
import time
|
||||||
|
import base64
|
||||||
import requests
|
import requests
|
||||||
import traceback
|
import traceback
|
||||||
|
import urllib.parse
|
||||||
|
|
||||||
# import PIL
|
# import PIL
|
||||||
|
|
||||||
|
@ -16,7 +18,7 @@ else:
|
||||||
IcaNewMessage = TypeVar("NewMessage")
|
IcaNewMessage = TypeVar("NewMessage")
|
||||||
IcaClient = TypeVar("IcaClient")
|
IcaClient = TypeVar("IcaClient")
|
||||||
|
|
||||||
_version_ = "2.3.1-rs"
|
_version_ = "2.4.0-rs"
|
||||||
backend_version = "unknown"
|
backend_version = "unknown"
|
||||||
|
|
||||||
def format_data_size(data_bytes: float) -> str:
|
def format_data_size(data_bytes: float) -> str:
|
||||||
|
@ -254,9 +256,30 @@ def bmcl_rank(msg: IcaNewMessage, client: IcaClient, name: str) -> None:
|
||||||
client.send_message(reply)
|
client.send_message(reply)
|
||||||
|
|
||||||
|
|
||||||
|
def bangbang_img(msg: IcaNewMessage, client: IcaClient) -> None:
|
||||||
|
data = requests.get("https://api.bangbang93.top/api/link")
|
||||||
|
if data.status_code != 200:
|
||||||
|
reply = msg.reply_with(f"请求失败 {data.status_code} {data.reason}")
|
||||||
|
client.send_message(reply)
|
||||||
|
return
|
||||||
|
raw_name = data.url.split("/")[-1]
|
||||||
|
img_suffix = raw_name.split(".")[-1]
|
||||||
|
# mine 映射一下
|
||||||
|
if img_suffix.lower() in ("jpeg", "jpg"):
|
||||||
|
img_suffix = "jpeg"
|
||||||
|
img_name = raw_name[:-len(img_suffix) - 1]
|
||||||
|
img_name = urllib.parse.unquote(img_name)
|
||||||
|
mime_format = f"image/{img_suffix}"
|
||||||
|
client.info(f"获取到随机怪图: {img_name} {img_suffix}")
|
||||||
|
reply = msg.reply_with(img_name)
|
||||||
|
reply.set_img(data.content, mime_format, True)
|
||||||
|
client.send_message(reply)
|
||||||
|
|
||||||
|
|
||||||
help = """/bmcl -> dashboard
|
help = """/bmcl -> dashboard
|
||||||
/bmcl rank -> all rank
|
/bmcl rank -> all rank
|
||||||
/bmcl rank <name> -> rank of <name>
|
/bmcl rank <name> -> rank of <name>
|
||||||
|
/bm93 -> 随机怪图
|
||||||
/brrs <name> -> rank of <name>
|
/brrs <name> -> rank of <name>
|
||||||
搜索限制:
|
搜索限制:
|
||||||
1- 3 显示全部信息
|
1- 3 显示全部信息
|
||||||
|
@ -296,6 +319,8 @@ def on_ica_message(msg: IcaNewMessage, client: IcaClient) -> None:
|
||||||
if len(name) > 1:
|
if len(name) > 1:
|
||||||
name = name[1]
|
name = name[1]
|
||||||
bmcl_rank(msg, client, name)
|
bmcl_rank(msg, client, name)
|
||||||
|
elif msg.content == "/bm93":
|
||||||
|
bangbang_img(msg, client)
|
||||||
except: # noqa
|
except: # noqa
|
||||||
report_msg = f"bmcl插件发生错误,请呼叫shenjack\n{traceback.format_exc()}"
|
report_msg = f"bmcl插件发生错误,请呼叫shenjack\n{traceback.format_exc()}"
|
||||||
reply = msg.reply_with(report_msg)
|
reply = msg.reply_with(report_msg)
|
||||||
|
|
|
@ -275,7 +275,7 @@ impl NewMessage {
|
||||||
|
|
||||||
/// 创建一条对这条消息的回复
|
/// 创建一条对这条消息的回复
|
||||||
pub fn reply_with(&self, content: &String) -> SendMessage {
|
pub fn reply_with(&self, content: &String) -> SendMessage {
|
||||||
SendMessage::new(content.clone(), self.room_id, Some(self.msg.as_reply()), false)
|
SendMessage::new(content.clone(), self.room_id, Some(self.msg.as_reply()))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 作为被删除的消息
|
/// 作为被删除的消息
|
||||||
|
@ -310,19 +310,14 @@ pub struct SendMessage {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SendMessage {
|
impl SendMessage {
|
||||||
pub fn new(
|
pub fn new(content: String, room_id: RoomId, reply_to: Option<ReplyMessage>) -> Self {
|
||||||
content: String,
|
|
||||||
room_id: RoomId,
|
|
||||||
reply_to: Option<ReplyMessage>,
|
|
||||||
sticker: bool,
|
|
||||||
) -> Self {
|
|
||||||
Self {
|
Self {
|
||||||
content,
|
content,
|
||||||
room_id,
|
room_id,
|
||||||
reply_to,
|
reply_to,
|
||||||
at: json!([]),
|
at: json!([]),
|
||||||
file_data: None,
|
file_data: None,
|
||||||
sticker,
|
sticker: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -341,6 +336,7 @@ impl SendMessage {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 被删除的消息
|
||||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||||
pub struct DeleteMessage {
|
pub struct DeleteMessage {
|
||||||
#[serde(rename = "roomId")]
|
#[serde(rename = "roomId")]
|
||||||
|
|
|
@ -51,7 +51,6 @@ pub async fn start_ica(config: &IcaConfig, stop_reciver: StopGetter) -> ClientRe
|
||||||
format!("shenbot v {}\nica-async-rs v{}", crate::VERSION, crate::ICA_VERSION),
|
format!("shenbot v {}\nica-async-rs v{}", crate::VERSION, crate::ICA_VERSION),
|
||||||
*room,
|
*room,
|
||||||
None,
|
None,
|
||||||
false,
|
|
||||||
);
|
);
|
||||||
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user