Skip to content

Proposal for Improvements and Fixes with Attached ZIP Files #631

Open

Description

@hxebolax

Hello, I'm attaching a .zip file since I don't have much time right now to prepare a pull request. These are some personal modifications I made and shared with friends.
First, I added the Spanish language, although it still needs improvement.
These enhancements are mostly based on the Gemini module, and I tried not to affect the other modules.
You may encounter issues when running it because I upgraded to version 3.13.2, and for example, had to fix a tuple issue in the conversation_model.py file.
In the conversation_tab.py file, within the on_transcription_received function, I modified it so it can also accept the results returned by the Gemini API.
In the provider_capability.py file, I added support for video, audio, and .zip files. This is especially interesting for Gemini since it allows uploading the content of a zip file while bypassing the 10-file limit, enabling it to work with all the contents.
Support for zip files was also added in the attached_file.py file, within the get_mime_type function.
Audio and video capabilities open a door to many possibilities, allowing transcription of more audio/video formats, video descriptions, summaries, etc.
Additional supported file extensions have also been added to the Gemini module, such as pdf, py, js, css, html, and many more.
I also added support for uploading large video, audio, and PDF files using the genai.upload_file method, as recommended by the API. The extensions that must be uploaded this way are listed in the UPLOAD_VIA_FILE_API_MIMETYPES variable within the Gemini module.
Security modes are now also considered, although currently disabled, since additional modules would need to be included in the advanced options.
The Gemini module includes the default_safety_settings dictionary, which contains the four safety settings that can be set to different levels.
I also updated the Gemini models as of yesterday.
I added support for transcribing audio both from the Conversations menu and using Ctrl+Z.
On the HTML screen, when pressing H, I included a “Copy” button so that detected source code can be copied to the clipboard.
There are more changes, but I’ve included some of them in the following zip files.
In the zip file named changes1.zip, I included some changes I’m currently testing alongside your latest updates from GitHub. Some of the things mentioned above might not work yet.
In the file changes2.zip, you’ll find everything I’m currently using, including all my changes since I started improving the Gemini module. For instance, this file also includes updates to the OpenAI module with all the latest models up to April 16th, 2025 — including 4.1, 4.5, o3, o4 mini, and more.
I updated the manifest for the NVDA connector to support NVDA 2025.1.
In the About dialog, I added myself as a translator.
In changes2.zip, I also added three new keyboard shortcuts within the message area:
•
Z to copy the current block of source code,
•
X to move to the next code block within the same message, and
•
Shift+X to move to the previous code block.

And probably some other changes I’m forgetting.

I also modified the pyproject file to include the Visual runtimes, so the user doesn't have to look for them or run into issues where the app won’t open due to missing dependencies. I just added this to the configuration:
include_msvcr = true
Note that I have Visual BUILD C++ installed, but I believe cx-Freeze version 8 (which I’m using) does this automatically now — although I can’t confirm that 100%. I’m not sure whether it’s thanks to cx-Freeze or having Visual BUILD C++ installed.
If any of this helps improve your great project, I’m happy to contribute.
I apologize in advance if a few notes in Spanish slipped through, but I tried to make sure most docstrings, comments, and help messages are in English.
Best regards,

changes1.zip
changes2.zip

Activity

  1. AAClause commented on Apr 21, 2025

    @AAClause
    Member

    Thanks a lot @hxebolax for your sharing! :) We'll incorporate some of your changes while crediting you as the author of these commits. Regarding the Gemini provider, we plan to migrate to the google-genai module and implement dynamic model listing (instead of hardcoded listing) if there's no regression.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions