Convert artifact scripts to __artifacts_v2__ header format#721
Merged
Conversation
JamesHabben
reviewed
Jun 17, 2026
| "requirements": "none", | ||
| "category": "Chromium", | ||
| "notes": "", | ||
| "paths": ('*/app_chrome/Default/Login Data*',), |
Collaborator
There was a problem hiding this comment.
the search pattern list is different from the header being removed
JamesHabben
reviewed
Jun 17, 2026
| logfunc(f'No Turbo - Application Usage data available') | ||
|
|
||
| __artifacts_v2__ = { | ||
| "get_Turbo_AppUsage": { |
Collaborator
There was a problem hiding this comment.
has no output key in the artifact header
JamesHabben
reviewed
Jun 17, 2026
| "creation_date": "2000-01-01", | ||
| "last_updated_date": "2000-01-01", | ||
| "requirements": "none", | ||
| "category": "", |
- Add missing v2 headers to ChessComAccount, ChessComGames, ChessWithFriends, chromeAutofill - Fix syntax errors: close unclosed paths tuples in appSemloc, chatgpt, notificationHistory, ulrUserprefs, ulrUserprefs - Fix corrupted import lines in ChessComFriends, ChessComMessages - Fix artifact key mismatches to match function names (K9Mail, MicrosoftAuthenticator, SamsungHoneyboard, battery_usage_v9, burner*, keepNotes, fitbit, wireMessenger, FCMQueuedMessagesSkype) - Fix invalid output_types values in WithingsHealthMate, airtagAndroid, deviceHealthServices_Battery - Assign missing artifact_icons to 41 entries - Rename last_updated_date to last_update_date (canonical field name) across all files - Rename date field to creation_date and add last_update_date where missing - Replace 2000-01-01 placeholder dates with actual git first-commit dates - Fix corrupted import and description in AVG.py - Fix missing date fields in life360DriverBehavior.py - Fix citymapper.py output_types missing trailing commas
Also fix likee.py split into two artifact entries (one per function/path set) and fix duplicate last_update_date key in LinkedIn.py header.
The earlier lint pass had rewritten function bodies extensively (~9600 lines), including a runtime-breaking change in AdidasActivities (str(x, encoding=...)) and dropped code lines. This restores every function body, import, and comment to exactly match origin/main, so the only change in each file is the __artifacts_v2__ header plus a per-file pylint disable comment for the pre-existing warnings. Also splits likee.py into its two artifact entries and restores the original AdidasActivities category value.
The plugin loader resolves a v2 artifact's function only when the function is decorated with @artifact_processor (matched by key name) or when the entry has a 'function' key. The converted scripts use the legacy ArtifactHtmlReport style (undecorated), so they require the 'function' key. Re-added it (value = function name) to all 250+ affected entries, fixed entries the bulk pass missed due to blank lines / indentation (K9Mail, MicrosoftAuthenticator, battery_usage_v9, wireMessenger, OneDrive_Metadata, FCMQueuedMessagesSkype), and renamed the FCMQueuedMessagesTumblr key to get_fcm_tumblr to avoid a duplicate-plugin collision with the Instagram module. Verified: plugin loader loads all artifacts with zero "No matching function" warnings and no duplicate-key errors.
These two @artifact_processor artifacts had no output_types key in origin, so the wrapper defaulted them to all output types. The header migration added "output_types": None, which the wrapper passes straight into check_output_types, causing "argument of type 'NoneType' is not iterable" whenever they have data. Set output_types to "all" to match the original default behavior.
These three artifacts crashed when their data was present because their function signatures didn't match the (files_found, report_folder, seeker, wrap_text) contract the loader calls with. They were dormant before (no function key), so restoring registration exposed the latent bugs. - chromeDIPS: add the missing seeker/wrap_text params - OneDrive_Metadata: remove the unused time_offset param - FCMQueuedMessagesSkype: default the Skype/Teams mode param to "s" (Skype)
healthmate_contacts had output_types "message-square" (a feather icon name), which makes check_output_types return False for every type, so the decorated artifact silently produced no output despite finding data. Set it to "standard" to match its six sibling entries. (Pre-existing in origin, not introduced here.)
Convert four single-report Garmin artifacts to the LAVA output pipeline: GarminSync, GarminNotifications, GarminPersistent, GarminUser. Each now uses @artifact_processor and returns (data_headers, data_list, source_path) instead of building reports manually, adding LAVA output alongside the existing HTML/TSV (and timeline where a datetime column exists). The data extraction (queries, row parsing) is unchanged; datetime columns are marked with the 'datetime' type. The function key is dropped since decorated functions resolve by name. Deferred as more complex (JSON viewers / network calls / multi-table): GarminResponse, GarminJson, GarminGcmJsonActivities, GarminFacebook.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
__artifacts__footer format to the__artifacts_v2__header format__artifacts__dict from the bottom of each fileartGlobals.pyexcluded (shared globals file, not an artifact)Test plan
artGlobals.pyis unchanged