Modifier: Find Replace
A couple of new categories for the site!
Today someone actually registered on the Tracker.BootBlock.co.uk site for the first time, and as a bonus, they even created a nicely detailed bug report.
So I began working on fixing the bug in FileSieve (specifically, a plugin) and instead got side-tracked and added a preset set of filters for removing invalid OS characters from filenames.
Next up will be to add low-level support for removing/replacing invalid characters rather than shoving it into a plugin, and fixing the reported bug.
Edit: The date grouping issue on this site doesn't look like it has been fully resolved.
Invalid Filename Editor
Invalid characters in filenames suck.
Any plugins in FileSieve that return an invalid character results in the file the plugin is working on being skipped due to a failure when combining paths together. This is a controlled failure, I suppose you could say, but it's a failure nonetheless.
Despite adding an Invalid Filename Editor to the previous version of FileSieve, I disabled it as I wasn't sure at which step invalid characters should be substituted. Well, due to a quirk/bug involving filenames as reported by a user, I had another go at getting this working again.
Substitution now happens before path combining occurs, which I'm not 100% sure is the correct location. More of a semantic thing, but I'd like to move it to another step - not easy to do as this occurs during a (project-wide) plugin that does not reference the main, parent application.
Wonky Path Handling: Fixed!
Finally got to the bottom of the issue that user was having with directory names in FileSieve.
Turns out it was due to a Modifier plugin affecting the entire path of items rather than just the path after the root destination.
FileSieve creates directories within a destination the user specifies, but the Find Replace modifier plugin was performing its modifications on the entire path, including the drive letter. There's absolutely no point to this (it was an oversight, originally - now corrected) as the destination already exists and cannot be modified (eg. changing case).
This user was using the Find Replace modifier in a really good way - replacing invalid characters with valid ones so FileSieve doesn't skip out on them. But using the previous (incorrect)
Oops. Now fixed; hopefully verified by the user himself as I've done a test build. A full release will be made shortly after verification.
While I was working with FileSieve anyway I also fixed some other stuff and re-instated the Invalid Filename Editor to replace any invalid characters encountered within filenames - a more consistent and low-level version of the Find Replace substitution method above.
Cores, Plugins, and Rewrites
What a frantic couple of hours.
A user - the same as the previous post(s) - reported another couple of issues involving FileSieve, audio tag data, and Windows path and file names.
The first being that any audio files with a genre with a slash character (which is invalid in a Windows path - when not used a path separator - or filename) wasn't having those slashes replaced with a valid delimiter. This was an easy fix as the slashes were correctly being replaced, but any files that had multiple genres weren't having a delimiter appended after each genre (with the last dangling delimiter being stripped off the end), so you'd end up with a genre of
The second issue involves the way Windows treats directory - and probably file - names that end in a full-stop or a full-stop and a space. To put it bluntly: it doesn't bloody well like it.
FileSieve creates a directory based on a file's audio tag data, such as (minus quotes)
Of course FileSieve doesn't see this ninja-change that happened internally within Windows and then chucks an error into the log saying that it couldn't find the file. That's because Windows stuck its D in our A.
Then I ran into an issue while beginning to debug the above path issue. Of course I did.
The (audio) Tag and (photo) EXIF plugins. They allow a mask to be set, such as
Except it doesn't. The file isn't actually renamed at all; the directory structure is created, but the filename is kept the same as the original.
This, as initial impressions appear, may be due to a core change made within FileSieve's processing. Plugins set a processed item's Path property independently of its Filename property. This means that plugins don't need a pile of additional logic to determine and set an item's path and filename. FileSieve's core will do that.
Unfortunately, it appears the Tag and EXIF plugins weren't updated to make use of this change and so treat both the path and file names as one property. Tomorrow, this changes.
Broken Chrome and Windows Re-installation
As rare as Windows (10) re-installations are these days, a fresh installation being immediately broken has happened at least twice now.
Some applications can't save their settings and Google Chrome now won't open most Google services due to
I'm supposed to be doing some major FileSieve work over the next few days!
Edit: More information on the Chrome issue.
But first, system information: Windows 10 x64 (Creator's Update), GeForce GTX 770, Skylake i7 6700K CPU, 32GB RAM; all updated drivers
The cert problem in Chrome is something I've seen a bit too often over the years; with no change in the OS environment, Chrome will start giving the
Microsoft Edge works without issues. For the first time - ever.
This is happening for YouTube, the Chrome Store; not sure if it's affecting non-Google sites as I haven't browsed many today. One difference, though, is Gmail works but its web-fonts(?) are blank. Uh, how do I show a screenshot in Markdown...
The vertical lines denote where I snipped the image to reduce its width.
The screenshot shows that various within-button icons are entirely missing, including the images displayed within each tab.
Additionally, the Hangouts Chrome extension won't sign-in.
Edit 2: Argh, re-installed Windows and everything works fine - except Chrome. It's now complaining with the same error above (seems it's when I restart Windows?), but thankfully I'm able to fix it via the following:
Alright, this messed-up Windows install is annoying me too much to continue. Time to re-install Windows 10 again to see if it'll actually work properly this time...
Edit: I couldn't find this info anywhere, although it tells you after you click the Delete everything option.
The answer is: it's up to you.
Windows will tell you that there's more than one drive installed and will ask you if you want to just format the drive Windows is installed on or format all drives.
Now you know.
Edit 2: Damn Windows installs fast. 6-8 minutes, maybe?
Alright, Windows itself installed extremely quickly but installing stuff like Visual Studio took forever. It's now all finally done.
There are various issues in FileSieve that need to be fixed before I can release 4.20, so I'll continue work on it tomorrow (a Monday) rather than jumping into it mid-day on a Sunday. The Method/Modifier settings not being loaded at the right time is extremely confusing so will need a huge amount of thought and debugging.
Rediscovered one of my software projects from the space-year 2011: Is Locked
It's a little program that allows you to drag and drop files into it and it'll tell you if those files are currently locked (either by another program or Windows itself). I made this for myself as I wanted to quickly know which of the multitude of files I was transferring via FTP were complete.
Any unlocked files can be copied or moved to the clipboard (via a true FileDrop drag operation; not just a textual representation of their filenames) ready to be pasted into an Explorer or whatever window.
Needs a little bit more polishing and then I'll kick it out there; I managed to resist redoing the GUI to be a more modern flat-style, otherwise it may not get released again.
There's so many projects that are on the verge of completion but I just haven't bothered sorting out that last couple of percent.
|FileSieve Settings Insanity
FileSieve Settings - Fixed!
Days and days to even work out why plugin settings weren't being set correctly and getting no-where, then this morning, within a couple of minutes of loading the project... it's fixed!
The issue was when a Profile was set, the Profile's active Method ("a method of sorting files") wasn't being initialised (which, among other things, passes the relevant settings on to the plugin). This doesn't make much sense as that's something that must have been happening previously otherwise it wouldn't work in the past. Was it broken all this time? Nineteen releases and no-one's mentioned it? Even I didn't realise?
That can't be right.
But, it's fixed, and I've created a new build and sent it to the user mentioned in previous posts to see if his original issues are fixed. If they are, then it'll be time to release 4.20 - a release all FileSieve users should update to.
Wondering if I should take a little break until I get the go ahead or if I should move this development blog over to the main domain...