# uwu2x-analytics This sample is intended to help create a script that transforms the `uwu2x` interactions into, maybe, another database, in order to easily and quickly get uwu2x statistics. `uwu2x.sql` contains 7 917 rows from 2025-07-05 to 2025-10-05 (last 3 months). This sample only contains 1 row per 100 real rows. There is only one table: ```sql CREATE TABLE interaction ( id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, identifier VARCHAR(7) NOT NULL, project VARCHAR(11) NOT NULL, framerate FLOAT NOT NULL, type VARCHAR(50) NOT NULL, count INT DEFAULT 0, date DATETIME NOT NULL, version VARCHAR(10) NOT NULL ); ``` `type` can be: - "createPrecomposition" : user precomposed a clip, `count` indicates the number of clips in the created precomposition ; - "detectKeyframes" : user detected unique frames from clip, `count` indicates the number of detected frames ; - "fastAdjustment" : user created an adjustment layer ; can be ignored, only present in one version of uwu2x ; - "fastNull" : user created a null layer ; can be ignored, only present in one version of uwu2x ; - "regroupKeyframes" : user regrouped keyframes, `count` indicates the number of regrouped keyframes ; - "sequenceLayers" : similar to "regroupKeyframes", can be considered identical ; - "twixtor" : user applied Twixtor effect to a clip, `count` indicates the number of clips affected ; - "uwuClips" : user upscaled or interpolated clip, `count` indicates the number of clips processed. `framerate` is the framerate of the composition the user is working on. `version` is uwu2x version (not After Effects version). ## Ideas I believe the "solution" should feature : - a "script" that takes [1 ; N] rows and adds them to an "analytics-optimized" database. Ideally, it should be able to process all existing rows and add future ones. Since database INSERT and UPDATE are expensive, the script should do a lot of "in-memory" processing : if there are two `uwuClips` interactions for the same user, do **not** do 2 `UPDATE` in the analytics database : instead, create an object (like Javascript object if your solution is written in Javascript) representing the user's profile, update it with both interactions, then perform 1 `UPDATE` in the database. - a second "script" to return statistics contained in the "analytics-optimized" database, like any user profile, total user count, active users per day, most used uwu2x version, most used uwu2x version over time, etc.