aboutsummaryrefslogtreecommitdiff
path: root/rules
diff options
context:
space:
mode:
authorRuben Beltran del Rio <ruben@unlimited.pizza>2021-04-04 00:45:50 +0200
committerRuben Beltran del Rio <ruben@unlimited.pizza>2021-04-04 00:45:50 +0200
commit07d8db2bb758686466d4643f575b4b5280cc4791 (patch)
tree32dcdc9595a7679cf4b0a05490a9298addf3b9fd /rules
Add project
Diffstat (limited to 'rules')
-rw-r--r--rules/business.js74
-rw-r--r--rules/curfew.js69
-rw-r--r--rules/group.js51
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`
+ };
+}