update
This commit is contained in:
parent
18fd94a6a7
commit
2bd85ae586
3 changed files with 109 additions and 101 deletions
|
@ -3,7 +3,7 @@ name = "discordrpc"
|
|||
description = "Fast Discord RPC Client written in Rust"
|
||||
license = "BSD-3-Clause"
|
||||
authors = ["MedzikUser <nivua1fn@duck.com>"]
|
||||
homepage = "https://github.com/MedzikUser/discord-rpc"
|
||||
homepage = "https://github.com/MedzikUser/discord-rpc#readme"
|
||||
repository = "https://github.com/MedzikUser/discord-rpc.git"
|
||||
keywords = ["discord", "discord-rpc", "discordrpc", "discord-rpc-client"]
|
||||
categories = ["command-line-utilities"]
|
||||
|
|
103
src/execute.rs
Normal file
103
src/execute.rs
Normal file
|
@ -0,0 +1,103 @@
|
|||
use colored::Colorize;
|
||||
use discord_rich_presence::{
|
||||
activity::{self, Activity},
|
||||
new_client, DiscordIpc,
|
||||
};
|
||||
use std::{
|
||||
time::{SystemTime, UNIX_EPOCH},
|
||||
vec,
|
||||
};
|
||||
|
||||
use crate::cli::Cli;
|
||||
|
||||
pub fn run(args: Cli) {
|
||||
let state = args.state;
|
||||
let details = args.details;
|
||||
let large_image = args.large_image;
|
||||
let large_text = args.large_text;
|
||||
let small_image = args.small_image;
|
||||
let small_text = args.small_text;
|
||||
let button_1_text = args.button_1_text;
|
||||
let button_1_url = args.button_1_url;
|
||||
let button_2_text = args.button_2_text;
|
||||
let button_2_url = args.button_2_url;
|
||||
let enable_timer = args.enable_time;
|
||||
|
||||
let mut client = new_client(&args.client_id).expect("failed to create client");
|
||||
|
||||
let activity = Activity::new();
|
||||
|
||||
client
|
||||
.connect()
|
||||
.expect("failed to connect to Discord, please try again or relaunch Discord app");
|
||||
|
||||
println!("{} {}", "details :".cyan(), details.yellow());
|
||||
|
||||
let mut activity: Activity = activity.details(&details);
|
||||
|
||||
if state != "none" {
|
||||
println!("{} {}", "state :".cyan(), state.yellow());
|
||||
|
||||
activity = activity.state(&state);
|
||||
}
|
||||
|
||||
let mut assets = activity::Assets::new();
|
||||
|
||||
if large_image != "none" {
|
||||
println!("{} {}", "large image :".cyan(), large_image.yellow());
|
||||
|
||||
assets = assets.large_image(&large_image);
|
||||
}
|
||||
|
||||
if large_text != "none" {
|
||||
println!("{} {}", "large image text :".cyan(), large_text.yellow());
|
||||
|
||||
assets = assets.large_text(&large_text);
|
||||
}
|
||||
|
||||
if small_image != "none" {
|
||||
println!("{} {}", "small image :".cyan(), small_image.yellow());
|
||||
|
||||
assets = assets.small_image(&small_image);
|
||||
}
|
||||
|
||||
if small_text != "none" {
|
||||
println!("{} {}", "small image text :".cyan(), small_text.yellow());
|
||||
|
||||
assets = assets.small_text(&small_text);
|
||||
}
|
||||
|
||||
activity = activity.assets(assets);
|
||||
|
||||
if button_1_text != "none" && button_1_url != "none" {
|
||||
println!("{} {}", "button 1 text :".cyan(), button_1_text.yellow());
|
||||
println!("{} {}", "button 1 url :".cyan(), button_1_url.yellow());
|
||||
|
||||
activity = activity.buttons(vec![activity::Button::new(&button_1_text, &button_1_url)]);
|
||||
}
|
||||
|
||||
if button_1_text != "none"
|
||||
&& button_1_url != "none"
|
||||
&& button_2_text != "none"
|
||||
&& button_2_url != "none"
|
||||
{
|
||||
println!("{} {}", "button 2 text :".cyan(), button_2_text.yellow());
|
||||
println!("{} {}", "button 2 url :".cyan(), button_2_url.yellow());
|
||||
|
||||
activity = activity.buttons(vec![
|
||||
activity::Button::new(&button_1_text, &button_1_url),
|
||||
activity::Button::new(&button_2_text, &button_2_url),
|
||||
]);
|
||||
}
|
||||
|
||||
if enable_timer {
|
||||
let time_unix = SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_secs() as i64;
|
||||
|
||||
activity = activity.timestamps(activity::Timestamps::new().start(time_unix))
|
||||
}
|
||||
|
||||
client.set_activity(activity).expect("client set activity");
|
||||
}
|
105
src/main.rs
105
src/main.rs
|
@ -1,19 +1,10 @@
|
|||
mod cli;
|
||||
mod execute;
|
||||
|
||||
use clap::{IntoApp, StructOpt};
|
||||
use clap_complete::generate;
|
||||
use colored::Colorize;
|
||||
use discord_rich_presence::{
|
||||
activity::{self, Activity},
|
||||
new_client, DiscordIpc,
|
||||
};
|
||||
use std::{
|
||||
io,
|
||||
process::exit,
|
||||
thread::sleep,
|
||||
time::{Duration, SystemTime, UNIX_EPOCH},
|
||||
vec,
|
||||
};
|
||||
use std::{io, process::exit, thread::sleep, time::Duration};
|
||||
|
||||
use crate::cli::Cli;
|
||||
|
||||
|
@ -28,6 +19,7 @@ fn main() {
|
|||
|
||||
let args = Cli::parse();
|
||||
|
||||
// * print_completions
|
||||
if let Some(shell) = args.print_completions {
|
||||
let mut clap_app = Cli::command();
|
||||
let app_name = clap_app.get_name().to_string();
|
||||
|
@ -36,95 +28,8 @@ fn main() {
|
|||
exit(0)
|
||||
}
|
||||
|
||||
let state = args.state;
|
||||
let details = args.details;
|
||||
let large_image = args.large_image;
|
||||
let large_text = args.large_text;
|
||||
let small_image = args.small_image;
|
||||
let small_text = args.small_text;
|
||||
let button_1_text = args.button_1_text;
|
||||
let button_1_url = args.button_1_url;
|
||||
let button_2_text = args.button_2_text;
|
||||
let button_2_url = args.button_2_url;
|
||||
let enable_timer = args.enable_time;
|
||||
|
||||
let mut client = new_client(&args.client_id).expect("failed to create client");
|
||||
|
||||
let activity = Activity::new();
|
||||
|
||||
client
|
||||
.connect()
|
||||
.expect("failed to connect to Discord, please try again or relaunch Discord app");
|
||||
|
||||
println!("{} {}", "details :".cyan(), details.yellow());
|
||||
|
||||
let mut activity: Activity = activity.details(&details);
|
||||
|
||||
if state != "none" {
|
||||
println!("{} {}", "state :".cyan(), state.yellow());
|
||||
|
||||
activity = activity.state(&state);
|
||||
}
|
||||
|
||||
let mut assets = activity::Assets::new();
|
||||
|
||||
if large_image != "none" {
|
||||
println!("{} {}", "large image :".cyan(), large_image.yellow());
|
||||
|
||||
assets = assets.large_image(&large_image);
|
||||
}
|
||||
|
||||
if large_text != "none" {
|
||||
println!("{} {}", "large image text :".cyan(), large_text.yellow());
|
||||
|
||||
assets = assets.large_text(&large_text);
|
||||
}
|
||||
|
||||
if small_image != "none" {
|
||||
println!("{} {}", "small image :".cyan(), small_image.yellow());
|
||||
|
||||
assets = assets.small_image(&small_image);
|
||||
}
|
||||
|
||||
if small_text != "none" {
|
||||
println!("{} {}", "small image text :".cyan(), small_text.yellow());
|
||||
|
||||
assets = assets.small_text(&small_text);
|
||||
}
|
||||
|
||||
activity = activity.assets(assets);
|
||||
|
||||
if button_1_text != "none" && button_1_url != "none" {
|
||||
println!("{} {}", "button 1 text :".cyan(), button_1_text.yellow());
|
||||
println!("{} {}", "button 1 url :".cyan(), button_1_url.yellow());
|
||||
|
||||
activity = activity.buttons(vec![activity::Button::new(&button_1_text, &button_1_url)]);
|
||||
}
|
||||
|
||||
if button_1_text != "none"
|
||||
&& button_1_url != "none"
|
||||
&& button_2_text != "none"
|
||||
&& button_2_url != "none"
|
||||
{
|
||||
println!("{} {}", "button 2 text :".cyan(), button_2_text.yellow());
|
||||
println!("{} {}", "button 2 url :".cyan(), button_2_url.yellow());
|
||||
|
||||
activity = activity.buttons(vec![
|
||||
activity::Button::new(&button_1_text, &button_1_url),
|
||||
activity::Button::new(&button_2_text, &button_2_url),
|
||||
]);
|
||||
}
|
||||
|
||||
if enable_timer {
|
||||
let time_unix = SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_secs() as i64;
|
||||
|
||||
activity = activity.timestamps(activity::Timestamps::new().start(time_unix))
|
||||
}
|
||||
|
||||
client.set_activity(activity).expect("client set activity");
|
||||
// * start discord rpc
|
||||
execute::run(args);
|
||||
|
||||
println!(
|
||||
"{} {}",
|
||||
|
|
Loading…
Reference in a new issue