568 lines
10 KiB
Python
568 lines
10 KiB
Python
|
|
FEED_QUERY = '''
|
|
query feedQuery(
|
|
$locale: String!
|
|
$countryCode: String
|
|
$offset: Int
|
|
$postsPerPage: Int
|
|
$category: String
|
|
) {
|
|
TransientStream {
|
|
myTransientFeed(countryCode: $countryCode, locale: $locale) {
|
|
id
|
|
activity {
|
|
... on LinkAccountActivity {
|
|
type
|
|
created_at
|
|
platforms
|
|
}
|
|
... on SuggestedFriendsActivity {
|
|
type
|
|
created_at
|
|
platform
|
|
suggestions {
|
|
epicId
|
|
epicDisplayName
|
|
platformFullName
|
|
platformAvatar
|
|
}
|
|
}
|
|
... on IncomingInvitesActivity {
|
|
type
|
|
created_at
|
|
invites {
|
|
epicId
|
|
epicDisplayName
|
|
}
|
|
}
|
|
... on RecentPlayersActivity {
|
|
type
|
|
created_at
|
|
players {
|
|
epicId
|
|
epicDisplayName
|
|
playedGameName
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Blog {
|
|
dieselBlogPosts: getPosts(
|
|
locale: $locale
|
|
offset: $offset
|
|
postsPerPage: $postsPerPage
|
|
category: $category
|
|
) {
|
|
blogList {
|
|
_id
|
|
author
|
|
category
|
|
content
|
|
urlPattern
|
|
slug
|
|
sticky
|
|
title
|
|
date
|
|
image
|
|
shareImage
|
|
trendingImage
|
|
url
|
|
featured
|
|
link
|
|
externalLink
|
|
}
|
|
}
|
|
}
|
|
}
|
|
'''
|
|
|
|
REVIEWS_QUERY = '''
|
|
query productReviewsQuery($sku: String!) {
|
|
OpenCritic {
|
|
productReviews(sku: $sku) {
|
|
id
|
|
name
|
|
openCriticScore
|
|
reviewCount
|
|
percentRecommended
|
|
openCriticUrl
|
|
award
|
|
topReviews {
|
|
publishedDate
|
|
externalUrl
|
|
snippet
|
|
language
|
|
score
|
|
author
|
|
ScoreFormat {
|
|
id
|
|
description
|
|
}
|
|
OutletId
|
|
outletName
|
|
displayScore
|
|
}
|
|
}
|
|
}
|
|
}
|
|
'''
|
|
|
|
MEDIA_QUERY = '''
|
|
query fetchMediaRef($mediaRefId: String!) {
|
|
Media {
|
|
getMediaRef(mediaRefId: $mediaRefId) {
|
|
accountId
|
|
outputs {
|
|
duration
|
|
url
|
|
width
|
|
height
|
|
key
|
|
contentType
|
|
}
|
|
namespace
|
|
}
|
|
}
|
|
}
|
|
'''
|
|
|
|
ADDONS_QUERY = '''
|
|
query getAddonsByNamespace(
|
|
$categories: String!
|
|
$count: Int!
|
|
$country: String!
|
|
$locale: String!
|
|
$namespace: String!
|
|
$sortBy: String!
|
|
$sortDir: String!
|
|
) {
|
|
Catalog {
|
|
catalogOffers(
|
|
namespace: $namespace
|
|
locale: $locale
|
|
params: {
|
|
category: $categories
|
|
count: $count
|
|
country: $country
|
|
sortBy: $sortBy
|
|
sortDir: $sortDir
|
|
}
|
|
) {
|
|
elements {
|
|
countriesBlacklist
|
|
customAttributes {
|
|
key
|
|
value
|
|
}
|
|
description
|
|
developer
|
|
effectiveDate
|
|
id
|
|
isFeatured
|
|
keyImages {
|
|
type
|
|
url
|
|
}
|
|
lastModifiedDate
|
|
longDescription
|
|
namespace
|
|
offerType
|
|
productSlug
|
|
releaseDate
|
|
status
|
|
technicalDetails
|
|
title
|
|
urlSlug
|
|
}
|
|
}
|
|
}
|
|
}
|
|
'''
|
|
|
|
CATALOG_QUERY = '''
|
|
query catalogQuery(
|
|
$category: String
|
|
$count: Int
|
|
$country: String!
|
|
$keywords: String
|
|
$locale: String
|
|
$namespace: String!
|
|
$sortBy: String
|
|
$sortDir: String
|
|
$start: Int
|
|
$tag: String
|
|
) {
|
|
Catalog {
|
|
catalogOffers(
|
|
namespace: $namespace
|
|
locale: $locale
|
|
params: {
|
|
count: $count
|
|
country: $country
|
|
category: $category
|
|
keywords: $keywords
|
|
sortBy: $sortBy
|
|
sortDir: $sortDir
|
|
start: $start
|
|
tag: $tag
|
|
}
|
|
) {
|
|
elements {
|
|
isFeatured
|
|
collectionOfferIds
|
|
title
|
|
id
|
|
namespace
|
|
description
|
|
keyImages {
|
|
type
|
|
url
|
|
}
|
|
seller {
|
|
id
|
|
name
|
|
}
|
|
productSlug
|
|
urlSlug
|
|
items {
|
|
id
|
|
namespace
|
|
}
|
|
customAttributes {
|
|
key
|
|
value
|
|
}
|
|
categories {
|
|
path
|
|
}
|
|
price(country: $country) {
|
|
totalPrice {
|
|
discountPrice
|
|
originalPrice
|
|
voucherDiscount
|
|
discount
|
|
fmtPrice(locale: $locale) {
|
|
originalPrice
|
|
discountPrice
|
|
intermediatePrice
|
|
}
|
|
}
|
|
lineOffers {
|
|
appliedRules {
|
|
id
|
|
endDate
|
|
}
|
|
}
|
|
}
|
|
linkedOfferId
|
|
linkedOffer {
|
|
effectiveDate
|
|
customAttributes {
|
|
key
|
|
value
|
|
}
|
|
}
|
|
}
|
|
paging {
|
|
count
|
|
total
|
|
}
|
|
}
|
|
}
|
|
}
|
|
'''
|
|
|
|
CATALOG_TAGS_QUERY = '''
|
|
query catalogTags($namespace: String!) {
|
|
Catalog {
|
|
tags(namespace: $namespace, start: 0, count: 999) {
|
|
elements {
|
|
aliases
|
|
id
|
|
name
|
|
referenceCount
|
|
status
|
|
}
|
|
}
|
|
}
|
|
}
|
|
'''
|
|
|
|
PREREQUISITES_QUERY = '''
|
|
query fetchPrerequisites($offerParams: [OfferParams]) {
|
|
Launcher {
|
|
prerequisites(offerParams: $offerParams) {
|
|
namespace
|
|
offerId
|
|
missingPrerequisiteItems
|
|
satisfiesPrerequisites
|
|
}
|
|
}
|
|
}
|
|
'''
|
|
|
|
PROMOTIONS_QUERY = '''
|
|
query promotionsQuery(
|
|
$namespace: String!
|
|
$country: String!
|
|
$locale: String!
|
|
) {
|
|
Catalog {
|
|
catalogOffers(
|
|
namespace: $namespace
|
|
locale: $locale
|
|
params: {
|
|
category: "freegames"
|
|
country: $country
|
|
sortBy: "effectiveDate"
|
|
sortDir: "asc"
|
|
}
|
|
) {
|
|
elements {
|
|
title
|
|
description
|
|
id
|
|
namespace
|
|
categories {
|
|
path
|
|
}
|
|
linkedOfferNs
|
|
linkedOfferId
|
|
keyImages {
|
|
type
|
|
url
|
|
}
|
|
productSlug
|
|
promotions {
|
|
promotionalOffers {
|
|
promotionalOffers {
|
|
startDate
|
|
endDate
|
|
discountSetting {
|
|
discountType
|
|
discountPercentage
|
|
}
|
|
}
|
|
}
|
|
upcomingPromotionalOffers {
|
|
promotionalOffers {
|
|
startDate
|
|
endDate
|
|
discountSetting {
|
|
discountType
|
|
discountPercentage
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
'''
|
|
|
|
OFFERS_QUERY = '''
|
|
query catalogQuery(
|
|
$productNamespace: String!
|
|
$offerId: String!
|
|
$locale: String
|
|
$country: String!
|
|
$includeSubItems: Boolean!
|
|
) {
|
|
Catalog {
|
|
catalogOffer(namespace: $productNamespace, id: $offerId, locale: $locale) {
|
|
title
|
|
id
|
|
namespace
|
|
description
|
|
effectiveDate
|
|
expiryDate
|
|
isCodeRedemptionOnly
|
|
keyImages {
|
|
type
|
|
url
|
|
}
|
|
seller {
|
|
id
|
|
name
|
|
}
|
|
productSlug
|
|
urlSlug
|
|
url
|
|
tags {
|
|
id
|
|
}
|
|
items {
|
|
id
|
|
namespace
|
|
}
|
|
customAttributes {
|
|
key
|
|
value
|
|
}
|
|
categories {
|
|
path
|
|
}
|
|
price(country: $country) {
|
|
totalPrice {
|
|
discountPrice
|
|
originalPrice
|
|
voucherDiscount
|
|
discount
|
|
currencyCode
|
|
currencyInfo {
|
|
decimals
|
|
}
|
|
fmtPrice(locale: $locale) {
|
|
originalPrice
|
|
discountPrice
|
|
intermediatePrice
|
|
}
|
|
}
|
|
lineOffers {
|
|
appliedRules {
|
|
id
|
|
endDate
|
|
discountSetting {
|
|
discountType
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
offerSubItems(namespace: $productNamespace, id: $offerId)
|
|
@include(if: $includeSubItems) {
|
|
namespace
|
|
id
|
|
releaseInfo {
|
|
appId
|
|
platform
|
|
}
|
|
}
|
|
}
|
|
}
|
|
'''
|
|
|
|
SEARCH_STORE_QUERY = '''
|
|
query searchStoreQuery(
|
|
$allowCountries: String
|
|
$category: String
|
|
$count: Int
|
|
$country: String!
|
|
$keywords: String
|
|
$locale: String
|
|
$namespace: String
|
|
$itemNs: String
|
|
$sortBy: String
|
|
$sortDir: String
|
|
$start: Int
|
|
$tag: String
|
|
$releaseDate: String
|
|
$withPrice: Boolean = false
|
|
$withPromotions: Boolean = false
|
|
) {
|
|
Catalog {
|
|
searchStore(
|
|
allowCountries: $allowCountries
|
|
category: $category
|
|
count: $count
|
|
country: $country
|
|
keywords: $keywords
|
|
locale: $locale
|
|
namespace: $namespace
|
|
itemNs: $itemNs
|
|
sortBy: $sortBy
|
|
sortDir: $sortDir
|
|
releaseDate: $releaseDate
|
|
start: $start
|
|
tag: $tag
|
|
) {
|
|
elements {
|
|
title
|
|
id
|
|
namespace
|
|
description
|
|
effectiveDate
|
|
keyImages {
|
|
type
|
|
url
|
|
}
|
|
seller {
|
|
id
|
|
name
|
|
}
|
|
productSlug
|
|
urlSlug
|
|
url
|
|
tags {
|
|
id
|
|
}
|
|
items {
|
|
id
|
|
namespace
|
|
}
|
|
customAttributes {
|
|
key
|
|
value
|
|
}
|
|
categories {
|
|
path
|
|
}
|
|
price(country: $country) @include(if: $withPrice) {
|
|
totalPrice {
|
|
discountPrice
|
|
originalPrice
|
|
voucherDiscount
|
|
discount
|
|
currencyCode
|
|
currencyInfo {
|
|
decimals
|
|
}
|
|
fmtPrice(locale: $locale) {
|
|
originalPrice
|
|
discountPrice
|
|
intermediatePrice
|
|
}
|
|
}
|
|
lineOffers {
|
|
appliedRules {
|
|
id
|
|
endDate
|
|
discountSetting {
|
|
discountType
|
|
}
|
|
}
|
|
}
|
|
}
|
|
promotions(category: $category) @include(if: $withPromotions) {
|
|
promotionalOffers {
|
|
promotionalOffers {
|
|
startDate
|
|
endDate
|
|
discountSetting {
|
|
discountType
|
|
discountPercentage
|
|
}
|
|
}
|
|
}
|
|
upcomingPromotionalOffers {
|
|
promotionalOffers {
|
|
startDate
|
|
endDate
|
|
discountSetting {
|
|
discountType
|
|
discountPercentage
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
paging {
|
|
count
|
|
total
|
|
}
|
|
}
|
|
}
|
|
}
|
|
''' |