-v3.3.7.
-Clean up config.php comments.
-Delete "SUPPORTED_FORMAT_INFORMATION.txt" development work file.
-Finish updating and adding support to the list of supported formats using the latest ffmpeg build process.
-Added support for ~357 file formats. The total of supported formats is now up to 445. (!!!)
-Update INSTALLATION_INSTRUCTIONS.txt to reflect the ffmpeg build-from-source procedure.
-Create DOCKER_BUILD_INSTRUCTIONS.txt for me to remember how to build docker images.
-I typically develop this stuff on VMware with installed locally dependencies.
-Update Dockerfile with the latest ImageMagick and FFMPEG build process.
-Fix Docker build process, update Docker Hub.
-v3.3.6.
-Special thanks to:
Ask Ubuntu User: Lucas Walter
https://askubuntu.com/questions/1127260/imagemagick-convert-not-allowedhttps://askubuntu.com/users/27302/lucas-walter
# Open the file
sudo nano /etc/ImageMagick-6/policy.xml
# find and edit the line
<policy domain="coder" rights="none" pattern="PDF" />
# to :
<policy domain="coder" rights="read|write" pattern="PDF" />
-The above code will allow pre-installed versions to convert pdf files as images in addition to documents and OCR.
-Added CBR and CBZ support.
-They are just zip files full of jpeg images.
-We treat them as .zip files, but we use 7z to extract them because zip doesn't work for some reason.
-After they are converted to a proper archive we can convert them further.
-It could be possible to improve quality of the jpegs by creating a dedicated convertComics() function with direct output formats.
-Can we get the comic community to show the project some love to get this done? ;)
-Update the installation instructioins to allow PDF conversions as images.
-v1.5.
-Add additional text to index files.
-"This is a command line application! Please open a terminal, navigate to this directory, and submit commands to ScanCore.php!"
-Fix potential infinite loop bug in chunking.
-Improve optimization by reducing the amount of exposed logic, especially in scanning logic.
-Fix indentation of code blocks.
-v1.5.
-Add additional text to index files.
-"This is a command line application! Please open a terminal, navigate to this directory, and submit commands to ScanCore.php!"
-Fix potential infinite loop bug in chunking.
-Improve optimization by reducing the amount of exposed logic, especially in scanning logic.
-Fix indentation of code blocks.
-v1.5.
-Add additional text to index files.
-"This is a command line application! Please open a terminal, navigate to this directory, and submit commands to ScanCore.php!"
-Fix potential infinite loop bug in chunking.
-Improve optimization by reducing the amount of exposed logic, especially in scanning logic.
-Fix indentation of code blocks.
-v1.5.
-Add additional text to index files.
-"This is a command line application! Please open a terminal, navigate to this directory, and submit commands to ScanCore.php!"
-Fix potential infinite loop bug in chunking.
-Improve optimization by reducing the amount of exposed logic, especially in scanning logic.
-Fix indentation of code blocks.
-v1.5.
-Add additional text to index files.
-"This is a command line application! Please open a terminal, navigate to this directory, and submit commands to ScanCore.php!"
-Fix potential infinite loop bug in chunking.
-Improve optimization by reducing the amount of exposed logic, especially in scanning logic.
-Fix indentation of code blocks.
-v3.3.5.
-Continue ScanCore refactor.
-v1.1.
-Added support for -ud argument, which will Update Definitions!
-This gets defs by default from the ScanCore_Definitions repository.
-Defs are now broken into subscriptions.
-Subscriptions include Virus, Malare, & PUP.
-Each client will download only the subscriptions that are specified in config.php.
-The client will then compile its subscribed definitions into a "combined" definitions file locally.
-This will give users the ability to control which definitions they install, controlling what ScanCore will detect.
-Because ScanCore is portable, that means you can set different scanners to do different things.
-Need to work on a way to automate definition updates. Every scan, daily, weekly, bi-weekly, or monthly.
-v1.2.
-Add 'raw' and 'git' update methods. So if you can't get git (hehe) then you can still perform updates.
-Use globals $EOL, $SEP for PHP_EOL and DIRECTORY_SEPARATOR, as intended.
-Add -version argument for displaying useful info.
-Info like the source for def & app updates, the original repo, subscribed defs, version, last update, ect...
-Added a plug to the LICENSE INFORMATION section of the header text.
-// / BSD or MIT licensing is available. Reach out to @zelon88 for more information.
-Support your favorite developer by buying a trophy license for your favorite open-source software.
-Imrove comments / formatting in ScanCore_Config.php. Add default values, labels, better descriptions for everything.
-Add -help, -h and -version, -ver arguments for showing version & help, respectively.
-Add -configfile, -cf argument for selecting which configuration file to use.
-Now one scanner can rule them all!
-Instead of installing multiple scanners to scan different subscriptions, just have different config files.
-Revise output. Make more consistent, easier to read.
-Remove unused $LogFile and $LogDir references from core.
-Remove unused $LogFile and $LogDir references from config.
-ReportsDir is now the only location for logs. Logs & reports are officially the same thing.
-The -logfile & -lf arguments are now undocumented aliases of the -reportfile and -rf arguments.
-I plan on removing -logfile & -lf arguments in the future.
-What will probably happen is I'll forget I said that and wind up re-documenting these undocumented aliases in the future.
-v1.3 - Add -defsfile, -df argument. Reorder logic & functions. Clean up output. Improve help, version output.
-Add -defsfile & -df argument for specifying a definition file by command line.
-Now ScanCore is completely modular. It can be run against any defs file and any config file, so automating tasks is easy & granular.
-Add config file last modified, which core file, and which defs file to version output.
-Add new commands to help output.
-Will update the docs with proper error descriptions and instructions once the error numbers stop chaning.
-Thanks to @bit-man for submitting a fix for rar file support on RPI & non x86-64 platforms.
-Evaluate how we're using ffmpeg, per issue #59, but also effects issue #29.
-Remove M4P support.
-Omg there's even a typo... file format oog should be ogg.
-Change ffmpeg build process to build from scratch.
-Inprove capability & file support. Considerably.
-Increase duration and difficulty of install process. Considerably.
-Start by reverse engineering https://raw.githubusercontent.com/markus-perl/ffmpeg-build-script/master/web-install-gpl-and-non-free.sh.
-Build process complete as of 3/25/2024.
-Now we need to incorporate the new ffmpeg functionality into core.
-Then we can update the build / install process & documentation.
-Add the selected GUI, Language, and Color to error or verbose success messages to enhance debugging potential.
-Update ERROR_DESCRIPTIONS.txt with the new information.
-This version is just the start of an overhaul to media file processing.
-Add some temporary files to DOCS for helping me track my ffmpeg overhaul progress.
-v3.3.5.
-Continue ScanCore refactor.
-v1.1.
-Added support for -ud argument, which will Update Definitions!
-This gets defs by default from the ScanCore_Definitions repository.
-Defs are now broken into subscriptions.
-Subscriptions include Virus, Malare, & PUP.
-Each client will download only the subscriptions that are specified in config.php.
-The client will then compile its subscribed definitions into a "combined" definitions file locally.
-This will give users the ability to control which definitions they install, controlling what ScanCore will detect.
-Because ScanCore is portable, that means you can set different scanners to do different things.
-Need to work on a way to automate definition updates. Every scan, daily, weekly, bi-weekly, or monthly.
-v1.2.
-Add 'raw' and 'git' update methods. So if you can't get git (hehe) then you can still perform updates.
-Use globals $EOL, $SEP for PHP_EOL and DIRECTORY_SEPARATOR, as intended.
-Add -version argument for displaying useful info.
-Info like the source for def & app updates, the original repo, subscribed defs, version, last update, ect...
-Added a plug to the LICENSE INFORMATION section of the header text.
-// / BSD or MIT licensing is available. Reach out to @zelon88 for more information.
-Support your favorite developer by buying a trophy license for your favorite open-source software.
-Imrove comments / formatting in ScanCore_Config.php. Add default values, labels, better descriptions for everything.
-Add -help, -h and -version, -ver arguments for showing version & help, respectively.
-Add -configfile, -cf argument for selecting which configuration file to use.
-Now one scanner can rule them all!
-Instead of installing multiple scanners to scan different subscriptions, just have different config files.
-Revise output. Make more consistent, easier to read.
-Remove unused $LogFile and $LogDir references from core.
-Remove unused $LogFile and $LogDir references from config.
-ReportsDir is now the only location for logs. Logs & reports are officially the same thing.
-The -logfile & -lf arguments are now undocumented aliases of the -reportfile and -rf arguments.
-I plan on removing -logfile & -lf arguments in the future.
-What will probably happen is I'll forget I said that and wind up re-documenting these undocumented aliases in the future.
-v1.3 - Add -defsfile, -df argument. Reorder logic & functions. Clean up output. Improve help, version output.
-Add -defsfile & -df argument for specifying a definition file by command line.
-Now ScanCore is completely modular. It can be run against any defs file and any config file, so automating tasks is easy & granular.
-Add config file last modified, which core file, and which defs file to version output.
-Add new commands to help output.
-Will update the docs with proper error descriptions and instructions once the error numbers stop chaning.
-Thanks to @bit-man for submitting a fix for rar file support on RPI & non x86-64 platforms.
-Evaluate how we're using ffmpeg, per issue #59, but also effects issue #29.
-Remove M4P support.
-Omg there's even a typo... file format oog should be ogg.
-Change ffmpeg build process to build from scratch.
-Inprove capability & file support. Considerably.
-Increase duration and difficulty of install process. Considerably.
-Start by reverse engineering https://raw.githubusercontent.com/markus-perl/ffmpeg-build-script/master/web-install-gpl-and-non-free.sh.
-Build process complete as of 3/25/2024.
-Now we need to incorporate the new ffmpeg functionality into core.
-Then we can update the build / install process & documentation.
-Add the selected GUI, Language, and Color to error or verbose success messages to enhance debugging potential.
-Update ERROR_DESCRIPTIONS.txt with the new information.
-This version is just the start of an overhaul to media file processing.
-Add some temporary files to DOCS for helping me track my ffmpeg overhaul progress.
-v3.3.4.
-Added missing loop in sanitizeStrings() function.
-Refactoring ScanCore to bring it up to the same level of code quality as the rest of the project.
-ScanCore to v1.0, Do away with defs versioning.
-Definitions can be versioned by date.
-Remove false positive for jquery 3.6 minified from defs.
-Pretty sure this is the 20th anniversary for the original PHP-AV codebase, which there is very litte left.
-Improve config.php by adding more variables to it.
-MemoryLimit, ChunkSize, Debug, Verbose.
-Make the file headers more consistent.
-Once the quality is up to par we will focus on adding features and capability.
-Specifically an auto-updater would be nice.
-Then maybe some automation tools for scraping IOCs and formatting them into the definitions file.
-Recursion is now disabled by default.
-This affects behaviour of scripts that use ScanCore because now you HAVE to specify if you want recursion or scans will fail.
-v3.3.4.
-Added missing loop in sanitizeStrings() function.
-Refactoring ScanCore to bring it up to the same level of code quality as the rest of the project.
-ScanCore to v1.0, Do away with defs versioning.
-Definitions can be versioned by date.
-Remove false positive for jquery 3.6 minified from defs.
-Pretty sure this is the 20th anniversary for the original PHP-AV codebase, which there is very litte left.
-Improve config.php by adding more variables to it.
-MemoryLimit, ChunkSize, Debug, Verbose.
-Make the file headers more consistent.
-Once the quality is up to par we will focus on adding features and capability.
-Specifically an auto-updater would be nice.
-Then maybe some automation tools for scraping IOCs and formatting them into the definitions file.
-Recursion is now disabled by default.
-This affects behaviour of scripts that use ScanCore because now you HAVE to specify if you want recursion or scans will fail.
-v3.3.2.
-Fix bug where the loading spinner would never disappear for archive operations.
-Update docker URL in installation instructions.
-Add victory and failure icons where the loading spinner goes for 5 seconds after a file operation.
-Add Wide GUI.
-Fix bug with GUI selection where the GET input was case sensitive, but the core was forcing it to be interpreted as lower case.
-Fix bug with GUI selection variables not being scoped properly.
-Make colors user selectable.
-Add missing div tag to convergGui2.html.
-I can't find any HTML erros in console anywhere. Yipee!!!
-Utilize POST and GET for language, GUI, and color inputs.
-Utilize the standardized sanitization procedure for these inputs.
-It was somewhat ad-hoc before, even though the global sanitized variables were already pre-prepared.
-v3.3.1.
-Move a bunch of files.
-Move versionInfo.php and config.php into the Resources folder.
-Create build folder.
-Move rc.local, rc.local.service, and a php.ini sample file in there that will be used for Docker installs.
-Move all resources into the UI\Default folder.
-Relieve the core of the logic of defining CSS, JS, and images for the UI pack. That's not very modular.
-Now the UI pack defines these in header.php.
-Resources folder is not a required part of a UI pack. So the core won't check for it,
-Although the core does define a relative path where the Resources folder, and JS, CSS, Images subfolders should go as a convinience.
-It is not required by the core to have these folders, or to organize your theme into them.
-Remove LICENSE file from the root of the repository, as this is also in the Documentation folder.
-Add a return value to cleanFiles() because I need one for the changes to verifyInstallation().
-Use the return value to make the variables $CleanedConvertLoc and $CleanedTempLoc meaningful by passing the return value to them.
-verifyInstallation() now checks config.php for $DeleteBuildEnvironment, and if true will delete the /Build folder.
-This is enabled by default to prevent attackers from using this to enumerate configuration information about the server or application.
-Improve documentation, formatting of styleCore.php for consistency/readability.
-Continue the long, ardous task of converting all the double quotes in convertGui2.php to single quotes.
-This will take a while, but I have done enough to be able to find/replace what I need.
-Remove Error 2-1 from ERROR_DESCRIPTIONS.txt because it is no longer generated by the application.
-Move supported formats to config.php so server administrators can control their own fate, if they dare.
-Default values are also listed in config.php if needed.
-Add support to remove the build environment & "development docs" that give away version info like readme.md & changelog.txt.
-Changed default color scheme from grey to blue because grey is especially gross looking to me right now.
-Fix bug where font defined in config.php was not propagating to styleCore.php.
-Fix bug with user virus scans when using ClamAV to scan an individual file for viruses.
-The scan would complete, but it would utilize both ScanCore and ClamAV when all the user asked for was ClamAV.
-Move default installation location to /DATA/HRConvert2 to make it consistent for Docker implementation.
-Start working on official Docker version.
-Minor update to installation instructions, consistency, consolidate steps.
-Added icon files to the Resources directory to be used in a future update.
-v3.3.1.
-Move a bunch of files.
-Move versionInfo.php and config.php into the Resources folder.
-Create build folder.
-Move rc.local, rc.local.service, and a php.ini sample file in there that will be used for Docker installs.
-Move all resources into the UI\Default folder.
-Relieve the core of the logic of defining CSS, JS, and images for the UI pack. That's not very modular.
-Now the UI pack defines these in header.php.
-Resources folder is not a required part of a UI pack. So the core won't check for it,
-Although the core does define a relative path where the Resources folder, and JS, CSS, Images subfolders should go as a convinience.
-It is not required by the core to have these folders, or to organize your theme into them.
-Remove LICENSE file from the root of the repository, as this is also in the Documentation folder.
-Add a return value to cleanFiles() because I need one for the changes to verifyInstallation().
-Use the return value to make the variables $CleanedConvertLoc and $CleanedTempLoc meaningful by passing the return value to them.
-verifyInstallation() now checks config.php for $DeleteBuildEnvironment, and if true will delete the /Build folder.
-This is enabled by default to prevent attackers from using this to enumerate configuration information about the server or application.
-Improve documentation, formatting of styleCore.php for consistency/readability.
-Continue the long, ardous task of converting all the double quotes in convertGui2.php to single quotes.
-This will take a while, but I have done enough to be able to find/replace what I need.
-Remove Error 2-1 from ERROR_DESCRIPTIONS.txt because it is no longer generated by the application.
-Move supported formats to config.php so server administrators can control their own fate, if they dare.
-Default values are also listed in config.php if needed.
-Add support to remove the build environment & "development docs" that give away version info like readme.md & changelog.txt.
-Changed default color scheme from grey to blue because grey is especially gross looking to me right now.
-Fix bug where font defined in config.php was not propagating to styleCore.php.
-Fix bug with user virus scans when using ClamAV to scan an individual file for viruses.
-The scan would complete, but it would utilize both ScanCore and ClamAV when all the user asked for was ClamAV.
-Move default installation location to /DATA/HRConvert2 to make it consistent for Docker implementation.
-Start working on official Docker version.
-Minor update to installation instructions, consistency, consolidate steps.
-Added icon files to the Resources directory to be used in a future update.
-v3.3.1.
-Move a bunch of files.
-Move versionInfo.php and config.php into the Resources folder.
-Create build folder.
-Move rc.local, rc.local.service, and a php.ini sample file in there that will be used for Docker installs.
-Move all resources into the UI\Default folder.
-Relieve the core of the logic of defining CSS, JS, and images for the UI pack. That's not very modular.
-Now the UI pack defines these in header.php.
-Resources folder is not a required part of a UI pack. So the core won't check for it,
-Although the core does define a relative path where the Resources folder, and JS, CSS, Images subfolders should go as a convinience.
-It is not required by the core to have these folders, or to organize your theme into them.
-Remove LICENSE file from the root of the repository, as this is also in the Documentation folder.
-Add a return value to cleanFiles() because I need one for the changes to verifyInstallation().
-Use the return value to make the variables $CleanedConvertLoc and $CleanedTempLoc meaningful by passing the return value to them.
-verifyInstallation() now checks config.php for $DeleteBuildEnvironment, and if true will delete the /Build folder.
-This is enabled by default to prevent attackers from using this to enumerate configuration information about the server or application.
-Improve documentation, formatting of styleCore.php for consistency/readability.
-Continue the long, ardous task of converting all the double quotes in convertGui2.php to single quotes.
-This will take a while, but I have done enough to be able to find/replace what I need.
-Remove Error 2-1 from ERROR_DESCRIPTIONS.txt because it is no longer generated by the application.
-Move supported formats to config.php so server administrators can control their own fate, if they dare.
-Default values are also listed in config.php if needed.
-Add support to remove the build environment & "development docs" that give away version info like readme.md & changelog.txt.
-Changed default color scheme from grey to blue because grey is especially gross looking to me right now.
-Fix bug where font defined in config.php was not propagating to styleCore.php.
-Fix bug with user virus scans when using ClamAV to scan an individual file for viruses.
-The scan would complete, but it would utilize both ScanCore and ClamAV when all the user asked for was ClamAV.
-Move default installation location to /DATA/HRConvert2 to make it consistent for Docker implementation.
-Start working on official Docker version.
-Minor update to installation instructions, consistency, consolidate steps.
-Added icon files to the Resources directory to be used in a future update.
-v3.3.1.
-Move a bunch of files.
-Move versionInfo.php and config.php into the Resources folder.
-Create build folder.
-Move rc.local, rc.local.service, and a php.ini sample file in there that will be used for Docker installs.
-Move all resources into the UI\Default folder.
-Relieve the core of the logic of defining CSS, JS, and images for the UI pack. That's not very modular.
-Now the UI pack defines these in header.php.
-Resources folder is not a required part of a UI pack. So the core won't check for it,
-Although the core does define a relative path where the Resources folder, and JS, CSS, Images subfolders should go as a convinience.
-It is not required by the core to have these folders, or to organize your theme into them.
-Remove LICENSE file from the root of the repository, as this is also in the Documentation folder.
-Add a return value to cleanFiles() because I need one for the changes to verifyInstallation().
-Use the return value to make the variables $CleanedConvertLoc and $CleanedTempLoc meaningful by passing the return value to them.
-verifyInstallation() now checks config.php for $DeleteBuildEnvironment, and if true will delete the /Build folder.
-This is enabled by default to prevent attackers from using this to enumerate configuration information about the server or application.
-Improve documentation, formatting of styleCore.php for consistency/readability.
-Continue the long, ardous task of converting all the double quotes in convertGui2.php to single quotes.
-This will take a while, but I have done enough to be able to find/replace what I need.
-Remove Error 2-1 from ERROR_DESCRIPTIONS.txt because it is no longer generated by the application.
-Move supported formats to config.php so server administrators can control their own fate, if they dare.
-Default values are also listed in config.php if needed.
-Add support to remove the build environment & "development docs" that give away version info like readme.md & changelog.txt.
-Changed default color scheme from grey to blue because grey is especially gross looking to me right now.
-Fix bug where font defined in config.php was not propagating to styleCore.php.
-Fix bug with user virus scans when using ClamAV to scan an individual file for viruses.
-The scan would complete, but it would utilize both ScanCore and ClamAV when all the user asked for was ClamAV.
-Move default installation location to /DATA/HRConvert2 to make it consistent for Docker implementation.
-Start working on official Docker version.
-Minor update to installation instructions, consistency, consolidate steps.
-Added icon files to the Resources directory to be used in a future update.
-v3.3.1.
-Move a bunch of files.
-Move versionInfo.php and config.php into the Resources folder.
-Create build folder.
-Move rc.local, rc.local.service, and a php.ini sample file in there that will be used for Docker installs.
-Move all resources into the UI\Default folder.
-Relieve the core of the logic of defining CSS, JS, and images for the UI pack. That's not very modular.
-Now the UI pack defines these in header.php.
-Resources folder is not a required part of a UI pack. So the core won't check for it,
-Although the core does define a relative path where the Resources folder, and JS, CSS, Images subfolders should go as a convinience.
-It is not required by the core to have these folders, or to organize your theme into them.
-Remove LICENSE file from the root of the repository, as this is also in the Documentation folder.
-Add a return value to cleanFiles() because I need one for the changes to verifyInstallation().
-Use the return value to make the variables $CleanedConvertLoc and $CleanedTempLoc meaningful by passing the return value to them.
-verifyInstallation() now checks config.php for $DeleteBuildEnvironment, and if true will delete the /Build folder.
-This is enabled by default to prevent attackers from using this to enumerate configuration information about the server or application.
-Improve documentation, formatting of styleCore.php for consistency/readability.
-Continue the long, ardous task of converting all the double quotes in convertGui2.php to single quotes.
-This will take a while, but I have done enough to be able to find/replace what I need.
-Remove Error 2-1 from ERROR_DESCRIPTIONS.txt because it is no longer generated by the application.
-Move supported formats to config.php so server administrators can control their own fate, if they dare.
-Default values are also listed in config.php if needed.
-Add support to remove the build environment & "development docs" that give away version info like readme.md & changelog.txt.
-Changed default color scheme from grey to blue because grey is especially gross looking to me right now.
-Fix bug where font defined in config.php was not propagating to styleCore.php.
-Fix bug with user virus scans when using ClamAV to scan an individual file for viruses.
-The scan would complete, but it would utilize both ScanCore and ClamAV when all the user asked for was ClamAV.
-Move default installation location to /DATA/HRConvert2 to make it consistent for Docker implementation.
-Start working on official Docker version.
-Minor update to installation instructions, consistency, consolidate steps.
-Added icon files to the Resources directory to be used in a future update.
-v3.3.
-Update README.md.
-Remove mention of Docker repo, as it is not maintained.
-I appreciate all of the community feedback at https://github.com/zelon88/HRConvert2/issues/46.
-I will come up with an official Docker solution.
-Fix bug in cleanFiles() function that was causing problems with archive conversions & preventing cleanup.
-Flip button CSS, so buttons don't appear quite so... upside-down... all the time.
-Remove un-needed (redundant) button related CSS from HRConvert2.css.
-Increase default DeleteThreshold in config.php from 30 to 60 minutes.
-Remove un-needed extension being passed to the convertDrawings() function.
-Fix drawings not returning a valid filename.
-Conversions would complete, but not download.
-Tested ImageMagick support for SVG, could not get it to work.
-Tested Dia support for converting things into PNG, BMP, and JPG. Got PNG to work, so added support.
-v3.2.
-Implement dynamic supported format list in UI1 (english language pack only).
-The UI will now only display supported formats that are backed by logic.
-The lists of supported formats contained within the UI no longer need to be updated.
-The lists of supported formats are now entirely derived by logic.
-Still need to add OCR related formats when that refactor takes place.
-Need to keep going on UI2.
-Added version verification to convertCore.php.
-The logic is split between verifyInstallation() and verifyGlobals().
-verifyInstallation() verifies versionInfo.php and loads it.
-verifyGlobals() performs the actual version check.
-Modified ERROR_DESCRIPTIONS.txt to match these changes.
-Added ERROR 24000 when unable to load the versionInfo.php file.
-Updated ERROR 11.
-Added information about the new version check.
-Continue changing double quotes in HTML to single quotes.
-Header is done.
-UI1 is done.
-Footer is done.
-Move paths for scripts, stylesheets, javascript & favicon to verifyGlobals().
-The name of the archive when a user selects to compress all files now reflects $ApplicationName variable.
-This was previously hard-coded to "HRConvert2_Files-<DATE>".
-Added mysteriously missing bitrate UI features.
-Adjust the list of supported formats to be more reliable, predictible, maintainable.
-Only set FormatArray variables for the SupportedConversionTypes enabled in config.php.
-Now the arrays aren't even populated unless the conversion type is enabled.
-Move "The user selected..." text to the beginning of the upload and download functions.
-Prevent the upload of unsupported file formats.
-Prevent the download of unsupported file formats.
-Add ERROR 3004 "Unsupported File Format" to ERROR_DESCRIPTIONS.txt.
-Copy ERROR 6001.
-Add extra line of detail to error 6001: "The file that causes this error will be skipped."
-OCR operations now require that both OCR and Document conversion types are allowed in config.php.
-Stream conversion operations now require that both Stream and Audio conversion types are allowed in config.php.
-Add a $GUIDirection variable to languageStrings.php that determines the reading order of the UI.
-Can either be "ltr" for "left to right" or "rtl" for "right to left".
-A default is defined in verifyGlobals() but this is overridden later by languageStrings.php.
-This should make migrating old language packs easier.
-Add delete functionality to core logic section & UI.
-Add ERROR 24, Delete Failed.
-Disable loading spinner on error return in UI2.
-Before the spinner would remain on error.
-v3.1.9.9.
-Standardize logic format across all UI elements.
-Header. UI1, UI2, Footer.
-They all declare that they are loaded and error when the core is not loaded.
-The rest of the error logic is contained within languageStrings.php.
-Per language pack, the logic is only contained within the code once. Instead of once for each UI file.
-Start moving UI1 text to languageStrings.php.
-Adjust the format of languageStrings.php.
-Add icon for future delete functionality.
-https://www.iconarchive.com/show/koloria-icons-by-graphicrating.1.html
-Update subtitle icon.
-https://www.iconarchive.com/show/koloria-icons-by-graphicrating.1.html
-v3.1.2.
-Improve Installation_Instructions.txt.
-Revise 3D Model support, Vector file support, Image support, Iso support.
-Improve securePath function comments, add URL support.
-Trying to automate the translation into other languages.
-Add rc-local.service template file for systems where it is missing and needs to be installed.
-v3.1.1.
-Add code to prevent stream related UI elements from displaying when the $AllowStreams config entry is set to FALSE.
-Update JQuery from v3.6.0.min to v3.6.3.min.
-Checked for Dropzone.js updates, already at latest version.
-Minor comment changes in config.php.
-Translate index files of language packs into the language of the pack.
-Add comments section containing file & application information to GUI-related files.
-Clean up array declarations, improve readibility, scalability, debugging.
-Vastly improve image support for both input and output operations.
-Added support for Heic files.
-Added support for several misc image files.
-Bumped format support count to 79 file formats.
-Adjust icons for media, videos to be unique from streams.
-Add mkisofs as a dependency, fix iso creation.
-Revise verbiage of UI elements.
-v3.1.1.
-Add code to prevent stream related UI elements from displaying when the $AllowStreams config entry is set to FALSE.
-Update JQuery from v3.6.0.min to v3.6.3.min.
-Checked for Dropzone.js updates, already at latest version.
-Minor comment changes in config.php.
-Translate index files of language packs into the language of the pack.
-Add comments section containing file & application information to GUI-related files.
-Clean up array declarations, improve readibility, scalability, debugging.
-Vastly improve image support for both input and output operations.
-Added support for Heic files.
-Added support for several misc image files.
-Bumped format support count to 79 file formats.
-Adjust icons for media, videos to be unique from streams.
-Add mkisofs as a dependency, fix iso creation.
-Revise verbiage of UI elements.
-v3.1.1.
-Add code to prevent stream related UI elements from displaying when the $AllowStreams config entry is set to FALSE.
-Update JQuery from v3.6.0.min to v3.6.3.min.
-Checked for Dropzone.js updates, already at latest version.
-Minor comment changes in config.php.
-Translate index files of language packs into the language of the pack.
-Add comments section containing file & application information to GUI-related files.
-Clean up array declarations, improve readibility, scalability, debugging.
-Vastly improve image support for both input and output operations.
-Added support for Heic files.
-Added support for several misc image files.
-Bumped format support count to 79 file formats.
-Adjust icons for media, videos to be unique from streams.
-Add mkisofs as a dependency, fix iso creation.
-Revise verbiage of UI elements.
-Added newest features to more language packs.
-Arabic has the latest features.
-Bengali has the latest features.
-German has the latest features.
-English has the latest features.
-Spanish has the latest features.
-French has the latest features.
-Still need to add latest features to...
-Hindi,
-Italian,
-Korean,
-Portuguese,
-Russian,
-Ukranian,
-& Chinese.
-Adjusted ScanCore-config.php so that the Reports directory is the Logs directory.
-It was creating empty directories that can be abused to view the servers document root depending on server config.
-If your HRConvert2 installation directory contains a subdirectory called "Reports"; it should be manually deleted.
-Added missing Presentation conversion buttons.
-v2.8.9.
-Added a "Share File" button to convertGui2.php for creating & copying a link to the file.
-Allows users to generate shareable URLs.
-Added $AllowUserShare in conig.php for disabling the share file feature.
-Currently the Share file feature is only avaialble in the English language pack.
-I expect to have all the language packs caught up in the next update.
-v2.8.8.
-Fixed the way User ScanCore Scans are called.
-Reworked the way Scan Errors & Scan Complete is determined.
-Revised logic to avoid errors during normal operation.
-Both User Scan Methods successfully detected the Eicar test virus sample.
-v2.8.4.
-Fixed an undefined variable warning in the virusScan() function.
-Cleaned up memory deallocation routine in the virusScan() function.
-Only enable file related operations if valid tokens have been supplied.
-Improved sanitization integrity.
-Combined the functionality of HRScan2 into HRConvert2.
-Now users can select to scan uploaded files for viruses on-demand using ClamAV or zelon88/ScanCore.
-The codebases for both are "sisters" so maintainence has always been a pain.
-Whenever one gets updated a lot of the code needed to be modified and merged into the other one.
-Considering the major refactor that just took place with HRConvert2 (which took almmost 38 caffene fueled hours) I figure we would merge functionality instead of refactoring another core.
-These features can be disabled via config.php.
-Some administrators won't want users uploading potentially malicious files, which makes sense.
-If $UserVirusScanning is enabled in config.php the HRScan2 features will be savailable.
-If $UserVirusScanning is not enabled in config.php the HRScan2 features will be unavailable.
-This behaviour change requires some changes to the way regular virus scanning is performed.
-If $UserVirusScanning is enabled we must disable regular virus scanning during the file upload phase.
-Note that all other regular virus scan operations are still enforced.
-Meaning that if a user uploads a file that is infected, they will still NOT be allowed to perform download, conversion, archive, or OCR operations on them.
-They WILL be allowed to scan the file using User Virus Scan options.
-Also if a normal virus scan detects a malicious file while $AllowUserVirusScan is enabled, the file WILL NOT be immediately deleted.
-It will be allowed to remain until regular cleanup activities remove it (after the $DeleteThreshold has passed).
-Added color specific down arrow buttons to the GUI.
-Added Download File button to convertGui2.php page.
-Now you can redownload any file in the HRConvert2 scratch space.
-Added Scan File & Scan All buttons to convertGui2.php page.
-Added config entry for adjusting the backround color of the GUI.
-Added config entry for adjusting the loading spinner style.
-Added 6 spinners for each color scheme (24 spinners total).
-Can now specify your own spinner in config.php.
-Refactored convertGui2.php file for English & Arabic so far.
-Need to continue doing the rest.
-Only English & Arabic language packs have support for the new API features related to User Virus Scans.
-Updated ERROR_DESCIPTIONS.txt with the latest errors related to virus scanning.
-Fixed dropdown boxes showing reversed in Arabic language pack.
-Made dropdown arrow colors match the color scheme being used.
-v2.8.3.
-Fixed Dropzone box translation not happening after updating dropzone to latest version.
-Reodered some error numbers.
-Finished adding errors and descriptions to ERROR_DESCRIPTIONS.txt.
-Took some updated screenshots.
-Saved pending changes to UI docs that should have been uploaded yesterday.
-Updated Slack Team link in README.md.
-v2.8.2.
-"Polishing the edges" of the repo, so to speak.
-Cleaning up directory structure.
-Added Documentation directory.
-Moved Documentation to the documentation directory.
-Added ERROR_DESCRIPTIONS with detailed descriptions of every error message produced in the logs.
-Still need to add more messages.
-Renamed How_To_Install_HRConvert.txt to INSTALLATION_INSTRUCTIONS.txt & moved to Documentation directory.
-Moved ICON_CREDITS.txt to Documentation directory.
-Cleaned up the comment intro section to all PHP files to have the same basic formatting & structure.
-Polish the README some more.
-Make logs respect the $ApplicationName variable as soon as it becomes available.
-No more hardcoded "HRConvert2" in log entries.
-Moved styleCore.php to Resources directory, since it only contains 4 front-end related variables and no logic of its own.
-The goal is to cleanup the root of the repo to make it more presentable & approacable for newbies.
-All the important files related to logic are in the root of the repo.
-Makes the repo more modular as well.
-Make $_GET['language'] codes language case-insensitive.
-Log files are now named after the $ApplicationName variable set in config.php rather than using HRConvert2 in the filename.
-Reordered some logic.
-Disable GUI compilation when responding to a file operation request.
-The front end doesn't use output from the core anyway.
-This clears the way to enable such functionality by controlling the when GUI elements are actually needed.
-No longer throws 404 errors when a file conversion fails.
-No longer opens compatible files in the browser but starts a download instead.
-No more HTML undefined errors when requesitng a download.
-Added a check to verifySessionHash() function to make sure the $Salts variables are formatted as strings.
-v2.8.
-Shortened some of the longer lines of code in convertCore.php.
-Fixed bugs during some operations when $VirusScan is set to TRUE in config.php.
-Update dropzone.js & dropone.css to latest release.
-Thinking about adding the option to scan with ClamAV & zelon88/ScanCore.
-This will effectively merge the zelon88/HRScan2 project into HRConvert2.
-Thinking about adding Pell editor (port from HRCloud2 & update) to enable real-time in browser document editing.
-Going to start working on the next feature release.
-Tick... Tock.
-v2.8.
-Shortened some of the longer lines of code in convertCore.php.
-Fixed bugs during some operations when $VirusScan is set to TRUE in config.php.
-Update dropzone.js & dropone.css to latest release.
-Thinking about adding the option to scan with ClamAV & zelon88/ScanCore.
-This will effectively merge the zelon88/HRScan2 project into HRConvert2.
-Thinking about adding Pell editor (port from HRCloud2 & update) to enable real-time in browser document editing.
-Going to start working on the next feature release.
-Tick... Tock.
-v2.8.
-Refactor the core.
-The original codebase was developed more than 4 years ago.
-The first unpublished experiments began in 2014.
-The "generation" of the HRConvert2 codebase until today was "Valkyrie".
-HonestRepair server side software comes in 3 generations.
-The first generation is unsafe to use. It is part of the "zelon88/HRToolkitTools" repo.
-It was called the "Genesis" engine because it was a proof-of-concept design.
-Hence the name "Genesis".
-The second generation is performant & safe to use but hard to maintain.
-It is called the "Valkyrie" engine because the runtime environment is "dynamically constructed".
-The "Valkyrie" in Norse mythology is any of a group of maidens who serves the god Odin.
-Valkyrie's were also the "Choosers of the slain" and decided who would die on the battlefield.
-Because the "Valkyrie" codebase is made up of one main core served by smaller cores that dynamically call dependencies.
-Hence the name "Valkyrie" is very fitting.
-The third and current generation is called "Diablo". It is secure, performant, & modular.
-"Diablo" is Spanish for Devil.
-The coding convention was introduced in the "Zelon88/HRCloud3" alpha repo and is currently under active development.
-If you're a major Cloud provider you should fear Diablo.
-Removes most core output except from log files or when logs cannot be reached.
-Uses a more consistent logging/error catching mechanism.
-Makes the core extremely modular and easy to work on.
-Adding new features is easier because logging and error functions are repeatable & consistent.
-Output is consistent.
-Logic flow is capable of withstanding non-fatal errors.
-Before we stopped execution for a lot more things.
-Logic behavior is more intuitive.
-Errors produced use incremental error numbers that can be easily adjusted or documented.
-Log generation happens earlier during execution, meaning more logs can be captured.
-More logs means problems are easier to identify & debug.
-Switching to a modern design will mean more interoperability of functions between applications.
-It becomes easier to apply simiilar patches to other products.
-I don't have to look at my old code anymore.
-Programmers grow. Programming styles change.
-I am a better programmer now than I was when I first wrote this.
-There will probably be bugs introduced and regressions but at least I'll enjoy working on the codebase again.
-This work needed to get done eventually anyway considering it will be needed for HRCloud3.
-Added $Verbose config entry for controlling the amount of logging performed.
-If $Verbose is set to TRUE every significant operation will create a log entry.
-If $Verbose is set to FALSE only errors will create a log entry.
-$VirusScan config entry now only accepts boolean values.
-Improve formatting of config.php file for readability.
-All conversions except archive conversions now receive 5 conversion attempts.
-Previously it was only for documents and the threshold was 10 attempts.
-Reworked the way the document conversion engine is started and verified.
-Removed a lot of unused variables.
-Started using the same capitalization scheme as HRCloud3 (Diablo style).
-Lower case first letter variables denote highly limited scope.
-Upper case first letter variables denote very wide (almost global) scope.
-I know that PHP takes care of memory cleanup, and I know how variable scope works in functions.
-I also don't care.
-Doing the capitalization scheme and manually NULL'ing + unsetting variables helps me keep track of variables.
-I came up with this scheme exactly because I kept seeing dead variables in my code and I wanted it to stop.
-This forces accountability for all variables and puts visiblity on most of them.
-So when one of them isn't used anywhere it kind of stands out.
-Refactored Javascript a tiny bit.
-Now the core will remember when you leave and come back for a short while.
-Added unique identifier for logs.
-Makes searching logs much easier because requests group together.
-Core now captures the stdout of it's dependencies.
-Writes to log if $Verbose is set to TRUE.
-Changed extraction behaviour for archive conversions.
-Archive conversions where the destination folder already exists will have the new contents ADDED to the original archive instead of replacing them.
-You can now build archives in this fashion, admittedly it is not for the faint of heart.
-Remove sanitizeCore.php.
-This has been replaced by the verifyGlobals() function in convertCore.php.
-This was a suggestion made about 5 years ago on Reddit. It finally happened!
-I worked on this commit for 30 hours straight with no sleep.
-With only one consecutive 90 minute break to take a phone call.
-Then I took a 3 hour nap and finished the rest, over the next 8 hours.
-I am recovering from a broken leg and surgery to fix it and I still have a couple more weeks to go.
-Send halp!
-v2.7.3.
-Remove winetrics dependency from installation instructions.
-Add gnuplot dependency to installation instructions.
-Consolidated some of the installation instructions.
-Added the ability to control button color via config.php.
-Set $ButtonStyles to one of the approved options listed in config.php.
-If the config entry is not defined a default will be used instead (grey).
-Supports RED, GREEN, BLUE, and GREY.
-Updated index.html files in subdirectories to the latest version from root directory.
-Moved the UI to the Languages subdirectory.
-Added French language UI.
-Added the ability to easily add more language packs.
-Added ability to control language display via $_GET request.
-Added ability to disable $_GET request language selection in config.php.
-Reworked the way the GUI is assembled to make it compatible with multiple language packs.
-v2.7.1
-HRConvert2 uses ImageMagick to support image conversions.
-I have gone through the list of supported image formats and added some easy to support formats to expand HRConvert2's capabilities.
-CRW
-CIN
-DCR
-DDS
-DIB
-FLIF
-GPLT
-NEF
-ORF
-ORA
-SCT
-SFW
-XCF
-XWD
-AVIF
-ICO
-Also added gnuplot to the list of dependencies (to support GPLT input files).
-Fixed some supported filetype checks.
-Clean up formatting of config.php.
-Clean up some mis-indented code blocks (brackets were correct).
-v2.7.
-Update documentation.
-Update installation docs to reflect latest PHP.
-Remove mySQL requirements.
-Remove 'odf' support, change to 'odt' support.
-Specifically define $URLEcho to fix undefined variable warnings.
-Added $ShowGUI config variable for determining whether to show a full or minimal GUI.
-Detects if the variable is set and manually defines $_GET['noGUI'].
-Has the same function as $_GET['noGUI'].
-If users don't have this variable set in their config.php file then a full GUI will be shown.
-HRConvert2 looks best when you use it in an iframe on your website.
-Fixed some if/while/foreach statements not having whitespace before the opening '('.
-Removed reference to $UserID in logs.
-Verified that all PDFWork is capable of functioning.
-Verified that all document conversions are capable of functioning.
-Reworked the way archives are extracted & compressed.
-Improved logging during dearchiving.
-Added $ApplicationName & $ApplicationTitle config entries in config.php.
-If these are not set; defaults are used instead.
-Upgraded to JQuery 3.6.0 from 3.3.1.
-Remove 3.3.1 & 3.1.0 legacy versions as they are no longer required.
-Added $ShowFinePrint config entry to config.php for showing or hiding the TOS & PP links.
-If this is not set; a default is used instead.
-Fixed noGUI mode so that the divs are centered & the produced HTML is valid.
-Cleaned up some sloppy assignments in dearch/rearch code.
-Move temporary archive location to ConvertDir from ConvertTempDir.
-Improved consistency of UI elements.
-Switched dearchive code from using the 7z e switch to the 7z x switch to preserve paths.
-Fixed a bug in rar archive output paths.
-Changed the rar archiving arguments from "rar a -ep " to "rar a -ep1 -r" to preserve folder structure.
-Verified that all extraction / rearchiving operations work.
-Remove $Thorough & $HighPerformanceAV from config.php as they were no longer applicable.
-Reworked the way sanitizeCore.php converts strings into arrays.
-Changed $VirusScan config entry default value from '1' to TRUE.
-The core will still recognize '1' as a valid entry to support legacy config files.
-Remove tar.bz2 option from archiveAll menu.
-Rework the way archiveAll feature is accomplished.
-Improve logging consistencies.
-Remove old iPhone code from index.html.
-This is easier to accomplish with screen size anyway.
-v1.2.
-Added support for .mov video files.
-Tweaked displayed options for .mp4 files.
-Added back and refresh buttons to gui2.
-Fix 256mb max filesize.
-Tweak dropzone settings.
-Now 10 files upload in parallel with no filesize limit.