Coder Social home page Coder Social logo

opensourcepkg / findnow_tbplugin Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 1.0 22.41 MB

The FindNow plugin helps to store emails from Thunderbird in the file system as eml. These can then be scanned by FindNow.

License: GNU General Public License v3.0

JavaScript 6.81% Dockerfile 2.96% HTML 6.67% TypeScript 81.10% CSS 2.46%
addon addons-mozilla-org email eml eml-files js thunderbird xpi findnow

findnow_tbplugin's People

Contributors

arai-a avatar jobisoft avatar stefanwerfling avatar

Watchers

 avatar  avatar  avatar

Forkers

arai-a

findnow_tbplugin's Issues

Wrong filename is used

Storing a file results in a new subdirectory being created with the name of the mail. Inside this directory is a file called test.eml.

Choosing a default directory does not always work

Reproduction

  • activate the first settings option (default directory)
  • choose a directory via the button → the directory is correctly shown in the input field
  • choose a different directory via the button → the directory is still correctly shown in the input field
  • edit the input field to point to some directory (valid or not doesn't matter)
  • choose a directory via the button → the directory is now NOT correctly shown in the input field

After closing the settings dialog and reopening it, the settings work as expected until the points above are done in order again.

FindNow Tab

A Tab to FindNow with auto login. ⇾ Fast Searching.

"Store"-Button in default color

Please recheck if it's possible to change the color of the "Store"-Button. If it's easy (like 5 minute work) then fix the option in the settings (currently does nothing). If it's not easily realizable please remove this option completely from the settings.

It was not used in production anyway, only once after the installation with the customer to visually show where the button is. This is now also possible via the icon.

Feedback for a fs API for Thunderbird.

This is far from being a thing. I just want to make sure that I cover your use case with this proposal. I have no idea if we can move this forward at all.

https://docs.google.com/document/d/1Ia322Epy-k0GGMaisSPaPVVF-WYhCWER5IE3HCfPF3U/edit?usp=sharing

Discussion in this issue, if that is fine with you.

IIRC, you have the filepicker Experiment in your add-on, because you need to preselect the download location. With the proposed fs API you could have a button in your options page to select a default download location

let standardFolderHandle = await browser.fs.showDirectoryPicker({
   startIn: "documents",
   permission: "startIn",
})

and then use that handle whenever you need to store a file

let fileHandle = await browser.fs.showSaveFilePicker({
   startIn: standardFolderHandle.fsFolderId,
   permission: "writeOnce",
})
await browser.fs.setFile(fileHandle.fsFileId, file)

This would prompt the user each time you want to save a file and the file picker will open the folder specified in your options.

None of these filePickers is requesting a permanent permission and therefore do not prompt the user for additional access permissions. But you could request permanent permissions, and then you would not need to ask the user where to store files, but simply use the folder specified in your options. Do not know if that is a use case for you at all.

"main" Branch

Switch from the "master" branch to the "main" branch and delete the "master". So that the repository is consistent, as the standard specifies.

Submitting version 3.2, further switching to the API.

Hello,

Your add-on, FindNow 3.2, has been reviewed and did not meet the criteria for being hosted in our gallery.

Reviewer:
John Bieling

Comments:
These versions are being rejected due to the following problems:

  1. We try to minimize unnecessary Experiments and reject those which re-implement already existing APIs.
    findnow.getRawSubject() : - Please use getFull(messageId) to get access to the raw headers and use the subject from there (yes, that does include the "Re:").

findnow.buildFilename():

  • why does that need to be an Experiment? What stops you from doing this in WebExtension code directly? You can get the date from the header. Instead of the messagekey you could use the headerMessageId.
    findnow.saveTo(): - everything that involves getting the raw message should use getRaw(). In 115 you can also get the content as a DOM File object via getRaw(messageId, {data_format: "File"}) (not yet documented, see https://searchfox.org/comm-esr115/rev/d32fefb23a6afce4c7f71af10978fa1c3064edf1/mail/components/extensions/parent/ext-messages.js#757).

  • when saving files, it is highly suggested to use the downloads API and prompt the user to pick the file save location and not use an Experiment that saves in the background unnoticed

  • findnow.pickPath / joinPath / exist Path : I assume these would all be obsolete, if the downloads API is used,

This would make your add-on a pure WebExtension which should be a top priority goal. From the feedback we get from users, they really do not want to grant the "Full access to my computer" permission anymore.

It is true that the look and feel - specially using the downloads API - could be a bit different, but it is definitely worth the gain to not having to update the add-on for a future version of Thunderbird.

Rejecting this due to findnow.getRawSubject() and manually streaming messages. But please consider the other alternatives as well. Feel free to reach out for further discussions:

This version of your add-on has been disabled. You may re-request review by addressing the reviewer's comments and uploading a new version at https://addons.thunderbird.net/de/developers/addon/findnow2/versions


Developer Resources


To respond, please reply to this email or visit: https://addons.thunderbird.net/de/developers/addon/findnow2/versions

You can also get in touch with the Thunderbird Add-on Reviewer Team via Matrix at https://chat.mozilla.org/#/room/#tb-addon-reviewers:mozilla.org or by Emailing us at: [email protected]

For more information about the review process and policies, please visit https://thundernest.github.io/atn-review-policy/

Test the docker-compose file

During the code review PHPStorm wanted the value of "ports" to be quoted. Please test if this is compatible with your workflow.

Order of the dialogs seems counterintuitive

Currently, when storing a file, the dialog to choose the destination is shown before the dialog for the extra settings. I think its more plausible if the two dialogs were swapped.

Change the labels of the save dialog

The dialog that lets you choose the destination for the saved file has no title. Is this adjustable?
The button to save the eMail is also misleading. Change this also if possible.

File create date should be now, not the date of the mail itself

As the title suggests, the file creation date is programmatically set to the date of the eMail. This seems counterintuitive. It may be important (e.g. for archiving purposes) to know when the file was actually saved to disk by a person via the plugin. Using the mail date, which could be way back in the past, would be wrong in this instance.

Default file name seems incomplete

When all settings are turned off, the resulting file is something like "2023-08-07 -2.eml". So it uses the date and the number of the mail, but the subject is missing.
I suppose this is a bug.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.