From f19e69948a85ad6df333eb7208fa6ff06331395d Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Wed, 28 Nov 2018 14:50:43 -0600 Subject: [PATCH] feat(content): mystery items 2018-11 --- migrations/archive/mystery-items-old.js | 110 +++++++++++++++ migrations/users/mystery-items.js | 131 ++++++------------ website/common/locales/en/gear.json | 4 + website/common/locales/en/subscriber.json | 1 + .../script/content/gear/sets/mystery.js | 12 ++ website/common/script/content/mystery-sets.js | 4 + .../mystery_201811/head_mystery_201811.png | Bin 0 -> 1006 bytes .../shop_head_mystery_201811.png | Bin 0 -> 931 bytes .../shop_set_mystery_201811.png | Bin 0 -> 1184 bytes .../shop_weapon_mystery_201811.png | Bin 0 -> 465 bytes .../mystery_201811/weapon_mystery_201811.png | Bin 0 -> 508 bytes .../promo_mystery_201810.png | Bin 26608 -> 0 bytes .../promo_mystery_201811.png | Bin 0 -> 14387 bytes .../spritesmith_large/promo_piyo.png | Bin 0 -> 6855 bytes website/server/controllers/api-v3/news.js | 20 +-- 15 files changed, 188 insertions(+), 94 deletions(-) create mode 100644 migrations/archive/mystery-items-old.js create mode 100644 website/raw_sprites/spritesmith/gear/events/mystery_201811/head_mystery_201811.png create mode 100644 website/raw_sprites/spritesmith/gear/events/mystery_201811/shop_head_mystery_201811.png create mode 100644 website/raw_sprites/spritesmith/gear/events/mystery_201811/shop_set_mystery_201811.png create mode 100644 website/raw_sprites/spritesmith/gear/events/mystery_201811/shop_weapon_mystery_201811.png create mode 100644 website/raw_sprites/spritesmith/gear/events/mystery_201811/weapon_mystery_201811.png delete mode 100644 website/raw_sprites/spritesmith_large/promo_mystery_201810.png create mode 100644 website/raw_sprites/spritesmith_large/promo_mystery_201811.png create mode 100644 website/raw_sprites/spritesmith_large/promo_piyo.png diff --git a/migrations/archive/mystery-items-old.js b/migrations/archive/mystery-items-old.js new file mode 100644 index 0000000000..d298d9b7e7 --- /dev/null +++ b/migrations/archive/mystery-items-old.js @@ -0,0 +1,110 @@ +import monk from 'monk'; +import nconf from 'nconf'; + +const migrationName = 'mystery-items-201808.js'; // Update per month +const authorName = 'Sabe'; // in case script author needs to know when their ... +const authorUuid = '7f14ed62-5408-4e1b-be83-ada62d504931'; // ... own data is done + +/* + * Award this month's mystery items to subscribers + */ +const MYSTERY_ITEMS = ['armor_mystery_201810', 'head_mystery_201810']; +const CONNECTION_STRING = nconf.get('MIGRATION_CONNECT_STRING'); + +let dbUsers = monk(CONNECTION_STRING).get('users', { castIds: false }); +let UserNotification = require('../../website/server/models/userNotification').model; + +function processUsers (lastId) { + // specify a query to limit the affected users (empty for all users): + let query = { + migration: {$ne: migrationName}, + 'purchased.plan.customerId': { $ne: null }, + $or: [ + { 'purchased.plan.dateTerminated': { $gte: new Date() } }, + { 'purchased.plan.dateTerminated': { $exists: false } }, + { 'purchased.plan.dateTerminated': { $eq: null } }, + ], + }; + + if (lastId) { + query._id = { + $gt: lastId, + }; + } + + dbUsers.find(query, { + sort: {_id: 1}, + limit: 250, + fields: [ + ], // specify fields we are interested in to limit retrieved data (empty if we're not reading data): + }) + .then(updateUsers) + .catch((err) => { + console.log(err); + return exiting(1, `ERROR! ${ err}`); + }); +} + +let progressCount = 1000; +let count = 0; + +function updateUsers (users) { + if (!users || users.length === 0) { + console.warn('All appropriate users found and modified.'); + displayData(); + return; + } + + let userPromises = users.map(updateUser); + let lastUser = users[users.length - 1]; + + return Promise.all(userPromises) + .then(() => { + processUsers(lastUser._id); + }); +} + +function updateUser (user) { + count++; + + const addToSet = { + 'purchased.plan.mysteryItems': { + $each: MYSTERY_ITEMS, + }, + }; + const push = { + notifications: (new UserNotification({ + type: 'NEW_MYSTERY_ITEMS', + data: { + MYSTERY_ITEMS, + }, + })).toJSON(), + }; + + dbUsers.update({_id: user._id}, {$addToSet: addToSet, $push: push}); + + if (count % progressCount === 0) console.warn(`${count } ${ user._id}`); + if (user._id === authorUuid) console.warn(`${authorName } processed`); +} + +function displayData () { + console.warn(`\n${ count } users processed\n`); + return exiting(0); +} + +function exiting (code, msg) { + code = code || 0; // 0 = success + if (code && !msg) { + msg = 'ERROR!'; + } + if (msg) { + if (code) { + console.error(msg); + } else { + console.log(msg); + } + } + process.exit(code); +} + +module.exports = processUsers; diff --git a/migrations/users/mystery-items.js b/migrations/users/mystery-items.js index d298d9b7e7..8e85ba0a26 100644 --- a/migrations/users/mystery-items.js +++ b/migrations/users/mystery-items.js @@ -1,70 +1,13 @@ -import monk from 'monk'; -import nconf from 'nconf'; +/* eslint-disable no-console */ +const MIGRATION_NAME = 'mystery_items_201811'; +const MYSTERY_ITEMS = ['head_mystery_201811', 'weapon_mystery_201811']; +import { model as User } from '../../website/server/models/user'; +import { model as UserNotification } from '../../website/server/models/userNotification'; -const migrationName = 'mystery-items-201808.js'; // Update per month -const authorName = 'Sabe'; // in case script author needs to know when their ... -const authorUuid = '7f14ed62-5408-4e1b-be83-ada62d504931'; // ... own data is done - -/* - * Award this month's mystery items to subscribers - */ -const MYSTERY_ITEMS = ['armor_mystery_201810', 'head_mystery_201810']; -const CONNECTION_STRING = nconf.get('MIGRATION_CONNECT_STRING'); - -let dbUsers = monk(CONNECTION_STRING).get('users', { castIds: false }); -let UserNotification = require('../../website/server/models/userNotification').model; - -function processUsers (lastId) { - // specify a query to limit the affected users (empty for all users): - let query = { - migration: {$ne: migrationName}, - 'purchased.plan.customerId': { $ne: null }, - $or: [ - { 'purchased.plan.dateTerminated': { $gte: new Date() } }, - { 'purchased.plan.dateTerminated': { $exists: false } }, - { 'purchased.plan.dateTerminated': { $eq: null } }, - ], - }; - - if (lastId) { - query._id = { - $gt: lastId, - }; - } - - dbUsers.find(query, { - sort: {_id: 1}, - limit: 250, - fields: [ - ], // specify fields we are interested in to limit retrieved data (empty if we're not reading data): - }) - .then(updateUsers) - .catch((err) => { - console.log(err); - return exiting(1, `ERROR! ${ err}`); - }); -} - -let progressCount = 1000; +const progressCount = 1000; let count = 0; -function updateUsers (users) { - if (!users || users.length === 0) { - console.warn('All appropriate users found and modified.'); - displayData(); - return; - } - - let userPromises = users.map(updateUser); - let lastUser = users[users.length - 1]; - - return Promise.all(userPromises) - .then(() => { - processUsers(lastUser._id); - }); -} - -function updateUser (user) { +async function updateUser (user) { count++; const addToSet = { @@ -80,31 +23,49 @@ function updateUser (user) { }, })).toJSON(), }; + const set = { + migration: MIGRATION_NAME, + }; - dbUsers.update({_id: user._id}, {$addToSet: addToSet, $push: push}); + if (count % progressCount === 0) console.warn(`${count} ${user._id}`); - if (count % progressCount === 0) console.warn(`${count } ${ user._id}`); - if (user._id === authorUuid) console.warn(`${authorName } processed`); + return await User.update({_id: user._id}, {$set: set, $push: push, $addToSet: addToSet}).exec(); } -function displayData () { - console.warn(`\n${ count } users processed\n`); - return exiting(0); -} +module.exports = async function processUsers () { + let query = { + migration: {$ne: MIGRATION_NAME}, + 'purchased.plan.customerId': { $ne: null }, + $or: [ + { 'purchased.plan.dateTerminated': { $gte: new Date() } }, + { 'purchased.plan.dateTerminated': { $exists: false } }, + { 'purchased.plan.dateTerminated': { $eq: null } }, + ], + }; -function exiting (code, msg) { - code = code || 0; // 0 = success - if (code && !msg) { - msg = 'ERROR!'; - } - if (msg) { - if (code) { - console.error(msg); - } else { - console.log(msg); + const fields = { + _id: 1, + }; + + while (true) { // eslint-disable-line no-constant-condition + const users = await User // eslint-disable-line no-await-in-loop + .find(query) + .limit(250) + .sort({_id: 1}) + .select(fields) + .lean() + .exec(); + + if (users.length === 0) { + console.warn('All appropriate users found and modified.'); + console.warn(`\n${count} users processed\n`); + break; + } else { + query._id = { + $gt: users[users.length - 1], + }; } - } - process.exit(code); -} -module.exports = processUsers; + await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop + } +}; diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 2c6563f9bc..61f611c0aa 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -313,6 +313,8 @@ "weaponMystery201611Notes": "All manner of delicious and wholesome foods spill forth from this horn. Enjoy the feast! Confers no benefit. November 2016 Subscriber Item.", "weaponMystery201708Text": "Lava Sword", "weaponMystery201708Notes": "The fiery glow of this sword will make quick work of even dark red Tasks! Confers no benefit. August 2017 Subscriber Item.", + "weaponMystery201811Text": "Splendid Sorcerer's Staff", + "weaponMystery201811Notes": "This magical stave is as powerful as it is elegant. Confers no benefit. November 2018 Subscriber Item.", "weaponMystery301404Text": "Steampunk Cane", "weaponMystery301404Notes": "Excellent for taking a turn about town. March 3015 Subscriber Item. Confers no benefit.", @@ -1209,6 +1211,8 @@ "headMystery201809Notes": "The last flowers of autumn's warm days are a reminder of the beauty of the season. Confers no benefit. September 2018 Subscriber Item.", "headMystery201810Text": "Dark Forest Helm", "headMystery201810Notes": "If you find yourself traveling through a spooky place, the glowing red eyes of this helm will surely scare away any enemies in your path. Confers no benefit. October 2018 Subscriber Item.", + "headMystery201811Text": "Splendid Sorcerer's Hat", + "headMystery201811Notes": "Wear this feathered hat to stand out at even the fanciest wizardly gatherings! Confers no benefit. November 2018 Subscriber Item.", "headMystery301404Text": "Fancy Top Hat", "headMystery301404Notes": "A fancy top hat for the finest of gentlefolk! January 3015 Subscriber Item. Confers no benefit.", "headMystery301405Text": "Basic Top Hat", diff --git a/website/common/locales/en/subscriber.json b/website/common/locales/en/subscriber.json index 973ba65172..f7f134f5b4 100644 --- a/website/common/locales/en/subscriber.json +++ b/website/common/locales/en/subscriber.json @@ -150,6 +150,7 @@ "mysterySet201808": "Lava Dragon Set", "mysterySet201809": "Autumnal Armor Set", "mysterySet201810": "Dark Forest Set", + "mysterySet201811": "Splendid Sorcerer Set", "mysterySet301404": "Steampunk Standard Set", "mysterySet301405": "Steampunk Accessories Set", "mysterySet301703": "Peacock Steampunk Set", diff --git a/website/common/script/content/gear/sets/mystery.js b/website/common/script/content/gear/sets/mystery.js index 2da7b37fba..b1cc0d83b4 100644 --- a/website/common/script/content/gear/sets/mystery.js +++ b/website/common/script/content/gear/sets/mystery.js @@ -643,6 +643,12 @@ let head = { mystery: '201810', value: 0, }, + 201811: { + text: t('headMystery201811Text'), + notes: t('headMystery201811Notes'), + mystery: '201811', + value: 0, + }, 301404: { text: t('headMystery301404Text'), notes: t('headMystery301404Notes'), @@ -796,6 +802,12 @@ let weapon = { mystery: '201708', value: 0, }, + 201811: { + text: t('weaponMystery201811Text'), + notes: t('weaponMystery201811Notes'), + mystery: '201811', + value: 0, + }, 301404: { text: t('weaponMystery301404Text'), notes: t('weaponMystery301404Notes'), diff --git a/website/common/script/content/mystery-sets.js b/website/common/script/content/mystery-sets.js index 1c01b0eeaf..9b81dbed1c 100644 --- a/website/common/script/content/mystery-sets.js +++ b/website/common/script/content/mystery-sets.js @@ -230,6 +230,10 @@ let mysterySets = { start: '2018-10-25', end: '2018-11-02', }, + 201811: { + start: '2018-11-28', + end: '2018-12-4', + }, 301404: { start: '3014-03-24', end: '3014-04-02', diff --git a/website/raw_sprites/spritesmith/gear/events/mystery_201811/head_mystery_201811.png b/website/raw_sprites/spritesmith/gear/events/mystery_201811/head_mystery_201811.png new file mode 100644 index 0000000000000000000000000000000000000000..34af551be4294c14a103cad7dd60456ef8c16b68 GIT binary patch literal 1006 zcmeAS@N?(olHy`uVBq!ia0vp^ML-#$>~&;~WJz>X6Lb^!!NAKF6QZ%}g2-8&i?hIPZ7;pXYO4m$fop|FlRaxVoxvN>}!KwmW(oRJ+^{xHw5X zytztx{`pH*cjecvjf_;gx2fjmyvjB8S91!();ztkJUQi_uN#vvr{KD4S1e?=pUe0> z_0OfY?thDZPq}_&#g3a_Zv<`*TCUFjCg^SR{poMoQd~Eso%FcEwc_g2qSAWdthqc| zQ{TS4cJ{q$RPSsm~nUqeCx}!GN>)n^mZ~GLJLn~kZl1%>ncUgE}vfLcL6Z7*HMxMUn z2Xf==1z{^MzpBVx{PIhNsQS_^t18qsN5$7{J!O<>Ch}`eJs#ihh3=xjZXAYTK2qtm6Kw?X>mhPo4-2MwL~iNq$E@rTm|$#}Kan?QC~dWa~5Y zkQF;hy!6l1p5%0UTDHAx<+nM%yhNWLtL&M&>Q468PP^xP??Vfd&u>X)&HldB(c;bV zNfTFyDn+dos@#;ny<96ZOWH`Q{OR8NE7k-G&d=Jt@|TUy{sp&|v$=)X?Ah;dG&Ff{ z-{a}-QDrx3GZjkTay75#J^>8+hevjq6x>v$}3wA zWQrb=2+%f|DDW(+^vWBz*Crxo+h+TLlV0iES$CflMo;{<2NWE@tVbC9m*3C0Vxj8v TOOK{Tf>e9D`njxgN@xNA+Xvd3 literal 0 HcmV?d00001 diff --git a/website/raw_sprites/spritesmith/gear/events/mystery_201811/shop_head_mystery_201811.png b/website/raw_sprites/spritesmith/gear/events/mystery_201811/shop_head_mystery_201811.png new file mode 100644 index 0000000000000000000000000000000000000000..641b9d098ccb5f4549a2a198363e8d18b3da3813 GIT binary patch literal 931 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 literal 0 HcmV?d00001 diff --git a/website/raw_sprites/spritesmith_large/promo_mystery_201810.png b/website/raw_sprites/spritesmith_large/promo_mystery_201810.png deleted file mode 100644 index 0c22b7f47095f256158627eb1402363cc72b3048..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26608 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 diff --git a/website/raw_sprites/spritesmith_large/promo_mystery_201811.png b/website/raw_sprites/spritesmith_large/promo_mystery_201811.png new file mode 100644 index 0000000000000000000000000000000000000000..0066948a0ddc11a4d0796b2fdde890aab573ac5c GIT binary patch literal 14387 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 z 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 literal 0 HcmV?d00001 diff --git a/website/server/controllers/api-v3/news.js b/website/server/controllers/api-v3/news.js index 80eb3a356f..513d92ee62 100644 --- a/website/server/controllers/api-v3/news.js +++ b/website/server/controllers/api-v3/news.js @@ -3,7 +3,7 @@ import { authWithHeaders } from '../../middlewares/auth'; let api = {}; // @TODO export this const, cannot export it from here because only routes are exported from controllers -const LAST_ANNOUNCEMENT_TITLE = 'HAPPY THANKSGIVING!'; +const LAST_ANNOUNCEMENT_TITLE = 'NOVEMBER SUBSCRIBER ITEMS AND STAFF SPOTLIGHT!'; const worldDmg = { // @TODO bailey: false, }; @@ -30,17 +30,19 @@ api.getNews = {

${res.t('newStuff')}

-

11/22/2018 - ${LAST_ANNOUNCEMENT_TITLE}

+

11/28/2018 - ${LAST_ANNOUNCEMENT_TITLE}


-
-

It's Thanksgiving in Habitica! On this day Habiticans celebrate by spending time with loved ones, giving thanks, and riding their glorious turkeys into the magnificent sunset. Some of the NPCs are celebrating the occasion!

-

Turkey Pet, Mount, and Costumes!

-

In celebration of Turkey Day, everyone has received an adorable Turkey! What kind of Turkey? It all depends on how many Habitica Thanksgivings you've celebrated with us. Each Thanksgiving, you'll get a new and exciting Turkey variety!

-

Thank you for using Habitica - we really love you all <3

-
by Lemoness and Beffymaroo
-
+
+

November Subscriber Items Revealed!

+

The November Subscriber Items have been revealed: the Splendid Sorcerer Item Set! You'll receive this item set when you subscribe by December 3. If you're already an active subscriber, reload the site and then head to Inventory > Items to claim your gear!

+

Subscribers also receive the ability to buy Gems for Gold -- the longer you subscribe, the more Gems you can buy per month! There are other perks as well, such as longer access to uncompressed data and a cute Jackalope pet. Best of all, subscriptions let us keep Habitica running. Thank you very much for your support -- it means a lot to us.

+
by Beffymaroo
+
+

Staff Spotlight: Sara, aka Piyo

+

There's a new Staff Spotlight on the blog! Come meet Sara, aka Piyo, and learn how our favorite onesie-wearing cryptid balances her design work for Habitica with her enthusiasm for baking and video games.

+
by Beffymaroo
`, });