diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2021-12-19 14:21:33 +0100 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2021-12-19 14:21:33 +0100 |
| commit | 5d9f7190bd118fe4d44594d7a9584de98b527467 (patch) | |
| tree | c323938b4626290a227a652380af769d7f4c4518 /lib | |
| parent | 29f687276d9e9ef01ce70ebd210a01386ca581ae (diff) | |
Port to svelte
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/corona-regeln.js | 17 | ||||
| -rw-r--r-- | lib/rule_generator.js | 63 | ||||
| -rw-r--r-- | lib/rules/business.js | 74 | ||||
| -rw-r--r-- | lib/rules/curfew.js | 69 | ||||
| -rw-r--r-- | lib/rules/group.js | 51 | ||||
| -rw-r--r-- | lib/rules/mask.js | 51 |
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}` - }; -} |