Its any GIF, so it might be Imagemagick but... I'm not quite sure.
Let me update the application to the latest commit to see what it does now.
It's been a bit, but I've come back to my fileownership plugin now that the PR it was depending on has been committed.
Okay, a long time after.
This is a two step process. The first triggers off of the filter:uploadStored. This is done because part of what I want to collect and store are the mime type of the file and its size. There are also three permutations of the filename that we want to hold on to. This information is only available as part the file upload that happens when you attach the file.
The second step fires on the action:post.save - this exists for one main reason. If you delete a file from your message, nothing ( obvious anyway ) clean up after that. So this post process checks the message body at save time, compares it to the saved data from step 1 and cleans up any deleted files.
On to the curiousities. When you look at the body content on save, you''ll see
The 0 is the user id #, followed by a timestamp, then the filename. The filename and extension portion match the original file as uploaded. This is followed by the relative url to the version of the image that is posted inline in the forum. Notice that the timestamps do not match and the file has been downcased.
When you click on the image when displayed, you'll load up /assets/uploads/files/1530309721776-filename.png
So why this post? Those timestamps not matching is a little irksome. Is this on purpose? If so, why, exactly?
I think the timestamp on the right is generated client side and the one in the url is generated server side when the file is saved so that's why they are different.
As for file ownership we have this in core now so you might not even need the plugin now. The uploads of a user are stored in a sorted set and can be viewed at
A cursory examination says no - but I need to dig a little more to be sure and then I think I need to stare at the results for a bit to see if it is better to plugin or PR for the extra bits I use that do not appear to be present here.
Also this looks like it has some of the deficiencies my initial draft had so I probably will end up doing both.
I need to churn on this for a bit.
So I have looked at this in greater detail and here are the problems
1 I see.
1 These are from the perspective of the problem I think I am trying to solve, aside from the couple I saw that are duplicates of issues I created in my own efforts.