Skip to content

Commit 740b7b2

Browse files
Merge pull request #7 from OpenTabletDriver/bugfix/stop-typing-error
Only start typing when actively sending message
2 parents fa01245 + 9a7facf commit 740b7b2

2 files changed

Lines changed: 15 additions & 9 deletions

File tree

src/events/issue.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,20 @@ const RESOLVED_COLOUR: Colour = Colour(0x8957e5);
1414
const CLOSED_COLOUR: Colour = Colour(0xda3633);
1515

1616
pub async fn message(ctx: &Context, message: &Message) {
17-
if let Some(embeds) = issue_embeds(ctx, message).await {
17+
if let Some(embeds) = issue_embeds(message).await {
18+
let typing = message.channel_id.start_typing(&ctx.http)
19+
.expect("Failed to start typing");
20+
1821
message.channel_id.send_message(&ctx.http, |f| f
1922
.reference_message(message)
2023
.set_embeds(embeds)
2124
).await.expect("Failed to reply with github embed");
25+
26+
typing.stop().expect("Failed to stop typing");
2227
}
2328
}
2429

25-
async fn issue_embeds(ctx: &Context, message: &Message) -> Option<Vec<CreateEmbed>> {
30+
async fn issue_embeds(message: &Message) -> Option<Vec<CreateEmbed>> {
2631
let mut embeds: Vec<CreateEmbed> = vec![];
2732
let client = octocrab::instance();
2833
let ratelimit = client.ratelimit();
@@ -34,9 +39,6 @@ async fn issue_embeds(ctx: &Context, message: &Message) -> Option<Vec<CreateEmbe
3439

3540
for capture in regex.captures_iter(&message.content) {
3641
if let Some(m) = capture.get(1) {
37-
let typing = message.channel_id.start_typing(&ctx.http)
38-
.expect("Failed to start typing");
39-
4042
let issue_num = m.as_str().parse::<u64>()
4143
.expect("Match is not a number");
4244

@@ -50,8 +52,6 @@ async fn issue_embeds(ctx: &Context, message: &Message) -> Option<Vec<CreateEmbe
5052
embeds.push(issue.embed());
5153
}
5254
}
53-
54-
typing.stop().expect("Failed to stop typing");
5555
}
5656
}
5757

src/structures/state.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
use serde_json::{from_reader, to_writer_pretty};
22
use serde::{Deserialize, Serialize};
3-
use std::{path::Path, fs::{File, OpenOptions}};
4-
use super::{Snippet};
3+
use std::fs::{self, File, OpenOptions };
4+
use std::path::Path;
5+
use super::Snippet;
56

67
#[derive(Deserialize, Serialize)]
78
pub struct State {
@@ -30,6 +31,11 @@ impl State {
3031

3132
pub fn write(&self, file_path: &str) {
3233
let path = Path::new(file_path);
34+
35+
if path.exists() {
36+
fs::remove_file(path).expect("Failed to delete old file.");
37+
}
38+
3339
let result = OpenOptions::new()
3440
.read(true)
3541
.write(true)

0 commit comments

Comments
 (0)