Implemented guild experiments#389
Conversation
commit e587b8f81f366b175a042ef1eb96e44bc8807570
Author: BuildTools <59115290+BanTheNons@users.noreply.github.com>
Date: Tue Sep 21 19:19:57 2021 +0300
Create guild_experiments.example.json
commit 9cb03c85618d62e3501146e96539e2c0c79416a3
Author: BuildTools <59115290+BanTheNons@users.noreply.github.com>
Date: Tue Sep 21 22:32:07 2021 +0300
Update Identify.ts
commit 3b0e0bb116841c460f41b7429a59a577f61e3863
Author: BanTheNons <59115290+BanTheNons@users.noreply.github.com>
Date: Tue Sep 21 16:56:14 2021 +0300
implemented guild experiments
commit 489af5182d8c69f46b468f010480c88565fbb42f
Author: BuildTools <59115290+BanTheNons@users.noreply.github.com>
Date: Tue Sep 21 22:26:53 2021 +0300
Update .gitignore
|
Maybe we should wait for FOSScord to have proper support to handle some of this experiments? |
| @@ -0,0 +1,4 @@ | |||
| { | |||
| "experiments": {"fingerprint": "889800254663311382.rgUouuEkLbQi0SGiEMClnfgNZic", "assignments": [[4047587481, 0, 0, -1, 0], [1865079242, 0, 1, -1, 0], [3816091942, 3, 0, -1, 0], [4130837190, 0, 10, -1, 0], [1861568052, 0, 1, -1, 0], [1578940118, 1, 1, -1, 0], [1571676964, 0, 1, -1, 2], [1658164312, 2, 1, -1, 0], [98883956, 1, 1, -1, 0], [3114091169, 0, 1, -1, 0], [2570684145, 4, 1, -1, 2], [4007615411, 0, 1, -1, 0], [852550504, 3, 1, -1, 0], [4168223991, 0, 1, -1, 0], [478613943, 2, 1, -1, 1], [284670956, 0, 1, -1, 0], [2099185390, 0, 1, -1, 0], [1202202685, 0, 1, -1, 0], [3633864632, 0, 1, -1, 0], [3103053065, 0, 1, -1, 0], [820624960, 0, 1, -1, 0], [2599708267, 0, 1, -1, 0], [2885186814, 0, 1, -1, 0], [221503477, 0, 1, -1, 0], [1054317075, 0, 1, -1, 3], [683872522, 0, 1, -1, 1], [1739278764, 0, 2, -1, 0], [2855249023, 0, 1, -1, 0], [3721841948, 0, 1, -1, 0], [1365487849, 6, 1, -1, 0], [955229746, 0, 1, -1, 0], [3128009767, 0, 10, -1, 0], [441885003, 0, 1, -1, 0], [3433971238, 0, 1, -1, 2], [1038765354, 3, 1, -1, 0], [2973729510, 2, 1, -1, 0], [3884442008, 0, 1, -1, 0], [978673395, 1, 1, -1, 0], [4050927174, 0, 1, -1, 0], [1260103069, 0, 1, -1, 0], [4168894280, 0, 1, -1, 0], [2003494159, 1, 1, -1, 0], [2458926251, 1, 6, -1, 2], [4027800, 1, 6, -1, 3], [51193042, 0, 1, -1, 0], [2063302207, 1, 6, -1, 4], [2634540382, 3, 1, -1, 0], [886364171, 0, 1, -1, 0], [427713714, 0, 1, -1, 0], [3388129398, 0, 1, -1, 0], [446728522, 0, 1, -1, 0], [3305874255, 0, 1, -1, 0], [3316720711, 0, 1, -1, 0], [1126477623, 0, 1, -1, 0], [2617218444, 4, 1, -1, 2], [3615263239, 0, 1, -1, 0], [3035674767, 0, 1, -1, 0], [261678880, 0, 1, -1, 0], [144783748, 0, 1, -1, 0], [2898830675, 0, 1, -1, 0], [2311413706, 0, 1, -1, 0], [1304635016, 0, 1, -1, 0], [3840356350, 4, 1, -1, 0], [1047093347, 0, 1, -1, 2], [3354177721, 0, 1, -1, 0], [3643362751, 0, 1, -1, 0], [698017395, 0, 1, -1, 0], [902020832, 3, 3, -1, 1], [2165627712, 2, 1, -1, 0], [3346844407, 0, 1, -1, 0], [3753034466, 1, 2, -1, 0], [881221695, 1, 1, -1, 0], [2144100145, 0, 1, -1, 0], [3749399219, 0, 0, -1, 0], [55060776, 1, 2, -1, 0], [3125584553, 1, 1, -1, 0], [2906015343, 2, 0, -1, 0], [219203323, 1, 1, -1, 0], [2854861606, 0, 1, -1, 1], [3884403666, 1, 1, -1, 0], [1041569008, 0, 1, -1, 0], [2780619238, 1, 1, -1, 0], [2839301427, 1, 1, -1, 0], [2481496956, 0, 1, -1, 0], [1305004983, 0, 1, -1, 0], [126562871, 2, 2, -1, 0], [3296195750, 0, 0, -1, 0]]}, | |||
There was a problem hiding this comment.
Is this the only way to do it?.
It doesn't look very readable.
There was a problem hiding this comment.
It just sends the list of all experiments. It's definitely not readable, and we'll have to blame discord for that.
DiegoMagdaleno
left a comment
There was a problem hiding this comment.
Just some issues with the code style, once those are fixed, it is good to go.
Something like |
Guild IDs can be added as overrides in the guild_experiments.json file, if you could only enable experiments per guild you wouldn't be able to set rollouts for it. |
You can just rename guild_experments.example.json and you should be good to go.
| switch(filter[0]){ | ||
| case 1604612045: //guild_has_feature | ||
| parse = { | ||
| type: "guild_has_feature" | ||
| } | ||
| filter[1].forEach(function(filterData){ | ||
| if(filterData[0] == 1183251248){ //guild_features | ||
| parse.guild_features = filterData[1] | ||
| } else { | ||
| console.log('[EXPERIMENT] Expected guild_features, got ' + filterData) | ||
| } | ||
| }) | ||
| parsedFilters.push(parse) | ||
| break; | ||
| case 3013771838: //guild_ids | ||
| parse = { | ||
| type: "guild_ids" | ||
| } | ||
| filter[1].forEach(function(filterData){ | ||
| if(filterData[0] == 3013771838){ //guild_ids | ||
| parse.ids = filterData[1] | ||
| } else { | ||
| console.log('[EXPERIMENT] Expected guild_ids, got ' + filterData) | ||
| } | ||
| }) | ||
| parsedFilters.push(parse) | ||
| break; | ||
| case 2404720969: //guild_id_range | ||
| parse = { | ||
| type: "guild_id_range" | ||
| } | ||
| filter[1].forEach(function(filterData){ | ||
| if(filterData[0] == 3399957344){ //min_id | ||
| parse.min_id = filterData[1] | ||
| } else if(filterData[0] == 1238858341){ //max_id | ||
| parse.max_id = filterData[1] | ||
| } else { | ||
| console.log('[EXPERIMENT] Expected min_id or max_id, got ' + filterData) | ||
| } | ||
| }) | ||
| parsedFilters.push(parse) | ||
| break; | ||
| case 2918402255: //guild_member_count_range | ||
| parse = { | ||
| type: "guild_member_count_range" | ||
| } | ||
| filter[1].forEach(function(filterData){ | ||
| if(filterData[0] == 3399957344){ //min_id | ||
| parse.min_id = filterData[1] | ||
| } else if(filterData[0] == 1238858341){ //max_id | ||
| parse.max_id = filterData[1] | ||
| } else { | ||
| console.log('[EXPERIMENT] Expected min_id or max_id, got ' + filterData) | ||
| } | ||
| }) | ||
| parsedFilters.push(parse) | ||
| break; | ||
| default: | ||
| parsedFilters.push({ | ||
| type: "unknown_filter", | ||
| hash: filter[0], | ||
| data: filter[1] | ||
| }) | ||
| break; | ||
| } | ||
| }) |
There was a problem hiding this comment.
TODO: implement filter selection as a snowflake-indexed vtable (an object with snowflakes as keys, and filter functions as values)
| ] | ||
| [[4047587481, 0, 0, -1, 0], [1865079242, 0, 1, -1, 0], [3816091942, 3, 0, -1, 0], [4130837190, 0, 10, -1, 0], [1861568052, 0, 1, -1, 0], [1578940118, 1, 1, -1, 0], [1571676964, 0, 1, -1, 2], [1658164312, 2, 1, -1, 0], [98883956, 1, 1, -1, 0], [3114091169, 0, 1, -1, 0], [2570684145, 4, 1, -1, 2], [4007615411, 0, 1, -1, 0], [852550504, 3, 1, -1, 0], [4168223991, 0, 1, -1, 0], [478613943, 2, 1, -1, 1], [284670956, 0, 1, -1, 0], [2099185390, 0, 1, -1, 0], [1202202685, 0, 1, -1, 0], [3633864632, 0, 1, -1, 0], [3103053065, 0, 1, -1, 0], [820624960, 0, 1, -1, 0], [2599708267, 0, 1, -1, 0], [2885186814, 0, 1, -1, 0], [221503477, 0, 1, -1, 0], [1054317075, 0, 1, -1, 3], [683872522, 0, 1, -1, 1], [1739278764, 0, 2, -1, 0], [2855249023, 0, 1, -1, 0], [3721841948, 0, 1, -1, 0], [1365487849, 6, 1, -1, 0], [955229746, 0, 1, -1, 0], [3128009767, 0, 10, -1, 0], [441885003, 0, 1, -1, 0], [3433971238, 0, 1, -1, 2], [1038765354, 3, 1, -1, 0], [2973729510, 2, 1, -1, 0], [3884442008, 0, 1, -1, 0], [978673395, 1, 1, -1, 0], [4050927174, 0, 1, -1, 0], [1260103069, 0, 1, -1, 0], [4168894280, 0, 1, -1, 0], [2003494159, 1, 1, -1, 0], [2458926251, 1, 6, -1, 2], [4027800, 1, 6, -1, 3], [51193042, 0, 1, -1, 0], [2063302207, 1, 6, -1, 4], [2634540382, 3, 1, -1, 0], [886364171, 0, 1, -1, 0], [427713714, 0, 1, -1, 0], [3388129398, 0, 1, -1, 0], [446728522, 0, 1, -1, 0], [3305874255, 0, 1, -1, 0], [3316720711, 0, 1, -1, 0], [1126477623, 0, 1, -1, 0], [2617218444, 4, 1, -1, 2], [3615263239, 0, 1, -1, 0], [3035674767, 0, 1, -1, 0], [261678880, 0, 1, -1, 0], [144783748, 0, 1, -1, 0], [2898830675, 0, 1, -1, 0], [2311413706, 0, 1, -1, 0], [1304635016, 0, 1, -1, 0], [3840356350, 4, 1, -1, 0], [1047093347, 0, 1, -1, 2], [3354177721, 0, 1, -1, 0], [3643362751, 0, 1, -1, 0], [698017395, 0, 1, -1, 0], [902020832, 3, 3, -1, 1], [2165627712, 2, 1, -1, 0], [3346844407, 0, 1, -1, 0], [3753034466, 1, 2, -1, 0], [881221695, 1, 1, -1, 0], [2144100145, 0, 1, -1, 0], [3749399219, 0, 0, -1, 0], [55060776, 1, 2, -1, 0], [3125584553, 1, 1, -1, 0], [2906015343, 2, 0, -1, 0], [219203323, 1, 1, -1, 0], [2854861606, 0, 1, -1, 1], [3884403666, 1, 1, -1, 0], [1041569008, 0, 1, -1, 0], [2780619238, 1, 1, -1, 0], [2839301427, 1, 1, -1, 0], [2481496956, 0, 1, -1, 0], [1305004983, 0, 1, -1, 0], [126562871, 2, 2, -1, 0], [3296195750, 0, 0, -1, 0]] |
There was a problem hiding this comment.
TODO: Fetch experiments from instance DB
erkinalp
left a comment
There was a problem hiding this comment.
Rebase against updated dependencies
No description provided.