Update dependency to fix build
ci/woodpecker/tag/container Pipeline failed Details

main
trivernis 5 months ago
parent e6726e41c8
commit 2d869f3ea8
Signed by: Trivernis
GPG Key ID: DFFFCC2C7A02DB45

@ -10,6 +10,13 @@ steps:
test: test:
image: rust:alpine image: rust:alpine
commands: commands:
- apk add --no-cache --force-overwrite \
build-base \
openssl-dev \
libopusenc-dev \
libpq-dev \
curl \
bash
- rustup default stable - rustup default stable
- rustup component add clippy --toolchain stable-x86_64-unknown-linux-musl - rustup component add clippy --toolchain stable-x86_64-unknown-linux-musl
- cargo clippy - cargo clippy
@ -20,6 +27,13 @@ steps:
build: build:
image: rust:alpine image: rust:alpine
commands: commands:
- apk add --no-cache --force-overwrite \
build-base \
openssl-dev \
libopusenc-dev \
libpq-dev \
curl \
bash
- cargo build - cargo build
when: when:
- event: [pull_request] - event: [pull_request]

2263
Cargo.lock generated

File diff suppressed because it is too large Load Diff

@ -3,7 +3,7 @@ members=["bot-coreutils", "bot-database", "bot-database/migration", "."]
[package] [package]
name = "tobi-rs" name = "tobi-rs"
version = "0.11.1" version = "0.11.2"
authors = ["trivernis <trivernis@protonmail.com>"] authors = ["trivernis <trivernis@protonmail.com>"]
edition = "2018" edition = "2018"
@ -32,7 +32,7 @@ chrono = "0.4.22"
sysinfo = "0.26.4" sysinfo = "0.26.4"
reqwest = "0.11.12" reqwest = "0.11.12"
chrono-tz = "0.6.3" chrono-tz = "0.6.3"
sauce-api = "0.9.3" sauce-api = "1.0.0"
rustc_version_runtime = "0.2.1" rustc_version_runtime = "0.2.1"
trigram = "0.4.4" trigram = "0.4.4"
typemap_rev = "0.2.0" typemap_rev = "0.2.0"

@ -22,7 +22,7 @@ COPY Cargo.toml Cargo.lock ./
COPY src ./src COPY src ./src
COPY bot-coreutils ./bot-coreutils COPY bot-coreutils ./bot-coreutils
COPY bot-database ./bot-database COPY bot-database ./bot-database
RUN cargo build --release --verbose RUN cargo build --release
RUN mkdir /tmp/tobi RUN mkdir /tmp/tobi
RUN cp target/release/tobi-rs /tmp/tobi/ RUN cp target/release/tobi-rs /tmp/tobi/
@ -37,9 +37,9 @@ RUN apk add --no-cache --force-overwrite \
qalc \ qalc \
ffmpeg \ ffmpeg \
bash bash
RUN pip3 install youtube-dl RUN pip3 install yt-dlp --break-system-packages
RUN rm -rf /var/lib/{cache,log}/ /var/cache RUN rm -rf /var/lib/{cache,log}/ /var/cache
FROM runtime-base FROM runtime-base
COPY --from=builder /tmp/tobi/tobi-rs . COPY --from=builder /tmp/tobi/tobi-rs .
ENTRYPOINT ["/tobi-rs"] ENTRYPOINT ["/tobi-rs"]

@ -30,7 +30,7 @@ pub async fn get_client() -> BotResult<Client> {
.event_handler(Handler) .event_handler(Handler)
.framework(get_framework().await) .framework(get_framework().await)
.register_songbird() .register_songbird()
.type_map_insert::<Store>(StoreData::new()) .type_map_insert::<Store>(StoreData::create().await)
.type_map_insert::<DatabaseContainer>(database) .type_map_insert::<DatabaseContainer>(database)
.type_map_insert::<MusicPlayers>(HashMap::new()) .type_map_insert::<MusicPlayers>(HashMap::new())
.await?; .await?;

@ -1,4 +1,5 @@
use futures::future::BoxFuture; use futures::future::BoxFuture;
use futures::FutureExt;
use serenity::client::Context; use serenity::client::Context;
use serenity::framework::standard::macros::command; use serenity::framework::standard::macros::command;
use serenity::framework::standard::{Args, CommandResult}; use serenity::framework::standard::{Args, CommandResult};

@ -1,4 +1,4 @@
use sauce_api::Sauce; use sauce_api::source::Source;
use serenity::client::Context; use serenity::client::Context;
use serenity::framework::standard::macros::command; use serenity::framework::standard::macros::command;
use serenity::framework::standard::CommandResult; use serenity::framework::standard::CommandResult;
@ -59,15 +59,20 @@ async fn sauce(ctx: &Context, msg: &Message) -> CommandResult {
); );
let data = ctx.data.read().await; let data = ctx.data.read().await;
let store_data = data.get::<Store>().unwrap(); let store_data = data.get::<Store>().unwrap();
let sources = store_data let mut outputs = Vec::new();
.sauce_nao
.check_sauces(&attachment_urls[..])
.await?;
tracing::trace!("Sources are {:?}", sources);
tracing::debug!("Creating menu..."); for attachment in attachment_urls {
let output = store_data
.sauce_nao
.check(&attachment)
.await
.map_err(|_| "failed to retrieve source")?;
tracing::trace!("Output is {:?}", output);
outputs.push(output)
}
show_sauce_menu(ctx, msg, sources).await?; tracing::debug!("Creating menu...");
show_sauce_menu(ctx, msg, outputs).await?;
tracing::debug!("Menu created"); tracing::debug!("Menu created");
Ok(()) Ok(())

@ -1,6 +1,5 @@
use std::cmp::Ordering; use std::cmp::Ordering;
use sauce_api::{SauceItem, SauceResult};
use serenity::builder::CreateMessage; use serenity::builder::CreateMessage;
use serenity::{model::channel::Message, prelude::*}; use serenity::{model::channel::Message, prelude::*};
@ -24,7 +23,7 @@ static SAUCE_MESSAGES: &[&str] = &[
pub async fn show_sauce_menu( pub async fn show_sauce_menu(
ctx: &Context, ctx: &Context,
msg: &Message, msg: &Message,
sources: Vec<SauceResult>, sources: Vec<sauce_api::source::Output>,
) -> BotResult<()> { ) -> BotResult<()> {
let pages: Vec<Page> = sources.into_iter().map(create_sauce_page).collect(); let pages: Vec<Page> = sources.into_iter().map(create_sauce_page).collect();
@ -47,7 +46,7 @@ pub async fn show_sauce_menu(
} }
/// Creates a single sauce page /// Creates a single sauce page
fn create_sauce_page<'a>(mut result: SauceResult) -> Page<'a> { fn create_sauce_page<'a>(mut result: sauce_api::source::Output) -> Page<'a> {
let mut message = CreateMessage::default(); let mut message = CreateMessage::default();
let mut description_lines = Vec::new(); let mut description_lines = Vec::new();
let original = result.original_url; let original = result.original_url;
@ -65,7 +64,7 @@ fn create_sauce_page<'a>(mut result: SauceResult) -> Page<'a> {
}); });
// display with descending similarity // display with descending similarity
result.items.reverse(); result.items.reverse();
let items: Vec<(usize, SauceItem)> = result let items: Vec<(usize, sauce_api::source::Item)> = result
.items .items
.into_iter() .into_iter()
.filter(|i| i.similarity >= MIN_SIMILARITY) .filter(|i| i.similarity >= MIN_SIMILARITY)

@ -3,7 +3,8 @@ use std::env;
use std::sync::Arc; use std::sync::Arc;
use bot_database::Database; use bot_database::Database;
use sauce_api::prelude::SauceNao; use sauce_api::source::saucenao::SauceNao;
use sauce_api::source::Source;
use serenity::client::Context; use serenity::client::Context;
use serenity::prelude::TypeMapKey; use serenity::prelude::TypeMapKey;
use tokio::sync::Mutex; use tokio::sync::Mutex;
@ -16,15 +17,17 @@ pub struct Store;
pub struct StoreData { pub struct StoreData {
pub minecraft_data_api: minecraft_data_rs::api::Api, pub minecraft_data_api: minecraft_data_rs::api::Api,
pub spotify_api: SpotifyApi, pub spotify_api: SpotifyApi,
pub sauce_nao: SauceNao<'static>, pub sauce_nao: SauceNao,
} }
impl StoreData { impl StoreData {
pub fn new() -> StoreData { pub async fn create() -> StoreData {
let mut sauce_nao = SauceNao::new(); let sauce_nao = SauceNao::create(
sauce_nao.set_api_key(
env::var("SAUCENAO_API_KEY").expect("No SAUCENAO_API_KEY key in environment."), env::var("SAUCENAO_API_KEY").expect("No SAUCENAO_API_KEY key in environment."),
); )
.await
.unwrap();
Self { Self {
minecraft_data_api: minecraft_data_rs::api::Api::latest().unwrap(), minecraft_data_api: minecraft_data_rs::api::Api::latest().unwrap(),
spotify_api: SpotifyApi::new(), spotify_api: SpotifyApi::new(),

Loading…
Cancel
Save