Ejemplo n.º 1
0
def get_audio_info():
    global_settings.aud_interface.calculate_progress()
    copied_status = deepcopy(global_settings.aud_interface.status)
    modified_audio_data = {
        "audio_data": copied_status
    }

    modified_audio_data["audio_data"]["track"] = copied_status.get_track().to_dict()
    modified_audio_data["audio_data"]["status"] = copied_status.get_status().value
    modified_audio_data["audio_data"]["audio_library"] = ""

    if len(modified_audio_data["audio_data"]["img_uri_hashed"]) > 1:
        img_hashed_uri = modified_audio_data["audio_data"]["img_uri_hashed"]
        image_uri_split = modified_audio_data["audio_data"]["track"]["image_uri"].rsplit('/', 1)
        image_dir = image_uri_split[0]

        modified_audio_data["audio_data"]["img_uri_formatted"] = format_image(f"{img_hashed_uri}", "jpg", image_dir, size_goal=32768)
    else:
        modified_audio_data["audio_data"]["img_uri_formatted"] = ''
    modified_audio_data["audio_data"]["track"]["track_type"] = copied_status.get_track()["track_type"].value
    modified_audio_data["audio_data"]["volume"] = copied_status.get_volume()
    if int(modified_audio_data["audio_data"]["progress_time"]) > 0:
        modified_audio_data["audio_data"]["progress_string"] = str(
            timedelta(seconds=int(modified_audio_data["audio_data"]["progress_time"])))
        modified_audio_data["audio_data"]["duration_string"] = modified_audio_data["audio_data"]["track"]["duration"]
    else:
        modified_audio_data["audio_data"]["progress_string"] = 0
        modified_audio_data["audio_data"]["duration_string"] = modified_audio_data["audio_data"]["track"]["duration"]
    for i, track_item in enumerate(modified_audio_data["audio_data"]["queue"]):
        modified_audio_data["audio_data"]["queue"][i] = track_item.to_dict()
        modified_audio_data["audio_data"]["queue"][i]["track_type"] = modified_audio_data["audio_data"]["queue"][i]["track_type"].value
    return modified_audio_data
Ejemplo n.º 2
0
 def cmd_img(self, data):
     all_data = data.message.strip().split()
     parameters = all_data[1].rsplit(".", 1)
     try:
         if not os.path.isfile(
                 f"{dir_utils.get_perm_med_dir()}/images/{parameters[0]}.{parameters[1]}"
         ):
             gs.gui_service.quick_gui("The image does not exist.",
                                      text_type='header',
                                      box_align='left')
             return False
     except IndexError:
         return False
     # Format image
     formatted_string = IH.format_image(
         parameters[0], parameters[1],
         f"{dir_utils.get_perm_med_dir()}/images/")
     rprint("Posting an image to the mumble channel chat.")
     # Display image with PGUI system
     gs.gui_service.quick_gui_img(
         f"{dir_utils.get_perm_med_dir()}/images/",
         formatted_string,
         bgcolor=self.metadata[C_PLUGIN_SETTINGS][P_FRAME_COL],
         cellspacing=self.metadata[C_PLUGIN_SETTINGS][P_FRAME_SIZE],
         format_img=False)
     log(INFO,
         "Posted an image to the mumble channel chat from local files.")
Ejemplo n.º 3
0
    def quick_gui_img(self, directory, img_data, format_img=False, caption=None, caption_align='center', caption_font=None, bgcolor="black", channel=None, user=None, img_size=65536, cellspacing="5"):
        if self.box_open:
            return False
        if channel is None:
            channel = runtime_utils.get_my_channel()

        self.open_box(align='left', bgcolor=bgcolor, cellspacing=cellspacing)

        if format_img:
            formatted_string = IH.format_image(f"{img_data}", "jpg", directory, size_goal=img_size)
            content = self.make_content(formatted_string, image=True, text_align='center')
            if content is not None:
                self.append_row(content)
        else:
            content = self.make_content(img_data, image=True, text_align='center')
            if content is not None:
                self.append_row(content)

        if caption is not None:
            caption = self.make_content(caption, text_type="header", text_font=caption_font, text_align=caption_align, image=False)
            self.append_row(caption)

        self.close_box()

        self.display_box(channel=channel, user=user)
        self.clear_display()
Ejemplo n.º 4
0
def get_audio_info():
    global_settings.aud_interface.calculate_progress()
    copied_status = deepcopy(global_settings.aud_interface.status)
    modified_audio_data = {"audio_data": copied_status}

    modified_audio_data["audio_data"]["track"] = copied_status.get_track(
    ).to_dict()
    modified_audio_data["audio_data"]["status"] = copied_status.get_status(
    ).value
    modified_audio_data["audio_data"]["audio_library"] = ""

    if len(modified_audio_data["audio_data"]["img_uri_hashed"]) > 1:
        img_hashed_uri = modified_audio_data["audio_data"]["img_uri_hashed"]
        image_uri_split = modified_audio_data["audio_data"]["track"][
            "image_uri"].rsplit('/', 1)
        image_dir = image_uri_split[0]

        modified_audio_data["audio_data"]["img_uri_formatted"] = format_image(
            f"{img_hashed_uri}",
            "jpg",
            image_dir,
            size_goal=32768,
            quiet=True,
            src_only=True)
    else:
        modified_audio_data["audio_data"]["img_uri_formatted"] = ''
    modified_audio_data["audio_data"]["track"][
        "track_type"] = copied_status.get_track()["track_type"].value
    modified_audio_data["audio_data"]["volume"] = copied_status.get_volume()
    if int(modified_audio_data["audio_data"]["progress_time"]) > 0:
        modified_audio_data["audio_data"]["progress_string"] = str(
            timedelta(seconds=int(modified_audio_data["audio_data"]
                                  ["progress_time"])))
        modified_audio_data["audio_data"][
            "duration_time"] = modified_audio_data["audio_data"]["track"][
                "duration"]
        modified_audio_data["audio_data"]["duration_string"] = str(
            timedelta(seconds=int(modified_audio_data["audio_data"]["track"]
                                  ['duration']))) if int(
                                      modified_audio_data["audio_data"]
                                      ["track"]['duration']) > 0 else "-1"
    else:
        modified_audio_data["audio_data"]["progress_string"] = 0
        modified_audio_data["audio_data"][
            "duration_string"] = modified_audio_data["audio_data"]["track"][
                "duration"]
    for i, track_item in enumerate(modified_audio_data["audio_data"]["queue"]):
        modified_audio_data["audio_data"]["queue"][i] = track_item.to_dict()
        modified_audio_data["audio_data"]["queue"][i][
            "track_type"] = modified_audio_data["audio_data"]["queue"][i][
                "track_type"].value

    encoded_dict = json.dumps(modified_audio_data, sort_keys=True)
    modified_audio_data["audio_data"]["hash"] = hex(
        crc32(str.encode(encoded_dict)) & 0xffffffff)
    return modified_audio_data
Ejemplo n.º 5
0
 def cmd_post(self, data):
     all_data = data.message.strip().split(' ', 1)
     img_url = all_data[1]
     # Download image
     img_url = BeautifulSoup(img_url, 'html.parser').get_text()
     try:
         IH.download_image_stream(img_url)
     except exceptions.HTTPError:
         gs.gui_service.quick_gui(
             "Encountered an HTTP Error while trying to retrieve the image.",
             text_type='header',
             text_align='left',
             box_align='left')
         return
     except exceptions.InvalidSchema:
         gs.gui_service.quick_gui(
             "Encountered an Invalid Schema Error while trying to retrieve the image.",
             text_type='header',
             text_align='left',
             box_align='left')
         return
     except exceptions.RequestException:
         gs.gui_service.quick_gui(
             "Encountered a Request Error while trying to retrieve the image.",
             text_type='header',
             text_align='left',
             box_align='left')
         return
     img_ext = img_url.rsplit('.', 1)[1]
     formatted_string = IH.format_image(
         "_image", img_ext,
         f'{dir_utils.get_temp_med_dir()}/internal/images')
     rprint("Posting an image to the mumble channel chat.")
     # Display image with PGUI system
     gs.gui_service.quick_gui_img(
         f"{dir_utils.get_temp_med_dir()}/internal/images",
         formatted_string,
         bgcolor=self.metadata[C_PLUGIN_SETTINGS][P_FRAME_COL],
         cellspacing=self.metadata[C_PLUGIN_SETTINGS][P_FRAME_SIZE],
         format_img=False)
     log(INFO,
         f"Posted an image to the mumble channel chat from: {img_url}.")
Ejemplo n.º 6
0
    def cmd_img(self, data):
        all_data = data.message.strip().split(' ', 1)
        if len(all_data) != 2:
            log(ERROR,
                CMD_INVALID_IMG,
                origin=L_COMMAND,
                error_type=CMD_INVALID_ERR,
                print_mode=PrintMode.VERBOSE_PRINT.value)
            gs.gui_service.quick_gui(CMD_INVALID_IMG,
                                     text_type='header',
                                     box_align='left')
            return
        parameters = all_data[1].rsplit(".", 1)

        # Check if the image exists in the permanent media directory.
        if not path.isfile(
                f"{dir_utils.get_perm_med_dir()}/{self.plugin_name}/{parameters[0]}.{parameters[1]}"
        ):
            log(ERROR,
                CMD_IMAGE_DNE,
                origin=L_COMMAND,
                error_type=CMD_PROCESS_ERR,
                print_mode=PrintMode.VERBOSE_PRINT.value)
            gs.gui_service.quick_gui(CMD_IMAGE_DNE,
                                     text_type='header',
                                     box_align='left')
            return

        # Format the image and display it with the PGUI system.
        formatted_string = IH.format_image(
            parameters[0], parameters[1],
            f"{dir_utils.get_perm_med_dir()}/{self.plugin_name}/")
        gs.gui_service.quick_gui_img(
            f"{dir_utils.get_perm_med_dir()}/{self.plugin_name}/",
            formatted_string,
            bgcolor=self.metadata[C_PLUGIN_SETTINGS][P_FRAME_COL],
            cellspacing=self.metadata[C_PLUGIN_SETTINGS][P_FRAME_SIZE],
            format_img=False)
        log(INFO,
            INFO_POSTED_IMAGE,
            origin=L_COMMAND,
            print_mode=PrintMode.VERBOSE_PRINT.value)
def create_monster_image(monster_data_dict, max_img_size=65536):
    if monster_data_dict['image'] is not None:
        img_string = ImageHelper.format_image(
            f'{monster_data_dict["image"]}',
            'jpg',
            f'{dir_utils.get_perm_med_dir()}/mhw_wiki',
            size_goal=max_img_size,
            max_width=250,
            max_height=250)
        content = global_settings.gui_service.make_content(
            f"""{img_string}""",
            'header',
            text_color=global_settings.cfg[C_PGUI_SETTINGS][P_TXT_HEAD_COL],
            text_align='center',
            image=True)
    else:
        content = global_settings.gui_service.make_content(
            f"""Image Unavailable""",
            'header',
            text_color=global_settings.cfg[C_PGUI_SETTINGS][P_TXT_HEAD_COL],
            text_align='center')
    return content
Ejemplo n.º 8
0
 def cmd_post(self, data):
     all_data = data.message.strip().split()
     img_url = all_data[1]
     # Download image
     img_url = ''.join(
         BeautifulSoup(img_url, 'html.parser').findAll(text=True))
     IH.download_image_stream(img_url)
     # Format image
     time.sleep(1)
     img_ext = img_url.rsplit('.', 1)[1]
     formatted_string = IH.format_image(
         "_image", img_ext, f'{dir_utils.get_temp_med_dir()}/images')
     rprint("Posting an image to the mumble channel chat.")
     # Display image with PGUI system
     gs.gui_service.quick_gui_img(
         f"{dir_utils.get_temp_med_dir()}/images",
         formatted_string,
         bgcolor=self.metadata[C_PLUGIN_SETTINGS][P_FRAME_COL],
         cellspacing=self.metadata[C_PLUGIN_SETTINGS][P_FRAME_SIZE],
         format_img=False)
     log(INFO,
         f"Posted an image to the mumble channel chat from: {img_url}.")
     dir_utils.remove_file("_image.jpg",
                           f'{dir_utils.get_temp_med_dir()}/images')
Ejemplo n.º 9
0
    def cmd_post(self, data):
        all_data = data.message.strip().split(' ', 1)
        if len(all_data) != 2:
            log(ERROR,
                CMD_INVALID_POST,
                origin=L_COMMAND,
                error_type=CMD_INVALID_ERR,
                print_mode=PrintMode.VERBOSE_PRINT.value)
            gs.gui_service.quick_gui(CMD_INVALID_POST,
                                     text_type='header',
                                     box_align='left')
            return

        # Download image from the provided URL.
        img_url = all_data[1].strip()
        img_url = BeautifulSoup(img_url, 'html.parser').get_text()
        try:
            # Download the image in 1024 byte chunks and save it as a temporary image.
            IH.download_image_stream(img_url)
        except exceptions.HTTPError:
            log(ERROR,
                GEN_HTTP_ERROR,
                origin=L_COMMAND,
                error_type=CMD_PROCESS_ERR,
                print_mode=PrintMode.VERBOSE_PRINT.value)
            gs.gui_service.quick_gui(GEN_HTTP_ERROR,
                                     text_type='header',
                                     box_align='left')
            return
        except exceptions.InvalidSchema:
            log(ERROR,
                GEN_INVALID_SCHEMA_ERROR,
                origin=L_COMMAND,
                error_type=CMD_PROCESS_ERR,
                print_mode=PrintMode.VERBOSE_PRINT.value)
            gs.gui_service.quick_gui(GEN_INVALID_SCHEMA_ERROR,
                                     text_type='header',
                                     box_align='left')
            return
        except exceptions.RequestException:
            log(ERROR,
                GEN_REQUESTS_ERROR,
                origin=L_COMMAND,
                error_type=CMD_PROCESS_ERR,
                print_mode=PrintMode.VERBOSE_PRINT.value)
            gs.gui_service.quick_gui(GEN_REQUESTS_ERROR,
                                     text_type='header',
                                     box_align='left')
            return

        # Format the retrieved image into the b64 variant for mumble usage.
        img_ext = img_url.rsplit('.', 1)[1]
        formatted_string = IH.format_image(
            T_TEMP_IMG_NAME, img_ext,
            f'{dir_utils.get_temp_med_dir()}/internal/images')
        # Display image with PGUI system and log the event.
        gs.gui_service.quick_gui_img(
            f"{dir_utils.get_temp_med_dir()}/internal/images",
            formatted_string,
            bgcolor=self.metadata[C_PLUGIN_SETTINGS][P_FRAME_COL],
            cellspacing=self.metadata[C_PLUGIN_SETTINGS][P_FRAME_SIZE],
            format_img=False)
        log(INFO,
            INFO_POSTED_IMAGE,
            origin=L_COMMAND,
            print_mode=PrintMode.VERBOSE_PRINT.value)