readme update

This commit is contained in:
AmokDev 2025-06-08 00:12:28 +03:00
parent 82daeb512c
commit 7eb57f59aa

123
README.md
View file

@ -1,60 +1,63 @@
# Rust Discord Activity # Localizations
_A lightweight Rust library to control Discord Rich Presence for Windows, Linux and MacOS_ [EN](https://git.amok.dev/AmokDev/rust-discord-rpc/src/branch/master/README_EN.md) | RU
[Author of the idea and 80% code](https://github.com/DylanCa/rust-discord-activity) # Rust Discord Activity
ростая Rust библиотека для управления Discord RPC для Windows, Linux и MacOS_
## Installation
```bash [Автор идеи](https://github.com/DylanCa/rust-discord-activity)
cargo add --git https://git.amok.dev/AmokDev/rust-discord-rpc
``` ## Установка
```bash
## How to use cargo add --git https://git.amok.dev/AmokDev/rust-discord-rpc
1. Instantiate a new DiscordClient ```
2. Create your Activity and set desired data using provided structs
3. Create a new Payload with your Activity ## Как использовать
4. Send your Payload through the DiscordClient 1. Создайте новый DiscordClient
2. Создайте объект Activity и задайте нужные данные, используя предоставленные структуры
## Example 3. Создайте новую полезную нагрузку с вашей активностью
```rust 4. Отправьте вашу полезную нагрузку через DiscordClient
let mut client = DiscordClient::new("<application_id>");
## Пример
let _ = client.connect(); ```rust
let mut client = DiscordClient::new("<application_id>");
let limg = Some(String::from("https://placehold.co/600x400/png"));
let simg = Some(String::from("https://placehold.co/200x100/png")); let _ = client.connect();
let asset = Asset::new(limg, None, simg, None);
let now_in_millis = SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_millis(); let limg = Some(String::from("https://placehold.co/600x400/png"));
let timestamp = Timestamp::new(Some(now_in_millis - 10000), None); let simg = Some(String::from("https://placehold.co/200x100/png"));
let asset = Asset::new(limg, None, simg, None);
let party = Party::new(None, Some((2, 4))); let now_in_millis = SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_millis();
let mut button_vec = vec![]; let timestamp = Timestamp::new(Some(now_in_millis - 10000), None);
button_vec.push(Button::new("First Button".into(), "https://google.com".into()));
button_vec.push(Button::new("Second Button".into(), "https://yahoo.com".into())); let party = Party::new(None, Some((2, 4)));
let mut button_vec = vec![];
let mut activity = Activity::new(); button_vec.push(Button::new("Первая кнопка".into(), "https://google.com".into()));
button_vec.push(Button::new("Вторая кнопка".into(), "https://yahoo.com".into()));
activity
.set_state(Some("This is State".into())) let mut activity = Activity::new();
.set_activity_type(Some(ActivityType::LISTENING))
.set_details(Some("This is Details".parse().unwrap())) activity
.set_timestamps(Some(timestamp)) .set_state(Some("Это состояние".into()))
.set_assets(Some(asset)) .set_activity_type(Some(ActivityType::LISTENING))
.set_party(Some(party)) .set_details(Some("Это детали".parse().unwrap()))
.set_instance(Some(true)) .set_timestamps(Some(timestamp))
.set_buttons(Some(button_vec)); .set_assets(Some(asset))
.set_party(Some(party))
let payload = Payload::new(EventName::Activity, EventData::Activity(activity)); .set_instance(Some(true))
.set_buttons(Some(button_vec));
let _ = client.send_payload(payload);
let payload = Payload::new(EventName::Activity, EventData::Activity(activity));
```
let _ = client.send_payload(payload);
This sets-up a new Activity for the current Discord user:
```
<img alt="Discord Rich Presence" src="https://imgur.com/gf9pOen.png" width="300"/>
Это устанавливает новую активность для текущего пользователя Discord:
# Thanks for support
## Testers <img alt="Discord Rich Presence" src="https://imgur.com/gf9pOen.png" width="300"/>
| Windows | MacOS | Linux |
|---------------|-------------|----------| # Спасибо за поддержку
| AmokDev (me) | hellkarm | doxbiner | ## Тестерам
| Windows | MacOS | Linux |
|---------------|-------------|----------|
| AmokDev (я) | hellkarm | doxbiner |