aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRuben Beltran del Rio <ruben@unlimited.pizza>2021-12-19 14:21:33 +0100
committerRuben Beltran del Rio <ruben@unlimited.pizza>2021-12-19 14:21:33 +0100
commit5d9f7190bd118fe4d44594d7a9584de98b527467 (patch)
treec323938b4626290a227a652380af769d7f4c4518 /lib
parent29f687276d9e9ef01ce70ebd210a01386ca581ae (diff)
Port to svelte
Diffstat (limited to 'lib')
-rw-r--r--lib/corona-regeln.js17
-rw-r--r--lib/rule_generator.js63
-rw-r--r--lib/rules/business.js74
-rw-r--r--lib/rules/curfew.js69
-rw-r--r--lib/rules/group.js51
-rw-r--r--lib/rules/mask.js51
6 files changed, 0 insertions, 325 deletions
diff --git a/lib/corona-regeln.js b/lib/corona-regeln.js
deleted file mode 100644
index 5036e47..0000000
--- a/lib/corona-regeln.js
+++ /dev/null
@@ -1,17 +0,0 @@
-'use strict';
-
-const RuleGenerator = require('./rule_generator');
-
-module.exports = {
- async run({
- ruleCount
- }) {
-
- const rules = [];
- for (let i = 0; i < ruleCount; ++i) {
- rules.push(await RuleGenerator.generate());
- }
-
- return rules.sort(() => Math.random() - 0.5);
- }
-}
diff --git a/lib/rule_generator.js b/lib/rule_generator.js
deleted file mode 100644
index 742c915..0000000
--- a/lib/rule_generator.js
+++ /dev/null
@@ -1,63 +0,0 @@
-const { readdir } = require('fs');
-const { join, resolve } = require('path');
-
-const internals = {
-
- dates: [
- 'today',
- 'tomorrow',
- 'next friday',
- 'next wednesday',
- 'last thursday',
- 'last tuesday',
- 'the next day divisible by 7',
- 'this afternoon',
- 'next fiscal quarter',
- ],
-
- rules: null,
- currentIndex: 0,
-
- kRulesDirectory: resolve(__dirname, './rules'),
-
- async readRules() {
-
- const ruleFiles = await internals.readdir(internals.kRulesDirectory);
- const rules = ruleFiles
- .filter((file) => file.match(/.js$/))
- .map((file) => require(join(internals.kRulesDirectory, file)));
-
- internals.rules = rules.sort(() => Math.random() - 0.5)
- },
-
- readdir(path) {
- return new Promise((resolve, reject) => {
-
- readdir(path, (err, files) => {
-
- if (err) {
- return reject(err);
- }
-
- return resolve(files);
- })
- });
- }
-}
-
-module.exports = {
- async generate() {
-
- if (!internals.rules) {
- await internals.readRules();
- }
-
- const rule = internals.rules[internals.currentIndex];
- const time = internals.dates[Math.floor(Math.random() * internals.dates.length)];
- internals.currentIndex = (internals.currentIndex + 1) % internals.rules.length
- return {
- rule: rule(),
- time
- }
- }
-}
diff --git a/lib/rules/business.js b/lib/rules/business.js
deleted file mode 100644
index afcc256..0000000
--- a/lib/rules/business.js
+++ /dev/null
@@ -1,74 +0,0 @@
-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/lib/rules/curfew.js b/lib/rules/curfew.js
deleted file mode 100644
index 9fc697f..0000000
--- a/lib/rules/curfew.js
+++ /dev/null
@@ -1,69 +0,0 @@
-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/lib/rules/group.js b/lib/rules/group.js
deleted file mode 100644
index 909c378..0000000
--- a/lib/rules/group.js
+++ /dev/null
@@ -1,51 +0,0 @@
-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`
- };
-}
diff --git a/lib/rules/mask.js b/lib/rules/mask.js
deleted file mode 100644
index 1e82959..0000000
--- a/lib/rules/mask.js
+++ /dev/null
@@ -1,51 +0,0 @@
-const internals ={
-
- masks: [
- 'HTML',
- 'FFP4',
- 'Leather',
- 'Denim',
- 'Pink',
- 'RSVP',
- 'TBD',
- 'Quantum',
- 'Medical',
- 'GMO',
- 'FFP9',
- 'FFP2.5',
- 'KN96',
- 'France98',
- 'Mesh',
- ],
-
- conditions: [
- 'when dancing',
- 'at all times',
- 'in bed',
- 'outdoors',
- 'when running',
- 'when driving',
- 'when cycling',
- 'in restaurants',
- 'in pools',
- 'in small groups',
- 'at 3pm',
- 'at 5pm',
- 'when nobody is looking',
- 'around the police',
- 'when speaking',
- 'while chewing gum',
- 'while eating bread',
- ]
-};
-
-module.exports = () => {
-
- const mask = internals.masks[Math.floor(Math.random() * internals.masks.length)];
- const condition = internals.conditions[Math.floor(Math.random() * internals.conditions.length)];
-
- return {
- emoji: '😷',
- text: `${mask} masks must be worn ${condition}`
- };
-}