acast-content-client v2.6.4
Content-client
This is a npm package used to access content directly from the backend databases. It currently only supports elasticSearch but could support other datasources in the future.
It's a read-only api, so any writes need to be pushed to the servicebus using other services.
Some new additions
Check out how Content-client signes image urls!
##Usage
The client is initiated with the url to the elastic server as follows:
var elastic = Elastic("https://site:91fed7de2d643577c6bc944e195a368f@balin-eu-west-1.searchly.com");It's also possible to pass a default value for the index so that you won't have to provide that for each call:
var elastic = Elastic("https://site:91fed7de2d643577c6bc944e195a368f@balin-eu-west-1.searchly.com", "content-alias");The query format is as follows
var query = {
query: {
aProperty: "aValue"
},
skip: 10,
limit: 31
}It's possible to include parent or child entities
var query = {
query: {
aProperty: "aValue"
},
includes: [
{
type: "bling",
relation: "child"
},
{
type: "channel",
relation: "parent"
}],
skip: 10,
limit: 31
}If you only need a specific field you can use the fields property:
var query = {
query: {
aProperty: "aValue"
},
fields: ["name"]
}It's possible to filter by multiple properties. Those are applied with logical OR:
var query = {
query: {
aProperty: ["aValue", "bValue"]
},
fields: ["name"]
}NOTE: The query below isn't supported after a rewrite of the aggregations
(Now added support for nested includes
var query = {
query: {
aProperty: "aValue"
},
includes: [
{
type: "acast",
relation: "child",
includes: [
{
type: "bling",
relation: "child",
limit: 1000
}
]
}],
skip: 10,
limit: 31
}) Word of caution for nested includes: The limit is per entity, so if you want all blings for a set of acasts you need to use a pretty high limit
Signed Image Urls
When there is a image property available there should also be a image_signature and image_signed property. The signing is done omitting query string parameters and protocol (http/https).
| Property | Purpose |
|---|---|
| image_signature | Is a 40 character hexadecimal hash of the image url |
| image_signed | The whole address to the image via proxy and all |
Example of a bling image
{
duration: 30,
start: 1175,
type: 'com.acast.bling.iframe',
id: 'b37376ef-4337-4346-bf9b-2b298370bd85',
body: [Object],
image: 'https://acastprod.blob.core.windows.net:443/media/v1/b37376ef-4337-4346-bf9b-2b298370bd85/ska-rmavbild2015-11-20kl.09.44.37-ih7f835p.png',
description: 'Valerie Jerrett and President Obama ',
image_signed: 'https://imagecdn.acast.com/imagesign?source=https%3A%2F%2Facastprod.blob.core.windows.net%3A443%2Fmedia%2Fv1%2Fb37376ef-4337-4346-bf9b-2b298370bd85%2Fska-rmavbild2015-11-20kl.09.44.37-ih7f835p.png&sign=a83f5b00e4ccf3bc08f6205c72e53ec27923cccd',
image_signature: 'a83f5b00e4ccf3bc08f6205c72e53ec27923cccd'
}Config
| Key | Purpose | Values | Default |
|---|---|---|---|
| IMAGE_SIGN_KEY | Used to cryptographicly sign the url | Any string | 'i-like-cupcakes' |
| IMAGE_PROXY_URL | The base url for the proxy route | A valid URL + route | 'https://imagecdn.acast.com/imagesign' |
| LOG_QUERIES | Toggles logging of elastic searches | verbose | empty = no logging |
| AZURE_SERVICEBUS_CONNECTION_STRING | The service bus is used for logging searches | ||
| APP_NAME | Will be included in elastic logs | ||
| APP_REGION | Will be included in elastic logs |
Categories codes
| iTunes main categories | Acast categories (codes) |
|---|---|
| Arts | arts |
| Business | business |
| Comedy | comedy |
| Education | education |
| Games & Hobbies | hobbies |
| Government & Organizations | govorg |
| Health | health |
| Kids & Family | family |
| Music | music |
| News & Politics | politics |
| Religion & Spirituality | religion |
| Science & Medicine | science |
| Society & Culture | society |
| Sports & Hobbies (Sports & Recreation) | sports |
| Technology | technology |
| TV & Film | film |
6 years ago