7 Commits

Author SHA1 Message Date
VC
11b629203b Merge branch 'bump_versions' into 'master'
Bump versions of all dependencies

See merge request veretcle/scootaloo!15
2022-04-22 08:31:36 +00:00
VC
16792e515a refactor(ci): refactor .gitlab-ci to add tests 2022-04-22 09:41:53 +02:00
VC
d228ceaaf6 refactor(dependencies): bump version of all dependencies 2022-04-22 09:41:48 +02:00
VC
bd7d4dbbb5 Merge branch 'fix/unused_struct' into 'master'
fix: remove unused struct

See merge request veretcle/scootaloo!13
2022-04-12 11:44:04 +00:00
VC
ff03b32f9d fix: remove unused struct 2022-04-12 12:55:40 +02:00
VC
533a40f2c2 Merge branch 'noasync' into 'master'
getting async in a reasonnable way

See merge request veretcle/scootaloo!12
2021-04-25 05:32:09 +00:00
VC
c301649d49 last correction 2022-04-12 12:03:49 +02:00
4 changed files with 2923 additions and 32 deletions

View File

@@ -1,13 +1,15 @@
---
stages:
- build
- build
rust-latest:
stage: build
artifacts:
paths:
- target/release/scootaloo
image: rust:latest
script:
- cargo build --release --verbose
- strip target/release/${CI_PROJECT_NAME}
stage: build
artifacts:
paths:
- target/release/scootaloo
image: rust:latest
script:
- cargo test
- cargo build --release --verbose
- strip target/release/${CI_PROJECT_NAME}

2898
Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,21 +1,21 @@
[package]
name = "scootaloo"
version = "0.4.0"
version = "0.4.2"
authors = ["VC <veretcle+framagit@mateu.be>"]
edition = "2018"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
serde = { version = "1.0", features = ["derive"] }
toml = "^0.5"
clap = "^2.33"
clap = "^2.34"
futures = "^0.3"
egg-mode = { git = "https://github.com/egg-mode-rs/egg-mode", rev = "6b81073eba9c3b123ca0e80bdb5ef61d1758f131" }
egg-mode = "^0.16"
tokio = { version = "1", features = ["full"]}
elefren = "^0.20"
elefren = "^0.22"
htmlescape = "^0.3"
reqwest = "^0.11"
log = "^0.4"
simple_logger = "^1.11"
simple_logger = "^2.1"

View File

@@ -207,15 +207,6 @@ async fn cache_media(u: &str, t: &str) -> Result<String, Box<dyn Error>> {
Ok(dest_filepath)
}
/**********
* This is the struct that holds the Mastodon Media ID and the Twitter Media URL at the same Time
**********/
#[derive(Debug)]
struct ScootalooSpawnResponse {
mastodon_media_id: String,
twitter_media_url: String,
}
/**********
* local error handler
**********/
@@ -334,7 +325,7 @@ pub async fn run(config: Config) {
let token = get_oauth2_token(&config);
// get Mastodon instance
let mastodon = Arc::new(Mutex::new(get_mastodon_token(&config.mastodon)));
let mastodon = get_mastodon_token(&config.mastodon);
// get user timeline feed (Vec<tweet>)
let mut feed = get_user_timeline(&config, token, last_tweet_id)
@@ -377,23 +368,23 @@ pub async fn run(config: Config) {
// reupload the attachments if any
if let Some(m) = &tweet.extended_entities {
for media in &m.media {
let local_tweet_media_path = match get_tweet_media(&media, &config.scootaloo.cache_path) {
let local_tweet_media_path = match get_tweet_media(&media, &config.scootaloo.cache_path).await {
Ok(m) => m,
Err(e) => {
println!("Cannot get tweet media for {}: {}", &media.url, e);
error!("Cannot get tweet media for {}: {}", &media.url, e);
continue;
},
};
let mastodon_media_ids = match mastodon.media(Cow::from(String::from(&local_tweet_media_path))) {
Ok(m) => {
remove_file(&local_tweet_media_path).unwrap_or_else(|e|
println!("Attachment for {} has been upload, but Im unable to remove the existing file: {}", &local_tweet_media_path, e)
remove_file(&local_tweet_media_path).await.unwrap_or_else(|e|
warn!("Attachment for {} has been uploaded, but Im unable to remove the existing file: {}", &local_tweet_media_path, e)
);
m.id
},
Err(e) => {
println!("Cannot attach media {} to Mastodon Instance: {}", &local_tweet_media_path, e);
error!("Attachment {} cannot be uploaded to Mastodon Instance: {}", &local_tweet_media_path, e);
continue;
}
};
@@ -415,7 +406,7 @@ pub async fn run(config: Config) {
// publish status
// again unwrap is safe here as we are in the main thread
mastodon.lock().unwrap().new_status(status).unwrap();
mastodon.new_status(status).unwrap();
// this will panic if it cannot publish the status, which is a good thing, it allows the
// last_tweet gathered not to be written