HRConvert2/Documentation/CHANGELOG.txt
Justin Grimes d0b6fe8427
v3.1 - ScanCore to v0.9, PHP-AV v4.1.
-v3.1.
-ScanCore to v0.9, PHP-AV v4.1.
-Correct logging location, remove erroneous log directory created alongside ScanCore.
-Improve argument handling.
-Add $AllowStreams config entry to selectivly disable stream formats.
2023-01-04 23:52:13 -05:00

540 lines
23 KiB
Text

-----------------------------------------------------------------------------------
APPLICATION INFORMATION ...
HRConvert2, Copyright on 1/3/2023 by Justin Grimes, www.github.com/zelon88
LICENSE INFORMATION ...
This project is protected by the GNU GPLv3 Open-Source license.
https://www.gnu.org/licenses/gpl-3.0.html
APPLICATION INFORMATION ...
This application is designed to provide a web-interface for converting file formats
on a server for users of any web browser without authentication.
FILE INFORMATION
This file contains a list of itemized changes made in each iteration of the application.
HARDWARE REQUIREMENTS ...
This application requires at least a Raspberry Pi Model B+ or greater.
This application will run on just about any x86 or x64 computer.
DEPENDENCY REQUIREMENTS ...
This application requires Debian Linux (w/3rd Party audio license),
Apache 2.4, PHP 7+, LibreOffice, Unoconv, ClamAV, Tesseract, Rar, Unrar, Unzip,
7zipper, FFMPEG, PdfToText, Dia, PopplerUtils, MeshLab & ImageMagick.
<3 Open-Source
-----------------------------------------------------------------------------------
--------------------
COMMIT 1/4/2023
v3.1 - ScanCore to v0.9, PHP-AV v4.1.
-v3.1.
-ScanCore to v0.9, PHP-AV v4.1.
-Correct logging location, remove erroneous log directory created alongside ScanCore.
-Improve argument handling.
-Add $AllowStreams config entry to selectivly disable stream formats.
--------------------
COMMIT 1/3/2023
v3.0 - Fix syntax error, typo in config.
-v3.0.
-Fix syntax error.
-Improve config.php comments.
--------------------
COMMIT 1/3/2023
v2.9.8 & v2.9.9 - Merge pull request # 24 & 25.
-v2.9.8.
-Merge pull request # 24.
-"Added .mov to videoArray and created error"
-Pull request URL: https://github.com/zelon88/HRConvert2/pull/24.
-Commit URL: https://github.com/zelon88/HRConvert2/commit/cd83790bcddfbf8f97cfcefef019fede9395efdb
-Special thanks to author @HenriChabert.
-v2.9.9.
-Merge pull request # 24.
-"Add m3u8 stream support"
-Pull request URL: https://github.com/zelon88/HRConvert2/pull/25.
-Commit URL: https://github.com/zelon88/HRConvert2/commit/6bf64dd03caf2874075209f0a7145003e1927722
-Special thanks to author @MangoTornado.
-Updated all language packs with Stream support.
--------------------
COMMIT 1/3/2023
v2.9.7 - Merge pull request # 23.
-v2.9.7.
-Merge pull request # 23.
-"Replace spaces with _ in filename"
-Pull request URL: https://github.com/zelon88/HRConvert2/pull/23.
-Commit URL: https://github.com/zelon88/HRConvert2/commit/24403d8518308f8c4d303af1e9acd7945f877bd5
-Special thanks to author @HenriChabert.
--------------------
COMMIT 1/3/2023
v2.9.6 - Fix error in documentation.
-v2.9.6.
-Fix error in documentation.
--------------------
COMMIT 7/18/2022
v2.9.5 - Fix bug in OCR where non-PDF conversions would fail.
-v2.9.5.
-There was a bug in convertCore.php that lead to issue found by Github user @dwaan.
-https://github.com/dwaaan/HRConvert2-Docker/issues/6
--------------------
COMMIT 4/28/2022
v2.9.4 - Add CREATING_LANGUAGE_PACKS.txt to Documents directory.
-v2.9.4.
-Add CREATING_LANGUAGE_PACKS.txt to Documents directory.
--------------------
COMMIT 4/28/2022
v2.9.3 - Update docs, ERRO_DESCRIPTIONS.txt, add application information header to important files.
-v2.9.3.
-Improve documentation.
--------------------
COMMIT 4/28/2022
v2.9.2 - Finish adding latest core features to langauge packs.
-v2.9.2.
-Added newest features to more language packs.
-Portuguese,
-Russian,
-Ukranian,
-& Chinese.
--------------------
COMMIT 4/26/2022
v2.9.1 - Continue adding latest core features to langauge packs.
-v2.9.1.
-Added newest features to more language packs.
-Hindu has the latest features.
-Italian has the latest features.
-Korean has the latest features.
-Still need to add latest features to...
-Portuguese,
-Russian,
-Ukranian,
-& Chinese.
--------------------
COMMIT 4/23/2022
v2.9 - Continue adding latest core features to language packs.
-v2.9.
-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.
--------------------
COMMIT 4/21/2022
v2.8.9 - Added Share File button, option to disable in config.php.
-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.
--------------------
COMMIT 4/20/2022
v2.8.8 - Discovered bugs in ScanCore routine, improve User Virus Scanning.
-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.
--------------------
COMMIT 4/20/2022
v2.8.7 - Added User Virus Scanning support, download button, loading spinner options & more.
-v2.8.7.
-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.
--------------------
COMMIT 4/19/2022
v2.8.3 - Reordered some error numbers. Finished ERROR_DESCRIPTIONS.txt.
-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.
--------------------
COMMIT - 4/17/2022
v2.8.2 - Adding documentation, polishing edges.
-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.
--------------------
COMMIT - 4/17/2022
v2.8.1 - Update DropZone version, update stylesheet, fix bugs.
-v2.8.1.
-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.
--------------------
COMMIT - 4/14/2022
v2.8 - Major convertCore.php refactor. Complete modular redesign. Same functionality, same look, more predictable & consistent. Easier to maintain.
-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!
--------------------
COMMIT - 4/13/2022
v2.7.5 - Added 7 language translations, fixed compression bug.
-v2.7.5.
-Added code to each UI in Languages to prevent execution without the core having been loaded already.
-Fixed a bug when creating archives in .zip and .7z format.
-Touched up README.md.
-Added Russian language translation (ru).
-Added Ukranian language translation (uk).
-Added Bengali language translation (bn).
-Added German language translation (de).
-Added Korean language translation (ko).
-Added Italian language translation (it).
-Added Portugese language translation (pt).
--------------------
COMMIT - 4/13/2022
v2.7.4 - Added 4 language translations.
-v2.7.4.
-Switch from Microsoft Locale Codes to ISO 639-1 language standard.
-Updated English, French translations (en & fr).
-Added Spanish language translation (es).
-Added Chinese (Simplified) language translation (zh).
-Added Hindi language translation (hi).
-Added Arabic language translation (ar).
-Added a bunch of updated screenshots.
--------------------
COMMIT - 4/13/2022
v2.7.3 - Added multiple color schemes, French language translation, & dynamic language selection.
-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.
--------------------
COMMIT - 4/13/2022
v2.7.2 - Fixed bugs reported by a Reddit user.
-v2.7.2.
-Fix undefined variable errors in sanitizeCore.php and convertCore.php when converting PDF files.
-Fixed multiple page detection code.
--------------------
COMMIT - 4/13/2022
v2.7.1 - Add a ton of supported image formats.
-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).
--------------------
COMMIT - 4/11/2022
v2.7 - v2.7 - Fix a ton of bugs, make compatible w/PHP8.
-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.
--------------------
COMMIT - 2/11/2020
v2.6 - Improve sanitization per Issue #4.
-v2.6.
-Improve sanitization per Issue #4.
-Github user @robre pointed out some typos in sanitizeCore.php, specifically lines 95 & line 96 from v2.4.
-These bugs mean to me that I need to review more of this code.
-Thank you, @robre!
--------------------
COMMIT 11/18/2018
v2.4 - Improve sanitization.
-v2.4.
-Improve sanitization.
-Based on input from neogeovr on Reddit.
--------------------
COMMIT 10/23/2018
v2.3 - Add support for m4a, m4p, m4v files.
-v2.3.
-Add support for m4a, m4p, and m4v input files.
--------------------
COMMIT 9/25/2018
v2.2 - Fix typos in comments.
-v2.2.
-Fix typos in comments.
--------------------
COMMIT 7/22/2018
v2.1 - Fix occasional warnings during file cleanup.
-v2.1.
-Fix occasional warnings.
----------
COMMIT 7/20/2018
v2.0 - Polish some rough edges in the back end.
-v2.0.
-Consolidate some code in similar fashion to the recent HRC2 refactor.
-Now when no extension is specified a default will be used instead of displaying a 404 error.
-Tweak auto-cleaner to make it work in a safer, more reliable way.
-Add conversion and archive support for tar.bz2.
-Now when bulk archives are created any converted files will be included in the archive as well as the originals.
-Fix the way files sync between locations and the way symlinks are controlled.
----------
COMMIT 7/8/2018
v1.9 - Improve security.
-v1.9.
-Added checks for dangerous files to all Convert operations and to the GUI.
-Fix PDF files showing the image options button when there is no div to display.
-Added this changelog to keep track of thoughts, changes, and ideas.
----------