11 Commits

Author SHA1 Message Date
6d34fde8ca Merge pull request #43 from flibusta-apps/dependabot/github_actions/github/codeql-action-4
Some checks failed
Build docker image / Build-Docker-Image (push) Has been cancelled
rust-clippy analyze / Run rust-clippy analyzing (push) Has been cancelled
Bump github/codeql-action from 3 to 4
2025-10-14 18:04:28 +02:00
ea8290f74c Clean up code formatting and error handling
The commit includes better handling of API errors, cleaner match
patterns, and consistent whitespace/formatting in file_utils.rs.
2025-10-14 17:52:23 +02:00
dependabot[bot]
8336c8598e Bump github/codeql-action from 3 to 4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-08 09:04:39 +00:00
6e9ef95aaf Merge pull request #41 from flibusta-apps/dependabot/github_actions/actions/checkout-5
Some checks failed
Build docker image / Build-Docker-Image (push) Has been cancelled
rust-clippy analyze / Run rust-clippy analyzing (push) Has been cancelled
Bump actions/checkout from 4 to 5
2025-09-10 17:07:49 +02:00
07683cfc0b Update deps
Some checks failed
Build docker image / Build-Docker-Image (push) Has been cancelled
rust-clippy analyze / Run rust-clippy analyzing (push) Has been cancelled
2025-08-31 14:06:32 +02:00
dependabot[bot]
d2519bb9b7 Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 15:23:39 +00:00
24ebd4fe78 Create rust-clippy.yml
Some checks failed
rust-clippy analyze / Run rust-clippy analyzing (push) Has been cancelled
Build docker image / Build-Docker-Image (push) Has been cancelled
2025-08-17 23:39:17 +02:00
609ab9dcbc Merge pull request #40 from flibusta-apps/dependabot/cargo/slab-0.4.11
Bump slab from 0.4.10 to 0.4.11
2025-08-17 23:19:24 +02:00
dependabot[bot]
f0da4ef19c Bump slab from 0.4.10 to 0.4.11
Bumps [slab](https://github.com/tokio-rs/slab) from 0.4.10 to 0.4.11.
- [Release notes](https://github.com/tokio-rs/slab/releases)
- [Changelog](https://github.com/tokio-rs/slab/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/slab/compare/v0.4.10...v0.4.11)

---
updated-dependencies:
- dependency-name: slab
  dependency-version: 0.4.11
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-17 21:16:18 +00:00
ad0fc8faf7 Merge pull request #39 from flibusta-apps/dependabot/github_actions/actions/checkout-5
Bump actions/checkout from 4 to 5
2025-08-17 23:15:21 +02:00
dependabot[bot]
3e227c1c17 Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 16:10:20 +00:00
5 changed files with 331 additions and 269 deletions

View File

@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v3

55
.github/workflows/rust-clippy.yml vendored Normal file
View File

@@ -0,0 +1,55 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# rust-clippy is a tool that runs a bunch of lints to catch common
# mistakes in your Rust code and help improve your Rust code.
# More details at https://github.com/rust-lang/rust-clippy
# and https://rust-lang.github.io/rust-clippy/
name: rust-clippy analyze
on:
push:
branches: [ "main" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "main" ]
schedule:
- cron: '22 1 * * 1'
jobs:
rust-clippy-analyze:
name: Run rust-clippy analyzing
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Install Rust toolchain
uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af #@v1
with:
profile: minimal
toolchain: stable
components: clippy
override: true
- name: Install required cargo
run: cargo install clippy-sarif sarif-fmt
- name: Run rust-clippy
run:
cargo clippy
--all-features
--message-format=json | clippy-sarif | tee rust-clippy-results.sarif | sarif-fmt
continue-on-error: true
- name: Upload analysis results to GitHub
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: rust-clippy-results.sarif
wait-for-processing: true

514
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -28,18 +28,18 @@ axum_typed_multipart = "0.16.3"
tracing = "0.1.41" tracing = "0.1.41"
tracing-subscriber = { version = "0.3.19", features = ["env-filter"]} tracing-subscriber = { version = "0.3.19", features = ["env-filter"]}
tower-http = { version = "0.6.2", features = ["trace"] } tower-http = { version = "0.6.2", features = ["trace"] }
sentry-tracing = "0.41.0" sentry-tracing = "0.42.0"
tokio = { version = "1.44.2", features = [ "full" ] } tokio = { version = "1.44.2", features = [ "full" ] }
tokio-util = { version = "0.7.14", features = [ "full" ] } tokio-util = { version = "0.7.14", features = [ "full" ] }
axum-prometheus = "0.8.0" axum-prometheus = "0.9.0"
futures = "0.3.31" futures = "0.3.31"
once_cell = "1.21.1" once_cell = "1.21.1"
teloxide = "0.16.0" teloxide = "0.17.0"
sentry = "0.41.0" sentry = "0.42.0"
dotenvy = "0.15.7" dotenvy = "0.15.7"

View File

@@ -1,6 +1,7 @@
use std::error::Error; use std::error::Error;
use axum::body::Bytes; use axum::body::Bytes;
use moka::future::Cache;
use once_cell::sync::Lazy; use once_cell::sync::Lazy;
use serde::Serialize; use serde::Serialize;
use teloxide::{ use teloxide::{
@@ -9,7 +10,6 @@ use teloxide::{
}; };
use tokio::fs::File; use tokio::fs::File;
use tracing::log; use tracing::log;
use moka::future::Cache;
use super::bot::ROUND_ROBIN_BOT; use super::bot::ROUND_ROBIN_BOT;
use crate::config::CONFIG; use crate::config::CONFIG;
@@ -44,7 +44,6 @@ pub static TEMP_FILES_CACHE: Lazy<Cache<i32, MessageId>> = Lazy::new(|| {
.build() .build()
}); });
pub async fn upload_file( pub async fn upload_file(
file: Bytes, file: Bytes,
filename: String, filename: String,
@@ -70,7 +69,6 @@ pub async fn upload_file(
} }
} }
pub async fn download_file(chat_id: i64, message_id: i32) -> Result<Option<File>, Box<dyn Error>> { pub async fn download_file(chat_id: i64, message_id: i32) -> Result<Option<File>, Box<dyn Error>> {
let bot = ROUND_ROBIN_BOT.get_bot(); let bot = ROUND_ROBIN_BOT.get_bot();
@@ -84,17 +82,13 @@ pub async fn download_file(chat_id: i64, message_id: i32) -> Result<Option<File>
{ {
Ok(v) => v, Ok(v) => v,
Err(err) => { Err(err) => {
if let teloxide::RequestError::Api(ref err) = err { if let teloxide::RequestError::Api(teloxide::ApiError::MessageToForwardNotFound) = err {
if let teloxide::ApiError::MessageToForwardNotFound = err {
return Ok(None); return Ok(None);
} }
}
if let teloxide::RequestError::Api(ref err) = err { if let teloxide::RequestError::Api(teloxide::ApiError::MessageIdInvalid) = err {
if let teloxide::ApiError::MessageIdInvalid = err {
return Ok(None); return Ok(None);
} }
}
log::error!("Error: {}", err); log::error!("Error: {}", err);
return Err(Box::new(err)); return Err(Box::new(err));
@@ -103,7 +97,9 @@ pub async fn download_file(chat_id: i64, message_id: i32) -> Result<Option<File>
let file_id = forwarded_message.document().unwrap().file.id.clone(); let file_id = forwarded_message.document().unwrap().file.id.clone();
TEMP_FILES_CACHE.insert(message_id, forwarded_message.id).await; TEMP_FILES_CACHE
.insert(message_id, forwarded_message.id)
.await;
let path = match bot.get_file(file_id.clone()).await { let path = match bot.get_file(file_id.clone()).await {
Ok(v) => v.path, Ok(v) => v.path,
@@ -116,7 +112,6 @@ pub async fn download_file(chat_id: i64, message_id: i32) -> Result<Option<File>
Ok(Some(File::open(path).await?)) Ok(Some(File::open(path).await?))
} }
pub async fn clean_files() -> Result<(), Box<dyn Error>> { pub async fn clean_files() -> Result<(), Box<dyn Error>> {
let bots_folder = "/var/lib/telegram-bot-api/"; let bots_folder = "/var/lib/telegram-bot-api/";
let documents_folder_name = "documents"; let documents_folder_name = "documents";