2025-10-05 21:46:12 +00:00
2025-10-05 20:21:24 +00:00
2025-10-05 21:06:35 +00:00

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:

CREATE TABLE interactions (
    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.

Description
Samples for analyzing uwu2x logs.
Readme Apache-2.0 580 KiB
Languages
C++ 53.9%
CMake 44%
C 2.1%