Skip to content

Commit

Permalink
Only show web preview when tweet has media
Browse files Browse the repository at this point in the history
  • Loading branch information
dracarys18 committed Apr 9, 2022
1 parent d3453b0 commit 9908085
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
12 changes: 6 additions & 6 deletions src/stream/stream_impl.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::config::Config;
use crate::error::TweetResult;
use crate::utils::{get_tweet_url, get_url_entity};
use crate::utils::{get_media_urls, get_tweet_url, get_url_entity, tweet_has_media};
use egg_mode::stream::{filter, StreamMessage};
use futures::TryStreamExt;
use teloxide::prelude2::*;
Expand All @@ -12,24 +12,24 @@ pub async fn stream_tweets(config: &Config, to_follow: Vec<u64>) -> TweetResult<
let bot = config.bot();
let stream = filter().follow(&to_follow).start(token);
stream
.try_for_each(|t| async move {
.try_for_each_concurrent(None, |t| async move {
if let StreamMessage::Tweet(tweet) = t {
let tweeter = tweet.user.as_ref().expect("Invalid User");
let name = &tweeter.name;
let _user_id = tweeter.id;
let tweet_url = get_tweet_url(&tweet).await.unwrap_or_default();
let text = escape(&tweet.text);
let urls = get_url_entity(&tweet).await.unwrap_or_default();
let message = format!(
"{}\n{}\nVia |<a href='{}'>{}</a>|",
text, urls, tweet_url, name
);
let media = get_media_urls(&tweet).await;
let message = format!("{}\nVia |<a href='{}'>{}</a>|", text, tweet_url, name);
//Don't send retweeted tweets and only send if the reply is from the current user (in case of threads)
if matches!(tweet.retweeted, Some(false))
|| matches!(tweet.in_reply_to_user_id, Some(_user_id))
{
let preview = !tweet_has_media(&tweet).await;
bot.send_message(config.chat_id, message)
.parse_mode(ParseMode::Html)
.disable_web_page_preview(preview)
.await
.expect("Failed to send a message");
}
Expand Down
12 changes: 6 additions & 6 deletions src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,25 +32,25 @@ pub async fn get_url_entity(tweet: &Tweet) -> Option<String> {
}

pub async fn get_media_urls(tweet: &Tweet) -> Option<Vec<String>> {
if let Some(ext_entity) = tweet.extended_entities.as_ref() {
return Some(
return if let Some(ext_entity) = tweet.extended_entities.as_ref() {
Some(
ext_entity
.media
.iter()
.map(|e| e.media_url_https.clone())
.collect(),
);
)
} else {
return Some(
Some(
tweet
.entities
.media
.as_ref()?
.iter()
.map(|m| m.media_url_https.clone())
.collect(),
);
}
)
};
}
pub async fn tweet_has_media(tweet: &Tweet) -> bool {
tweet.extended_entities.is_some() || tweet.entities.media.is_some()
Expand Down

0 comments on commit 9908085

Please sign in to comment.