diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2021-04-04 00:45:50 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2021-04-04 00:45:50 +0200 |
| commit | 07d8db2bb758686466d4643f575b4b5280cc4791 (patch) | |
| tree | 32dcdc9595a7679cf4b0a05490a9298addf3b9fd /rules | |
Add project
Diffstat (limited to 'rules')
| -rw-r--r-- | rules/business.js | 74 | ||||
| -rw-r--r-- | rules/curfew.js | 69 | ||||
| -rw-r--r-- | rules/group.js | 51 |
3 files changed, 194 insertions, 0 deletions
diff --git a/rules/business.js b/rules/business.js new file mode 100644 index 0000000..bc12866 --- /dev/null +++ b/rules/business.js @@ -0,0 +1,74 @@ +const internals ={ + + businesses: [ + 'butcher shops', + 'plant shops', + 'balloon factories', + 'pet hotels', + 'sex shops', + 'clothes incineration facilities', + 'city dumps', + 'glass factories', + 'roads', + 'windfarm analysis consultancies', + 'peanut depots', + 'glue factories', + 'bürgeramts', + 'chiropractors', + 'gong bath facilities', + 'wrestling rings', + 'cat cafés', + 'paint your own pottery centers', + 'dungeons', + 'television sets', + 'nasa offices', + 'toilet factories', + 'condom inspection facilities', + 'high school newspapers', + 'dog spas', + 'mink breeding centers', + 'ngos', + 'yoga cults', + 'mi6 safehouses', + 'döner shops', + 'hospitals' + ], + + restrictions: [ + 'are required to work from home', + 'require mandatory testing', + 'must remain closed', + 'must remain open', + 'must offer 50% covid discounts', + 'must become vaccination centers', + 'must pay staff 3x on thursdays', + 'can only meet with one other household', + 'must share facilities', + 'are exempt from mask rules', + ], + + join(array) { + + const firstPart = array.slice(0, -1).join(', ') + const lastPart = array.slice(-1) + + const conjunction = array.length <= 1 ? '' : ', and ' + + return [firstPart, lastPart].join(conjunction) + } +}; + +module.exports = () => { + + const businesses = internals.businesses + .filter(() => true) + .sort(() => Math.random() - 0.5) + .slice(0, Math.floor(Math.random() * 3) + 1) + const restriction = internals.restrictions[Math.floor(Math.random() * internals.restrictions.length)]; + const text = `${internals.join(businesses)} ${restriction}` + + return { + emoji: '🏢', + text: text.charAt(0).toUpperCase() + text.slice(1) + }; +} diff --git a/rules/curfew.js b/rules/curfew.js new file mode 100644 index 0000000..9fc697f --- /dev/null +++ b/rules/curfew.js @@ -0,0 +1,69 @@ +const internals ={ + + activities: [ + 'sex', + 'skinny dipping', + 'playing chess', + 'debating', + 'dancing', + 'breeding horses', + 'laughing', + 'sneezing', + 'cat wrestling', + 'ordering food', + 'remote work', + 'internet usage', + 'sleeping', + 'eating', + 'vacuuming', + 'using a blender', + 'having a party', + 'theft', + 'engaging in economic activity', + 'using ketchup', + 'tailgating', + 'embezzelment', + 'taking the U-Bahn', + 'cutting your hair', + 'using recreational drugs', + 'tipping', + 'interpretive dancing', + 'origami', + 'whittling', + 'going for a walk', + 'working' + ], + + restrictions: [ + 'is not allowed', + 'is mandatory', + 'is optional', + 'requires a mask', + 'is only allowed indoors', + 'is only allowed outdoors', + 'is only allowed in groups larger than seven', + 'requires a license', + 'is allowed under police supervision', + 'is allowed following social distancing rules', + 'is only allowed in Neukölln', + 'is only allowed in Kreuzberg', + 'is only allowed in Charlottenburg', + 'is only allowed in Wedding', + 'is only allowed in Mitte', + 'is only allowed in Prenzlauer Berg', + 'is only allowed in Friedrichshain', + ] +}; + +module.exports = () => { + + const startTime = Math.floor(Math.random() * 23) + 1; + const endTtime = Math.floor(Math.random() * 23) + 1; + const activity = internals.activities[Math.floor(Math.random() * internals.activities.length)]; + const restriction = internals.restrictions[Math.floor(Math.random() * internals.restrictions.length)]; + + return { + emoji: '🕚', + text: `From ${startTime}:00 to ${endTtime}:00 ${activity} ${restriction}` + }; +} diff --git a/rules/group.js b/rules/group.js new file mode 100644 index 0000000..909c378 --- /dev/null +++ b/rules/group.js @@ -0,0 +1,51 @@ +const internals ={ + + groups: [ + 'teenagers', + 'influencers', + 'vegans', + 'tik-tok users', + 'lactose intolerants', + 'households', + 'ice cream vendors', + 'babies', + 'police officers', + 'drug dealers', + 'tech workers', + 'cryptocurrency miners', + 'mexicans', + 'smokers', + 'drug users', + 'octogenarians', + 'public officials', + 'atheists', + 'god fearing parishioners', + 'b-list actors', + 'jugglers', + 'seagulls', + 'lighthouse operators', + 'tram drivers', + 'psychics', + 'magicians', + 'classically trained musicians', + 'food delivery drivers', + 'librarians', + 'doctors', + 'vaccinated cats', + 'balloon artists' + ], +}; + +module.exports = () => { + + const countA = Math.floor(Math.random() * 8) + 2; + const magnitude = Math.random() > 0.5 ? 99 : 5; + const countB = Math.floor(Math.random() * magnitude) + 1; + const groupA = internals.groups[Math.floor(Math.random() * internals.groups.length)]; + const groupB = internals.groups[Math.floor(Math.random() * internals.groups.length)]; + + return { + emoji: '👨', + text: `No more than ${countA} ${groupA} + ${countB} ${groupB} are allowed to meet` + }; +} |