44 lines
2.0 KiB
Org Mode
44 lines
2.0 KiB
Org Mode
#+title: PluralSync
|
|
#+author: Jvnko @ lavenderfield
|
|
|
|
PluralSync is a small CLI application written in rust to syncronize and centralize the control over the front on SimplyPlural and PluralKit. It's my first project in rust, so the code is +probably+ a mess and I'm most likely not making use of some rust features that would benefit the project.
|
|
|
|
Suggestions on how to improve the code are very welcome. After all, the objective with this project was learning more about the language.
|
|
|
|
* Usage
|
|
** Configuration
|
|
On the first run, if it does not exist, PluralSync will create a configuration directory and populate with a json file with the following structure:
|
|
|
|
#+begin_src js
|
|
{
|
|
"pk_key": "// Pluralkit token",
|
|
"sp_key": "// Simplplural token"
|
|
}
|
|
#+end_src
|
|
|
|
Just fill it with PluralKit and SimplyPlural tokens associated to your account.
|
|
|
|
** Commands
|
|
*** Sync
|
|
Once the configuration is ready, you can start by calling the =sync= command, which will get the list of members of the system and place their data in a =system.json= file inside the configuration folder. Running commands like =set= or =add= without a present =system.json= will automatically fetch the data for you.
|
|
*Remember to sync whenever you change the information of the system! i.e. adding a new member, rename...*
|
|
|
|
*** Set
|
|
Takes multiple arguments. Sets the current front to the selected list of members.
|
|
|
|
*** Add
|
|
Takes multiple arguments. Adds the selected members to an already existing front.
|
|
|
|
*** Get
|
|
Displays the current front. The result is displayed in console but also stored in a plain text file named =.front= in the configuration directory, for use with other applications (Polybar, OBS...).
|
|
|
|
*** Memberlist
|
|
Writes the known list of members based on the =system.json= file.
|
|
|
|
* Future
|
|
Given the nature of the project as a learning exercise, there are currently a set of features and improvements I'd like to add eventually.
|
|
- [ ] Proper error handling (What I have currently is simply a mess)
|
|
- [ ] Rofi and zenity support
|
|
- [ ] Proper way to handle front conflicts between PluralKit and SimplyPlural
|