Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 36 additions & 50 deletions actions/ChangeTextChannel.py
Original file line number Diff line number Diff line change
@@ -1,60 +1,46 @@
from gi.repository import Gtk, Adw

from src.backend.PluginManager.ActionBase import ActionBase
from ..discordrpc.commands import VOICE_CHANNEL_SELECT
from enum import StrEnum

from loguru import logger as log

from .DiscordCore import DiscordCore
from src.backend.PluginManager.EventAssigner import EventAssigner
from src.backend.PluginManager.InputBases import Input

from GtkHelper.GenerativeUI.EntryRow import EntryRow

class ChangeTextChannel(ActionBase):

class ChangeTextChannel(DiscordCore):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.channel_id: str = None
self.has_configuration = True

def on_ready(self):
self.load_config()
self.plugin_base.add_callback(
VOICE_CHANNEL_SELECT, self.update_display)
self.plugin_base.backend.register_callback(
VOICE_CHANNEL_SELECT, self.update_display)

def update_display(self, value: dict):
if not self.plugin_base.backend:
self.show_error()
return
else:
self.hide_error()

def on_tick(self):
self.update_display({})
if self.channel_id:
self.set_label(self.channel_id)
else:
self.set_label(self.plugin_base.lm.get(
"actions.changetextchannel.update_channel"))

def load_config(self):
settings = self.get_settings()
self.channel_id = settings.get('channel_id')
def create_generative_ui(self):
self._channel_row = EntryRow(
action_core=self,
var_name="change_text_channel.text",
default_value="",
title="change-channel-text",
auto_add=False,
complex_var_name=True,
)

def get_config_rows(self):
super_rows = super().get_config_rows()

self.channel_id_row = Adw.EntryRow(title=self.plugin_base.lm.get(
"actions.changetextchannel.channel_id"), text=self.channel_id)
self.channel_id_row.connect("notify::text", self.on_change_channel_id)

super_rows.append(self.channel_id_row)
return super_rows

def on_change_channel_id(self, entry, _):
settings = self.get_settings()
settings["channel_id"] = entry.get_text()
self.set_settings(settings)

def on_key_down(self):
settings = self.get_settings()
channel_id = settings.get('channel_id')
if not self.plugin_base.backend.change_text_channel(channel_id):
self.show_error(5)
return [self._channel_row._widget]

def create_event_assigners(self):
self.event_manager.add_event_assigner(
EventAssigner(
id="change-channel",
ui_label="change-channel",
default_event=Input.Key.Events.DOWN,
callback=self._on_change_channel
)
)

def _on_change_channel(self, _):
channel = self._channel_row.get_value()
try:
self.backend.change_text_channel(channel)
except Exception as ex:
log.error(ex)
self.show_error(3)
50 changes: 50 additions & 0 deletions actions/ChangeVoiceChannel.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
from enum import StrEnum

from loguru import logger as log

from .DiscordCore import DiscordCore
from src.backend.PluginManager.EventAssigner import EventAssigner
from src.backend.PluginManager.InputBases import Input

from GtkHelper.GenerativeUI.EntryRow import EntryRow


class Icons(StrEnum):
CHANGE_VOICE = ""


class ChangeVoiceChannel(DiscordCore):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.has_configuration = True

def create_generative_ui(self):
self._channel_row = EntryRow(
action_core=self,
var_name="change_voice_channel.text",
default_value="",
title="change-channel-voice",
auto_add=False,
complex_var_name=True,
)

def get_config_rows(self):
return [self._channel_row._widget]

def create_event_assigners(self):
self.event_manager.add_event_assigner(
EventAssigner(
id="change-channel",
ui_label="change-channel",
default_event=Input.Key.Events.DOWN,
callback=self._on_change_channel
)
)

def _on_change_channel(self, _):
channel = self._channel_row.get_value()
try:
self.backend.change_voice_channel(channel)
except Exception as ex:
log.error(ex)
self.show_error(3)
77 changes: 0 additions & 77 deletions actions/ChangeVoiceChannelAction.py

This file was deleted.

62 changes: 62 additions & 0 deletions actions/Deafen.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
from enum import StrEnum

from loguru import logger as log

from .DiscordCore import DiscordCore
from src.backend.PluginManager.EventAssigner import EventAssigner
from src.backend.PluginManager.InputBases import Input

from GtkHelper.GenerativeUI.EntryRow import EntryRow

from ..discordrpc.commands import VOICE_SETTINGS_UPDATE


class Icons(StrEnum):
DEAFEN = "deafen"
UNDEAFEN = "undeafen"


class Deafen(DiscordCore):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.has_configuration = False
self._deafened: bool = False
self.icon_keys = [Icons.DEAFEN, Icons.UNDEAFEN]
self.current_icon = self.get_icon(Icons.DEAFEN)
self.icon_name = Icons.DEAFEN

def on_ready(self):
super().on_ready()
self.plugin_base.add_callback(
VOICE_SETTINGS_UPDATE, self._update_display)
self.backend.register_callback(
VOICE_SETTINGS_UPDATE, self._update_display)

def create_event_assigners(self):
self.event_manager.add_event_assigner(
EventAssigner(
id="toggle-deafen",
ui_label="toggle-deafen",
default_event=Input.Key.Events.DOWN,
callback=self._on_toggle
)
)

def _on_toggle(self, _):
try:
self.backend.set_deafen(not self._deafened)
except Exception as ex:
log.error(ex)
self.show_error(3)

def _update_display(self, value: dict):
if not self.backend:
self.show_error()
return
else:
self.hide_error()
self._deafened = value["deaf"]
icon = Icons.DEAFEN if not self._deafened else Icons.UNDEAFEN
self.icon_name = Icons(icon)
self.current_icon = self.get_icon(self.icon_name)
self.display_icon()
Loading