|
|
|
@ -283,6 +283,8 @@ impl<'a> ProcessMention<'a> { |
|
|
|
|
|
|
|
|
|
async fn send_reply_multipart(&self, mention : String, msg : String) -> Result<(), GroupError> { |
|
|
|
|
let parts = smart_split(&msg, Some(mention), self.config.get_character_limit()); |
|
|
|
|
|
|
|
|
|
let mut parent = self.status.id.clone(); |
|
|
|
|
for p in parts { |
|
|
|
|
if let Ok(post) = StatusBuilder::new() |
|
|
|
|
.status(p) |
|
|
|
@ -291,10 +293,12 @@ impl<'a> ProcessMention<'a> { |
|
|
|
|
} else { |
|
|
|
|
"text/plain" |
|
|
|
|
}) |
|
|
|
|
.in_reply_to(&parent) |
|
|
|
|
.visibility(Visibility::Direct) |
|
|
|
|
.build() |
|
|
|
|
{ |
|
|
|
|
self.client.new_status(post).await?; |
|
|
|
|
let status = self.client.new_status(post).await?; |
|
|
|
|
parent = status.id; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Sleep a bit to avoid throttling
|
|
|
|
@ -307,15 +311,25 @@ impl<'a> ProcessMention<'a> { |
|
|
|
|
async fn send_announcement_multipart(&self, msg : &str) -> Result<(), GroupError> { |
|
|
|
|
let parts = smart_split(msg, None, self.config.get_character_limit()); |
|
|
|
|
|
|
|
|
|
let mut parent = None; |
|
|
|
|
for p in parts { |
|
|
|
|
let post = StatusBuilder::new() |
|
|
|
|
let mut builder = StatusBuilder::new(); |
|
|
|
|
|
|
|
|
|
builder |
|
|
|
|
.status(p) |
|
|
|
|
.content_type("text/markdown") |
|
|
|
|
.visibility(Visibility::Public) |
|
|
|
|
.visibility(Visibility::Public); |
|
|
|
|
|
|
|
|
|
if let Some(p) = parent.as_ref() { |
|
|
|
|
builder.in_reply_to(p); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
let post = builder |
|
|
|
|
.build() |
|
|
|
|
.expect("error build status"); |
|
|
|
|
|
|
|
|
|
self.client.new_status(post).await?; |
|
|
|
|
let status = self.client.new_status(post).await?; |
|
|
|
|
parent = Some(status.id); |
|
|
|
|
|
|
|
|
|
// Sleep a bit to avoid throttling
|
|
|
|
|
tokio::time::sleep(Duration::from_secs(1)).await; |
|
|
|
|