43 lines
2.4 KiB
Markdown
43 lines
2.4 KiB
Markdown
# 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(4) 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.
|