This commit is contained in:
2020-01-01 22:28:00 +08:00
parent 0448e22fbc
commit dbbbb66d22
3 changed files with 111 additions and 5 deletions

View File

@@ -1,10 +1,10 @@
[package]
name = "dingtalk"
version = "1.0.0"
version = "1.0.1"
authors = ["Hatter Jiang <jht5945@gmail.com>"]
edition = "2018"
description = "DingTalk Robot Util, Send text/markdown/link messages using DingTalk robot"
keywords = ["DingTalk", "Robot", "Message"]
description = "DingTalk Robot Util, Send text/markdown/link messages using DingTalk robot, 钉钉机器人"
keywords = ["DingTalk", "Robot", "Message", "钉钉", "机器人"]
readme = "README.md"
repository = "https://git.hatter.ink/hatter/dingtalk"
license = "MIT"

View File

@@ -25,9 +25,65 @@ pub fn main() -> Result<(), Box<dyn std::error::Error>> {
}
```
Sample, send markdown message:
```rust
dt.send_markdown("markdown title 001", r#"# markdown content 001
* line 0
* line 1
* line 2"#)?;
```
Sample, send link message:
```rust
dt.send_link("link title 001", "link content 001", "https://hatter.ink/favicon.png", "https://hatter.ink/")?;
```
Sample, send feed card message:
```rust
dt.send_message(&DingTalkMessage::new_feed_card()
.add_feed_card_link(DingTalkMessageFeedCardLink{
title: "test feed card title 001".into(),
message_url: "https://hatter.ink/".into(),
pic_url: "https://hatter.ink/favicon.png".into(),
})
.add_feed_card_link(DingTalkMessageFeedCardLink{
title: "test feed card title 002".into(),
message_url: "https://hatter.ink/".into(),
pic_url: "https://hatter.ink/favicon.png".into(),
})
)?;
```
Sample, send action card message(single btn):
```rust
dt.send_message(&DingTalkMessage::new_action_card("action card 001", "action card text 001")
.set_action_card_signle_btn(DingTalkMessageActionCardBtn{
title: "test signle btn title".into(),
action_url: "https://hatter.ink/".into(),
})
)?;
```
Sample, send action card message(multi btns):
```rust
dt.send_message(&DingTalkMessage::new_action_card("action card 002", "action card text 002")
.add_action_card_btn(DingTalkMessageActionCardBtn{
title: "test signle btn title 01".into(),
action_url: "https://hatter.ink/".into(),
})
.add_action_card_btn(DingTalkMessageActionCardBtn{
title: "test signle btn title 02".into(),
action_url: "https://hatter.ink/".into(),
})
)?;
```
#### Changelog
* v1.0.1
* change two fn names
* Add readme sample codes
* v1.0.0
* `TEXT` -> `Text` ..., change enum caps
* Add `ActionCard` message, send action card message type

View File

@@ -232,13 +232,13 @@ impl <'a> DingTalkMessage<'a> {
}
/// Set action card single btn
pub fn action_card_signle_btn(mut self, btn: DingTalkMessageActionCardBtn) -> Self {
pub fn set_action_card_signle_btn(mut self, btn: DingTalkMessageActionCardBtn) -> Self {
self.action_card_single_btn = Some(btn);
self
}
/// Add action card btn
pub fn action_card_add_btn(mut self, btn: DingTalkMessageActionCardBtn) -> Self {
pub fn add_action_card_btn(mut self, btn: DingTalkMessageActionCardBtn) -> Self {
self.action_card_btns.push(btn);
self
}
@@ -490,3 +490,53 @@ fn calc_hmac_sha256(key: &[u8], message: &[u8]) -> MacResult {
hmac.input(message);
hmac.result()
}
#[test]
fn run_all_tests() {
_test_send().unwrap();
}
fn _test_send() -> XResult<()> {
let dt = DingTalk::from_file("~/.dingtalk-token.json")?;
dt.send_text("test message 001 ---------------------")?;
dt.send_markdown("markdown title 001", r#"# markdown content 001
* line 0
* line 1
* line 2"#)?;
dt.send_link("link title 001", "link content 001", "https://hatter.ink/favicon.png", "https://hatter.ink/")?;
dt.send_message(&DingTalkMessage::new_feed_card()
.add_feed_card_link(DingTalkMessageFeedCardLink{
title: "test feed card title 001".into(),
message_url: "https://hatter.ink/".into(),
pic_url: "https://hatter.ink/favicon.png".into(),
})
.add_feed_card_link(DingTalkMessageFeedCardLink{
title: "test feed card title 002".into(),
message_url: "https://hatter.ink/".into(),
pic_url: "https://hatter.ink/favicon.png".into(),
})
)?;
dt.send_message(&DingTalkMessage::new_action_card("action card 001", "action card text 001")
.set_action_card_signle_btn(DingTalkMessageActionCardBtn{
title: "test signle btn title".into(),
action_url: "https://hatter.ink/".into(),
})
)?;
dt.send_message(&DingTalkMessage::new_action_card("action card 002", "action card text 002")
.add_action_card_btn(DingTalkMessageActionCardBtn{
title: "test signle btn title 01".into(),
action_url: "https://hatter.ink/".into(),
})
.add_action_card_btn(DingTalkMessageActionCardBtn{
title: "test signle btn title 02".into(),
action_url: "https://hatter.ink/".into(),
})
)?;
Ok(())
}