1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
use clap::Parser;
use diesel_async::AsyncPgConnection;
use thulani::db;
#[derive(clap::Parser)]
struct Opts {
#[arg(short, long)]
user_id: u64,
#[arg(short, long)]
deleter: u64,
#[arg(long)]
demo_meme: bool,
}
async fn create_demo_meme(conn: &mut AsyncPgConnection, owner: u64) -> anyhow::Result<()> {
let meta = db::Metadata::create(conn, owner).await?;
let meme = db::NewMeme {
title: "my new meme".to_owned(),
content: Some("abc".to_owned()),
metadata_id: meta.id,
audio_id: None,
image_id: None,
};
let meme = meme.save(conn, owner).await?;
log::debug!("created demo meme: {meme:#?}");
Ok(())
}
#[tokio::main]
pub async fn main() -> anyhow::Result<()> {
thulani::log_setup::init(false).expect("initializing logging");
dotenv::dotenv()?;
let opts = Opts::parse();
let mut conn = db::connection().await?;
if opts.demo_meme {
create_demo_meme(&mut conn, opts.user_id).await?;
}
let memes_deleted = db::del_memes_by_userid(&mut conn, opts.user_id, opts.deleter).await?;
log::info!("deleted memes: {memes_deleted:?}");
Ok(())
}
|