Open dougrock opened 5 years ago
Would love to see this working with Catalina...
It will probably be quite a while before I upgrade to Catalina, given that I don't see any upside of using it (and a lot of downsides 😕)
I'm not a fan of Catalina, and can't give any reason to upgrade. But one of my Macs is on Catalina, and I miss using QuoteFix.
I second this notion to make Quote Fix compatible. I am using the latest public beta build of Catalina and just attempted to enable the plugin with the Mail 13.0 incompatible dialogue. This is possibly the sole plugin that will make Mail tolerable; I have used MailMate for years but need to use Mail to circumvent a system that disabled IMAP.
I'll add another plead for Catalina compatibility!
Missing support for Catalina is actually the only thing that keeps me from upgrading. That's how important QuoteFix is to me. Compatibility with Catalina would be highly appreciated.
Same here. QuoteFix is the only thing reason I haven't upgraded. If you have the time, Catalina compatability would be great.
@defrilitus it's not a question of time, it's a question of me not running Catalina 😬
@robertklep Thanks for your reply. I understand perfectly ;-)
So, if anyone is interested, you can just add the macOS 10.15 compatibility UUID to the current Mojave mailbundle (which unfortunately I can't get it to build and work on my machine) to make it work. Looks like nothing breaks here. If you trust me, you can just use this binary: QuoteFix.mailbundle.zip
If you don't, download the current QuoteFix.mailbundle from the README link, edit the QuoteFix.mailbundle/Contents/Info.plist
with your favorite editor and insert this under Supported10.14PluginCompatibilityUUIDs
:
<key>Supported10.15PluginCompatibilityUUIDs</key>
<array>
<string>6EEA38FB-1A0B-469B-BB35-4C2E0EEA9053</string>
</array>
and it will work. The final Info.plist should look like this:
BTW, @robertklep Do you know why it doesn't build on my machine? If I use my system python2.7, it crashes with this log:
@pcr910303 system python never worked for me, I use(d) a Homebrew-installed 2.7 (plus virtualenv) to build.
I'll try and see if I can push a new release with your proposed UUID fix. I had assumed that it wouldn't be this easy (in which case MailPluginFix might also work for those who don't want to mess around with Terminal).
Just pushed a new release with the Catalina UUID added: https://github.com/robertklep/quotefixformac/releases/tag/v2.11.0-alpha.1
So far so good (install via script, reply to one easy email). 10.15.4.
Working for me - thanks both of you! Had to re-enable the plugin in Mail preferences, but after that it's all good. I can start replying to emails in the correct place. 😁
Thanks for the new version. I miss it! Using Catalina 10.15.4 Tried the install command, did nothing. Manually installed QuoteFix.mailbundle. No trouble writing the settings I have used previously in Reply, Reply all, Forward <El ${message.sent.strftime("%d/%m/%Y' a las '%H:%M Z")}, ${message.from.name} escribió:> <On ${message.sent.strftime("%m/%d/%Y' at '%I:%M' '%p Z", 'en-EN')}, ${message.from.name} wrote:> Using the Advance->Debbgging: Error Message: The QuoteFix plug-in caught an exception:
Traceback (most recent call last): File "/Users/MyUser/Library/Containers/com.apple.mail/Data/DataVaults/MailBundles/Users/MyUser/Library/Mail/Bundles/QuoteFix.mailbundle/Contents/Resources/lib/python2.7/quotefix/fixer.py", line 90, in fix AttributeError: 'NSKVONotifying_ComposeBackEndWK1' object has no attribute 'message'
In my case (Catalina 10.15.4) , installation went through, but after restarting Mail the plugin window (from Mail settings) doesn't open. Removing the extension restore the plugin configuration window
Thanks for the new version. I miss it! Using Catalina 10.15.4 Tried the install command, did nothing. Manually installed QuoteFix.mailbundle. No trouble writing the settings I have used previously in Reply, Reply all, Forward <El ${message.sent.strftime("%d/%m/%Y' a las '%H:%M Z")}, ${message.from.name} escribió:> <On ${message.sent.strftime("%m/%d/%Y' at '%I:%M' '%p Z", 'en-EN')}, ${message.from.name} wrote:> Using the Advance->Debbgging: Error Message: The QuoteFix plug-in caught an exception:
Traceback (most recent call last): File "/Users/MyUser/Library/Containers/com.apple.mail/Data/DataVaults/MailBundles/Users/MyUser/Library/Mail/Bundles/QuoteFix.mailbundle/Contents/Resources/lib/python2.7/quotefix/fixer.py", line 90, in fix AttributeError: 'NSKVONotifying_ComposeBackEndWK1' object has no attribute 'message'
getting the same error message - tried uninstall and reinstall - still same error
@dougrock it's likely not everything works. Since @fahirsch has the same issue, my guess is that custom attribution isn't working.
Since I don't run Catalina myself, I can't fix this at the moment.
EDIT: I did not see QuoteFix do anything, it just locks up. I'm pretty sure I'm asking the future to resolve itself on the same thread where the future would normally be computed. First guess, then, is that QuoteFix is no longer hooking in at the right point? Either that or I need to... spawn a thread?
I'm way out of my depth here—first time ever running class-dump tonight—but it looks to me like ComposeBackend
now has a messageFuture
instead of message
. messageFuture
is an EFFuture
from the "EmailFoundation" framework. I edited fixer.py a little bit and I can actually see it change the attribution. Mail.app then hard locks, to the point where I cannot get any window on top of it. Luckily I had a terminal window open where I could type killall Mail
(sight unseen).
There's enough code here, and not enough documentation from Apple, that I expect I'm stuck for the time being. I expect I'd need to attach a debugger to find out what it's doing when it gets hung up, and/or digest the rest of this class-dump output to find the new method(s) needed to edit email.
I wish Apple would just move the attribution out of the quoted text on the first line.
I have made a small change to fixer.py
that does not immediately crash, and even modifies the message as I expect, to my great surprise. I'll test drive this for a week or two, and if it seems stable, and no one who actually understands Objective-C and PyObjC wants to call me out on my mistakes, I can probably clean this up and submit a PR. Someone can ping me if I forget and you care.
@dsedivec thanks for your efforts! I only have limited ability to test, given that I'm not on Catalina, but my goal would be to keep it compatible with older versions of macOS as well.
Once you give the all-clear, I'll try and add backward compatibility and release an alpha version for others to test.
@dsedivec thanks for your efforts! I only have limited ability to test, given that I'm not on Catalina, but my goal would be to keep it compatible with older versions of macOS as well.
Once you give the all-clear, I'll try and add backward compatibility and release an alpha version for others to test.
Thank you for maintaining QuoteFix all these years. I want backwards compatibility too, and I... think it'd be easy to detect which selector is present and behave accordingly (as opposed to just hinging directly off version number). I've got Mojave here that needs to keep working, in addition to (sadly) Catalina.
I just did 0.1 imperial tonnes of email replies tonight on Catalina, and Mail.app hasn't crashed or started sending malware to my contacts as far as I know. So far so good.
I want backwards compatibility too, and I... think it'd be easy to detect which selector is present and behave accordingly (as opposed to just hinging directly off version number). I've got Mojave here that needs to keep working, in addition to (sadly) Catalina.
I've been using my previous fix all week on Catalina, and it's been working fine, so I went ahead and cleaned my code up. I mean, it's not at all beautiful, but I think it's better, and more importantly it should be backwards compatible now. My clone of this repo has the updated code. I just very briefly did successful tests of this version under Catalina, Mojave, and High Sierra by hitting "reply" on a message and watching QuoteFix successfully move the attribution line outside of the blockquote
.
@robertklep Is this helpful? Should I submit this as a PR?
I would provide a build for people to use but I actually haven't been able to produce a working one under Catalina. I think Catalina may have broken PyObjC, and the fixed version of PyObjC is no longer supported under Catalina? But I think Catalina still ships PyObjC in Python 2.7 so ¯\(ツ)/¯.
Instead I've just been replacing the .py files from the latest release here with my updated .py files, then doing the "re-enable the plug-in" dance in Mail.app.
@dsedivec apologies for not getting back to you sooner. If you issue a PR, I will merge it and build a test-release for you (and others) to try out 👍🏻
Released v2.11.0-alpha.2 with better Catalina support, thanks to @dsedivec!
The QuoteFix plug-in caught an exception:
Traceback (most recent call last): File "/Users/francisco/Library/Containers/com.apple.mail/Data/DataVaults/MailBundles/Users/francisco/Library/Mail/Bundles/QuoteFix.mailbundle/Contents/Resources/lib/python2.7/quotefix/fixer.py", line 90, in fix AttributeError: 'NSKVONotifying_ComposeBackEndWK1' object has no attribute 'message'
Lic. Francisco A. Hirsch https://www.fiscaldemesa.com.ar Twitter: https://twitter.com/fiscaldemesa
On 12 Aug 2020, at 09:14, Robert Klep notifications@github.com wrote:
Released v2.11.0-alpha.2 https://github.com/robertklep/quotefixformac/releases/tag/v2.11.0-alpha.2 with better Catalina support, thanks to @dsedivec https://github.com/dsedivec!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/robertklep/quotefixformac/issues/94#issuecomment-672834322, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA2MOEHCYFNZAIVEI4WSFRDSAKBRVANCNFSM4ISWU7FQ.
@fahirsch thanks for testing! @dsedivec did I break something?
The same crash was reported on May 15, above.
The same crash was reported on May 15, above.
Yeah, line 90 of the Catalina branch is a blank line, so I think @fahirsch is probably running a previous release. fahirsch, try installing v2.11.0-alpha.2 per robertklep's comment above.
Lic. Francisco A. Hirsch https://www.fiscaldemesa.com.ar https://www.fiscaldemesa.com.ar/ Twitter: https://twitter.com/fiscaldemesa https://twitter.com/fiscaldemesa
El 12/08/2020 a las 17:42 -0300, Dale Sedivec escribió: On 08/12/2020 at 05:42 PM -0300, Dale Sedivec wrote:
The same crash was reported on May 15, above.
Yeah, line 90 of the Catalina branch is a blank line, so I think @fahirsch https://github.com/fahirsch is probably running a previous release. fahirsch, try installing v2.11.0-alpha.2 https://github.com/robertklep/quotefixformac/releases/tag/v2.11.0-alpha.2 per robertklep's comment above https://github.com/robertklep/quotefixformac/issues/94#issuecomment-672834322.
Not to belabor the obvious, but do ensure that Terminal has Full Disk Access enabled in the Privacy tab of the Security & Privacy panel in System Preferences.
I'm very glad, that QuoteFix is back. 😊 Works great so far on Catalina 10.15.6 with supplemental update. Just noted a little bug: ${message.subject} will not get the according subject. Instead it will output 3-5 random like character, like: "fab6"
I have the same bug like GHubbler.
@GHubbler @LitoFrame looks like it's showing a pointer address instead of the data it's pointing to. It's these kinds of issues that I can't fix without having to actually install Catalina :(
Just started a new issue #96 to move forward to Big Sur. ;)
So what's the latest version for Catalina? 2.11.0 a2 is what I have now.
PS I'm having an issue where my MBP crashes when closed or sitting idle overnight and when that happens, QuoteFix gets unchecked in Mail prefs.
@Jmuccigr 2.11.0-alpha.2 is the latest for Catalina.
Mail unchecking QF happens all the time for me (on Mojave), not even after crashes, just quitting Mail will sometimes be enough.
@robertklep I'm still on Mojave too and I'd also noticed that Mail unchecks QF quite regularly; I was wondering if there was a fix, but—since it also happens to you—I imagine that there isn't.
@defrilitus I don't think it's because of something QF does, but can't be 100% certain. I don't use any other plugins so cannot check if those get disabled as well.
The only other plugin that I use is NoFlaggedMailbox, which oddly enough is never disabled by Mail. I'm not sure why that is. I did think of writing an AppleScript to reinstall QF every time that Mail starts, but that's a bit too cumbersome to be practical, and I can't think of another solution :-(
Data point: I've got MailTrackerBlocker and it doesn't seem to uncheck while QuoteFix does (which happens maybe when I have a crash).
Thanks @Jmuccigr for your mention of MailTrackerBlocker; it's new to me, but looks very useful. Unfortunately, with Apple it's not easy to understand what triggers an action (e.g., unchecking QF, for example, every time my Mac restarts).
Mail unchecking QF happens all the time for me (on Mojave), not even after crashes, just quitting Mail will sometimes be enough.
FWIW, same here on Mojave. In contrast, Catalina has only disabled it on me maybe a handful of times in the past nine months or so.
Also FWIW, I have two hypotheses (like complete and total guesses) on why it gets disabled: First is due to the additional startup time I see added by enabling QuoteFix. It's possible that it delays some thread or another (to load Python+PyObjC and then monkey patch the core classes?) so long that Mail.app defensively disables the plug-in? Essentially a timeout. This seems a bit far-fetched, especially since you still have long startup times in Catalina but no disabling there.
Second theory is something to do with Python touching pyc/pyo files in the bundle. Maybe it doesn't even change the checksums—or maybe it is doing some byte compiling, I haven't checked—but Mail.app thinks the plug-in has changed, so it disables it. (Silently, natch.)
Again, just total guesses.
I'm happy to report that version 2.11.0-alpha.2 installed successfully and is working under Catalina 10.15.7. I've only been using it for the last hour or so, but there have been no problems so far and it remained selected in the prefs even after a reboot.
However, I figured I'd report that there were 2 error/warning messages in the installation log:
2021-10-22 09:55:23.072 defaults[4196:83295] The domain/default pair of (/Applications/Mail.app/Contents/Info, CFBundleShortVersionString) does not exist 2021-10-22 09:55:23.091 defaults[4197:83299] The domain/default pair of (/Applications/Mail.app/Contents/Info, CFBundleVersion) does not exist
There weren't any messages stating they were fixed, so does anything need to be done about this or not?
Thank you for making this work under Catalina!
Perhaps 😅 It will depend on how much effort it's going to take to get it working on Catalina. Since I don't typically install beta's, I'll only be able to look at it when Catalina is officially released and I have installed it.