openvibers/openvibe.search Commits
Meme and Exchange as Search sources (#196)
Changes
@@@ -54,6 +54,9 @@ const DEFAULT_EVENT_OWNERS = ['wiki', 'blog', 'news', 'reviews', 'deals', 'coupo'shoes',// OpenVibe.Tours' places, cities and self-guided walks (contracts 0.274.0).'tours',++ // Owner-API writers through openvibe-publishing/search-relay (their own outbox, delivered by PUT/DELETE):++ // OpenVibe.Meme's entries and OpenVibe.Exchange's listings.++ 'meme', 'exchange',// Owner-API writers listed so their front-page card and ?owner= filter exist: OpenVibe.Video's uploads (MediaHub,// service id media-hub; an event type has no hyphen), OpenVibe.Food's checked recipes and OpenVibe.Bot's model pages.'media-hub', 'food', 'bot'];@@@ -220,6 +220,8 @@ const SOURCES = {bot: ['OpenVibe.Bot', 'The robots you can drive from a browser, and how to connect each.'],shoes: ['OpenVibe.Shoes', 'Shoe models with every store\'s price, the history and the size curve.'],tours: ['OpenVibe.Tours', 'Places to see, cities and self-guided walks, from OpenStreetMap and Wikivoyage.'],++ meme: ['OpenVibe.Meme', 'Running jokes, catchphrases and memes, with where each one started.'],++ exchange: ['OpenVibe.Exchange', 'Themes, templates and add-ons people share, with their permissions and licence.'],};const ICON_OF = { sources: 'docs', 'media-hub': 'video' };// What a count of each kind is called on the front page ("10,621 job listings"); a kind not named here is "documents".@@@ -233,6 +235,7 @@ const KIND_WORDS = {'deals/offer': ['deal', 'deals'], 'games/world': ['creator world', 'creator worlds'], 'media-hub/video': ['video', 'videos'], 'food/recipe': ['recipe', 'recipes'],'shoes/shoe': ['shoe model', 'shoe models'],'tours/place': ['place to see', 'places to see'], 'tours/city': ['travel city', 'travel cities'], 'tours/route': ['self-guided walk', 'self-guided walks'],++ 'meme/entry': ['meme', 'memes'], 'exchange/listing': ['shared listing', 'shared listings'],};const fmt = (n) => Number(n).toLocaleString('en-US');const kindWords = (owner, type, n) => { const w = KIND_WORDS[`${owner}/${type}`]; return `${fmt(n)} ${w ? w[n === 1 ? 0 : 1] : n === 1 ? 'document' : 'documents'}`; };
@@ -54,6 +54,9 @@ const DEFAULT_EVENT_OWNERS = ['wiki', 'blog', 'news', 'reviews', 'deals', 'coupo
@@ -54,6 +54,9 @@ const DEFAULT_EVENT_OWNERS = ['wiki', 'blog', 'news', 'reviews', 'deals', 'coupo
'shoes',
'shoes',
// OpenVibe.Tours' places, cities and self-guided walks (contracts 0.274.0).
// OpenVibe.Tours' places, cities and self-guided walks (contracts 0.274.0).
'tours',
'tours',
+ // Owner-API writers through openvibe-publishing/search-relay (their own outbox, delivered by PUT/DELETE):
+ // OpenVibe.Meme's entries and OpenVibe.Exchange's listings.
+ 'meme', 'exchange',
// Owner-API writers listed so their front-page card and ?owner= filter exist: OpenVibe.Video's uploads (MediaHub,
// Owner-API writers listed so their front-page card and ?owner= filter exist: OpenVibe.Video's uploads (MediaHub,
// service id media-hub; an event type has no hyphen), OpenVibe.Food's checked recipes and OpenVibe.Bot's model pages.
// service id media-hub; an event type has no hyphen), OpenVibe.Food's checked recipes and OpenVibe.Bot's model pages.
'media-hub', 'food', 'bot'];
'media-hub', 'food', 'bot'];
@@ -220,6 +220,8 @@ const SOURCES = {
@@ -220,6 +220,8 @@ const SOURCES = {
bot: ['OpenVibe.Bot', 'The robots you can drive from a browser, and how to connect each.'],
bot: ['OpenVibe.Bot', 'The robots you can drive from a browser, and how to connect each.'],
shoes: ['OpenVibe.Shoes', 'Shoe models with every store\'s price, the history and the size curve.'],
shoes: ['OpenVibe.Shoes', 'Shoe models with every store\'s price, the history and the size curve.'],
tours: ['OpenVibe.Tours', 'Places to see, cities and self-guided walks, from OpenStreetMap and Wikivoyage.'],
tours: ['OpenVibe.Tours', 'Places to see, cities and self-guided walks, from OpenStreetMap and Wikivoyage.'],
+ meme: ['OpenVibe.Meme', 'Running jokes, catchphrases and memes, with where each one started.'],
+ exchange: ['OpenVibe.Exchange', 'Themes, templates and add-ons people share, with their permissions and licence.'],
};
};
const ICON_OF = { sources: 'docs', 'media-hub': 'video' };
const ICON_OF = { sources: 'docs', 'media-hub': 'video' };
// What a count of each kind is called on the front page ("10,621 job listings"); a kind not named here is "documents".
// What a count of each kind is called on the front page ("10,621 job listings"); a kind not named here is "documents".
@@ -233,6 +235,7 @@ const KIND_WORDS = {
@@ -233,6 +235,7 @@ const KIND_WORDS = {
'deals/offer': ['deal', 'deals'], 'games/world': ['creator world', 'creator worlds'], 'media-hub/video': ['video', 'videos'], 'food/recipe': ['recipe', 'recipes'],
'deals/offer': ['deal', 'deals'], 'games/world': ['creator world', 'creator worlds'], 'media-hub/video': ['video', 'videos'], 'food/recipe': ['recipe', 'recipes'],
'shoes/shoe': ['shoe model', 'shoe models'],
'shoes/shoe': ['shoe model', 'shoe models'],
'tours/place': ['place to see', 'places to see'], 'tours/city': ['travel city', 'travel cities'], 'tours/route': ['self-guided walk', 'self-guided walks'],
'tours/place': ['place to see', 'places to see'], 'tours/city': ['travel city', 'travel cities'], 'tours/route': ['self-guided walk', 'self-guided walks'],
+ 'meme/entry': ['meme', 'memes'], 'exchange/listing': ['shared listing', 'shared listings'],
};
};
const fmt = (n) => Number(n).toLocaleString('en-US');
const fmt = (n) => Number(n).toLocaleString('en-US');
const kindWords = (owner, type, n) => { const w = KIND_WORDS[`${owner}/${type}`]; return `${fmt(n)} ${w ? w[n === 1 ? 0 : 1] : n === 1 ? 'document' : 'documents'}`; };
const kindWords = (owner, type, n) => { const w = KIND_WORDS[`${owner}/${type}`]; return `${fmt(n)} ${w ? w[n === 1 ? 0 : 1] : n === 1 ? 'document' : 'documents'}`; };