Example #1
0
 async def get_soundboard_data(self):
     if "sound_board" in list(global_settings.bot_plugins):
         import JJMumbleBot.plugins.extensions.sound_board.utility.sound_board_utility as sbu
         clips_list = sbu.prepare_sb_list()
         return ResponseModel(200, "success", {"clips": clips_list}).toDict()
     return ResponseModel(500, "error",
                          {"error_message": "Encountered an error retrieving sound_board clips."}).toDict()
Example #2
0
 async def play_soundboard_clip(self, request: StdModel):
     if len(request.text) > 0 and "sound_board" in list(global_settings.bot_plugins):
         text = RemoteTextMessage(channel_id=global_settings.mumble_inst.users.myself['channel_id'],
                                  session=global_settings.mumble_inst.users.myself['session'],
                                  message=f"{global_settings.cfg[C_MAIN_SETTINGS][P_CMD_TOKEN]}sbquietnow {request.text}",
                                  actor=global_settings.mumble_inst.users.myself['session'])
         global_settings.core_callbacks.callback(PYMUMBLE_CLBK_TEXTMESSAGERECEIVED, text, True)
         return ResponseModel(200, "success").toDict()
     return ResponseModel(400, "error", {"error_message": "The provided sound_board clip is invalid!"}).toDict()
Example #3
0
 async def remove_channel(self, command: StdModel):
     if len(command.text) > 0:
         rutils.remove_channel(command.text.strip())
         return ResponseModel(200, "success").toDict()
     return ResponseModel(
         400, "error", {
             "error_message":
             f"Please be sure to provide a valid channel name that exists!"
         })
Example #4
0
 async def play_random_soundboard(self):
     if "sound_board" in list(global_settings.bot_plugins):
         text = RemoteTextMessage(channel_id=global_settings.mumble_inst.users.myself['channel_id'],
                                  session=global_settings.mumble_inst.users.myself['session'],
                                  message=f"{global_settings.cfg[C_MAIN_SETTINGS][P_CMD_TOKEN]}sbrandomquietnow",
                                  actor=global_settings.mumble_inst.users.myself['session'])
         global_settings.core_callbacks.callback(PYMUMBLE_CLBK_TEXTMESSAGERECEIVED, text, True)
         return ResponseModel(200, "success").toDict()
     return ResponseModel(400, "error", {
         "error_message": "Encountered an error while trying to play a random sound clip!"}).toDict()
Example #5
0
 async def deafen_user(self, command: StdModel):
     if len(command.text) > 0:
         if not rutils.deafen(username=command.text.strip()):
             rutils.undeafen(username=command.text.strip())
         return ResponseModel(200, "success").toDict()
     return ResponseModel(
         400, "error", {
             "error_message":
             f"Please be sure to provide the username of a valid user in the "
             f"server and make sure the bot has adequate permissions."
         })
Example #6
0
 async def make_temporary_channel(self, command: StdModel):
     if len(command.text) > 0:
         rutils.make_channel(rutils.get_my_channel(),
                             command.text.strip(),
                             temporary=False)
         return ResponseModel(200, "success").toDict()
     return ResponseModel(
         400, "error", {
             "error_message":
             f"Please be sure to provide a valid permanent channel name!"
         })
Example #7
0
 async def join_user(self, command: StdModel):
     if len(command.text) > 0:
         user_channel = rutils.get_user_channel(command.text.strip())
         if user_channel:
             user_channel.move_in()
             return ResponseModel(200, "success").toDict()
     return ResponseModel(
         400, "error", {
             "error_message":
             f"Please be sure to provide the username of a valid user in the "
             f"server!"
         })
Example #8
0
 async def send_command(self, command: StdModel):
     if len(command.text) > 0:
         if command.text[0] == global_settings.cfg[C_MAIN_SETTINGS][P_CMD_TOKEN]:
             text = RemoteTextMessage(channel_id=global_settings.mumble_inst.users.myself['channel_id'],
                                      session=global_settings.mumble_inst.users.myself['session'],
                                      message=command.text,
                                      actor=global_settings.mumble_inst.users.myself['session'])
             global_settings.core_callbacks.callback(PYMUMBLE_CLBK_TEXTMESSAGERECEIVED, text, True)
             return ResponseModel(200, "success").toDict()
         return ResponseModel(400, "error", {"error_message": f"The provided command was invalid! Please be sure that your command starts with '{global_settings.cfg[C_MAIN_SETTINGS][P_CMD_TOKEN]}'.\n"
                                                              f"For Additional assistance, try the {global_settings.cfg[C_MAIN_SETTINGS][P_CMD_TOKEN]}help command."}).toDict()
     return ResponseModel(500, "error", {"error_message": f"There was an error processing the provided command."}).toDict()
Example #9
0
 async def rename_channel(self, command: StdModel):
     if len(command.text) > 0:
         split_data = command.text.strip().split(' ', 1)
         if len(split_data) == 2:
             rutils.rename_channel(split_data[0], split_data[1])
             return ResponseModel(200, "success").toDict()
     return ResponseModel(
         400, "error", {
             "error_message":
             f"Please be sure to provide a valid channel name that exists and a "
             f"new valid channel name!"
         })
Example #10
0
 async def start_plugin(self, command: StdModel):
     if len(command.text.strip()) > 0:
         if cutils.turn_on_plugin(command.text.strip()):
             return ResponseModel(
                 200, "success", {
                     "message":
                     f"Successfully started plugin: {command.text.strip()}"
                 }).toDict()
     return ResponseModel(
         400, "error", {
             "error_message":
             f"Please make sure you provide an existing, stopped plugin to start."
         }).toDict()
Example #11
0
 async def move_user(self, command: StdModel):
     if len(command.text) > 0:
         split_data = command.text.strip().split(' ', 1)
         if len(split_data) == 2:
             rutils.move_user(split_data[0], split_data[1])
             return ResponseModel(200, "success").toDict()
     return ResponseModel(
         400, "error", {
             "error_message":
             f"Please be sure to provide the username of a valid user"
             f" and a valid channel name. Please make sure the bot has"
             f"adequate permissions."
         })
Example #12
0
 async def ban_user(self, command: StdModel):
     if len(command.text) > 0:
         split_data = command.text.strip().split(' ', 1)
         if len(split_data) == 2:
             rutils.ban_user(split_data[0], split_data[1])
         else:
             rutils.ban_user(command.text.strip(), reason='N/A')
         return ResponseModel(200, "success").toDict()
     return ResponseModel(
         400, "error", {
             "error_message":
             f"Please be sure to provide the username of a valid user in the "
             f"server and make sure the bot has adequate permissions."
         })
Example #13
0
 async def set_plugin_metadata(self, command: JSONModel):
     if len(command.name.strip()) > 0 and command.text:
         results = rutils.set_plugin_metadata(command.name.strip(),
                                              command.text)
         if results:
             return ResponseModel(200, "success").toDict()
         return ResponseModel(
             400, "error", {
                 "error_message": f"Failed to write metadata file!"
             }).toDict()
     return ResponseModel(
         400, "error", {
             "error_message":
             f"Please make sure you provide an existing plugin to retrieve metadata."
         }).toDict()
Example #14
0
 async def get_plugin_metadata(self, command: StdModel):
     if len(command.text.strip()) > 0:
         plugin_metadata = rutils.get_plugin_metadata(command.text.strip())
         if plugin_metadata:
             return ResponseModel(200, "success", {
                 "metadata": plugin_metadata
             }).toDict()
         return ResponseModel(
             400, "error", {
                 "error_message": f"Failed to retrieve metadata file!"
             }).toDict()
     return ResponseModel(
         400, "error", {
             "error_message":
             f"Please make sure you provide an existing plugin to retrieve metadata."
         }).toDict()
Example #15
0
 async def stop_audio(self):
     if not global_settings.aud_interface.status.is_stopped():
         global_settings.aud_interface.stop()
         global_settings.gui_service.quick_gui(
             f"Stopped audio interface.",
             text_type='header',
             box_align='left')
     return ResponseModel(200, "success").toDict()
Example #16
0
 async def shuffle_audio(self):
     global_settings.aud_interface.shuffle()
     return ResponseModel(200, "success").toDict()
Example #17
0
 async def general_api(self):
     return ResponseModel(
         200, "success",
         {"name": get_bot_name(), "command_token": global_settings.cfg[C_MAIN_SETTINGS][P_CMD_TOKEN]}
     ).toDict()
 #endregion
Example #18
0
async def http_exception(request, exc):
    resp = ResponseModel(404, "error", {"error_message": "This path is invalid!"})
    return JSONResponse(resp.toDict(), media_type="application/json", status_code=404)
Example #19
0
 async def remove_track(self, request: StdModel):
     if len(request.text) > 0:
         global_settings.aud_interface.remove_track(track_index=int(request.text))
         return ResponseModel(200, "success").toDict()
     return ResponseModel(400, "error", {"error_message": "The provided track was invalid!"}).toDict()
Example #20
0
 async def leave_channel(self):
     rutils.leave_channel()
     return ResponseModel(200, "success").toDict()
Example #21
0
 async def resume_audio(self):
     if global_settings.aud_interface.status.is_paused():
         global_settings.aud_interface.resume()
     return ResponseModel(200, "success").toDict()
Example #22
0
 async def loop_audio(self):
     global_settings.aud_interface.loop_track()
     return ResponseModel(200, "success").toDict()
Example #23
0
 async def replay_audio(self):
     global_settings.aud_interface.replay()
     return ResponseModel(200, "success").toDict()
Example #24
0
 async def users_section(self):
     return ResponseModel(200, "success").toDict()
Example #25
0
 async def restart_all_plugins(self):
     rutils.refresh_plugins()
     return ResponseModel(200, "success").toDict()
Example #26
0
 async def get_uptime(self):
     return ResponseModel(200, "success", rutils.check_up_time()).toDict()
Example #27
0
 async def get_token(self):
     return ResponseModel(
         200, "success",
         {"command_token": global_settings.cfg[C_MAIN_SETTINGS][P_CMD_TOKEN]}
     ).toDict()
Example #28
0
 async def get_about(self):
     return ResponseModel(
         200, "success",
         f"{rutils.get_about()}<br>{rutils.get_bot_name()} is on version {rutils.get_version()}"
     ).toDict()
Example #29
0
 async def next_audio(self):
     global_settings.aud_interface.skip(0)
     return ResponseModel(200, "success").toDict()
Example #30
0
 async def increase_volume_audio(self):
     global_settings.aud_interface.audio_utilities.set_volume_fast(
         global_settings.aud_interface.status.get_volume() + 0.1, auto=False)
     return ResponseModel(200, "success").toDict()