Rugby Union news, analysis and opinions.
GTAV Cruises, The largest online cruising community of GTAV.
This Oculus/Meta store watch monitors daily sales, new releases and game announces and prepares a short brief twice a day: in the morning and in the evening. Bot is powered by VRguru.net engine and uses additional information from http://soon.vrguru.net - upcoming VR releases calendar.
5/30/2023 946 submissions are currently in the queue as of 8:00 on AM:. We are working on (Friday) 5/26/2023 work.
Fetched: Tue, 30 May 2023 14:15:01 GMT
---
openapi: 3.0.3
info:
title: Datto Workplace Public API
description: API for Datto Workplace file access
license:
name: Apache 2.0
url:
http://www.apache.org/licenses/LICENSE-2.0.html version: 1.0.0-oas3
servers:
- url: https://{domain}/{cell}/api/v1
variables:
domain:
default: us.workplace.datto.com
enum:
- us.workplace.datto.com
- eu.workplace.datto.com
- ca.workplace.datto.com
- au.workplace.datto.com
- us.fileprotection.datto.com
- eu.fileprotection.datto.com
- ca.fileprotection.datto.com
- au.fileprotection.datto.com
cell:
default: 1
enum:
- 1
- 6
- 15
- 2
- 4
- 7
- 16
- 3
- 5
- 8
- 9
- 17
- 10
- 11
- 12
- 13
- 14
tags:
- name: file
description: File and folder operations
components:
schemas:
FileItem:
type: object
properties:
name:
type: string
description: Name of the file/folder item
example: Text document.docx
id:
type: integer
description: ID of item
format: int64
example: 26
size:
type: integer
description: File size in bytes
format: int64
example: 93943
folder:
type: boolean
description: Flag indicating that given item is a folder
example: false
time:
type: integer
description: Last update timestamp - number of milliseconds from January 1, 1970,00:00:00 GMT
format: int64
example: 1192798761
online:
type: boolean
description: Flag indicating that the file is available for download
metadata: O
example: true
stored:
type: boolean
description: Flag indicating that the item is fully stored in the cloud storage
metadata: S
example: true
mimeType:
type: string
description: Mime type of file, not used for foldeproject
metadata: M
example: text/plain
changedByUserName:
type: string
description: full name of user who performed last change of file
metadata: j
example: John Smith
canUpload:
type: boolean
description: Flag indicating that current user can upload files to a folder
metadata: W
example: true
canWrite:
type: boolean
description: Flag indicating that current user can overwrite the file
metadata: W
example: true
isFavorite:
type: boolean
description: Flag indicating that file/foldeproject is marked as favorite
metadata: V
example: true
parentFolderId:
type: integer
format: int64
description: Id of foldeproject where the file is located
metadata: V
example: 26
lock:
type: string
description: Information whether the file is locked. When the file is locked, object containing full name, email of user who locked the file and time of lock is contained. When the file is not locked, null is returned.
metadata: G
example: {
"fullname": "John Smith",
"email": "
[email protected]",
"lockedSince": 1627556670285
}
fileLink:
type: string
description: Link (URL) pointing to this file, folder or project. If link is public, anyone with the link can access the file. Otherwise, only users with access to the file can use it.
metadata: s
example:
https://workplace.datto.com/filelink/7-135-e2ca88b355-2 isPublicLink:
type: boolean
description: Flag indicating whether fileLink is public
metadata: s
example: true
isLinkable:
type: boolean
description: Flag indicating whether current user can create a public link to file/foldeproject
metadata: H
example: true
isShareable:
type: boolean
description: Flag indicating whether current user can share file/foldeproject to team members
metadata: H
example: true
description: File item detail. Attributes with metadata flag are returned only when request contains metadata parameter with given letter.
RequestError:
type: object
properties:
type:
$ref : '#/components/schemas/ErrorType'
title:
type: string
description: short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem.
example: File not found
detail:
type: string
description: A human-readable explanation specific to this occurrence of the problem.
example: File with id was not found or you have no access to it
instance:
type: string
description: A URI reference that identifies the specific occurrence of the problem.
example:
https://us.workplace.datto.com/api/v1/file/123 method:
type: string
description: A request method used.
example: GET
parameters:
type: string
description: A query parameters providing information about input data.
example: fileID=123
requestId:
type: string
description: A request identifier that uniquely identifies a request.
example: 29347.1a
timestamp:
type: string
description: A request time.
example: "2022-02-22T02:03:00.925"
ErrorType:
type: string
example: Unauthorized
description:
Error description:
* `Unauthorized` - Access denied, provide valid username / password
* `InternalServerError` - Unexpected error, contact your administrator
* `OperationNotFound` - Combination of request path and parameters does not match any of endpoints
* `InvalidParameter` - Parameter is missing or has invalid value
* `ComputerNotFound` - A computer not found
* `AccountNotFound` - User to who resources belong not found
* `TooManyRequests` - You reached limit of requests allowed per client
* `FileNotFound` - File with id was not found or you have no access to it
* `NotFile` - Operation can be provided only on file
* `NotFolder` - Operation can be provided only on folders or projects (not on files)
* `NotParentFolder` - FileID parameter refers to file which has other parent foldeproject than specified in ParentID parameter.
* `FileIsCurrentlyNotAvailable` - A file is not available currently
* `IncorrectMimeType` - A file format parameter has value that cannot be parsed as MIME type
* `UnsupportedFormat` - A file format isn't currently supported in DWP/DFP
* `UnavailableFormat` - A requested file format is not available for this fileID
* `NotProjectFile` - File cannot be renamed
* `InvalidFilename` - Supplied filename is not valid, or file with given name already exists
* `PermissionDenied` - Cannot rename given file because you don't have permission to do so
* `OperationFailed` - Generic error code indicating an internal failure
* `UnlockNotAllowed` - Unlock by this user is not allowed
* `FolderExists` - Folder with given name already exists
* `FolderNotFound` - Folder with given ID does not exist or you have no access to it
* `FileIsLocked` - Unlock by this user is not allowed
* `CannotUploadToFolder` - It is not possible to upload file into given folder (usually due to lack of permission)
securitySchemes:
basicAuth:
type: http
scheme: basic
security:
- basicAuth: []
paths:
/file/{fileID}:
get:
tags:
- file
summary: Get info about file item
description: This command returns file object for given file (or folder) ID
operationId: file:info
parameters:
- name: fileID
in: path
description: ID of file item
required: true
style: form
explode: true
schema:
type: integer
format: int64
- name: metadata
in: query
description: optional parameter, contains list of letters, which denote requested metadata. This metadata will be added to standard File object info. See File object for more details about optional metadata.
required: false
style: form
explode: true
schema:
type: string
responses:
"200":
description: File item detail
content:
application/json:
schema:
$ref: '#/components/schemas/FileItem'
"403":
description: Not authorized - invalid API key/secret or other problem with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: Unauthorized
title: Access denied.
detail: Please provide valid username / password.
instance:
https://us.workplace.datto.com/api/v1/file/123 method: GET
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
"404":
description: File not found
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: FileNotFound
title: File not found.
detail: File with id was not found or you have no access to it
instance:
https://us.workplace.datto.com/api/v1/file/123 method: GET
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
patch:
tags:
- file
summary: Rename, lock, unlock file
description: This command renames and/or locks/unlocks file, folder or project with given file ID. Only files can be locked, not folders or projects.
operationId: file:rename
parameters:
- name: fileID
in: path
description: ID of file item
required: true
style: form
explode: true
schema:
type: integer
format: int64
- name: name
in: query
description: New name to use
required: false
style: form
explode: true
schema:
type: string
- name: locked
in: query
description: true if file is to be locked, false if file is to be unlocked
required: false
style: form
explode: true
schema:
type: boolean
- name: metadata
in: query
description: File object fields to return on success
required: false
style: form
explode: true
schema:
type: string
responses:
"200":
description: File object
content:
application/json:
schema:
$ref: '#/components/schemas/FileItem'
"400":
description: Bad request, incorrect input parameters provided
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: InvalidParameter
title: Invalid parameter provided.
detail: "At least one of parameters needs to be provided: name, locked"
instance:
https://us.workplace.datto.com/api/v1/file/123 method: PATCH
parameters: ""
requestId: 373.1a
timestamp: "2022-09-19T14:53:30"
"401":
description: Access denied due to permission
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: PermissionDenied
title: Permission denied.
detail: Cannot modify given file because of missing permission.
instance:
https://us.workplace.datto.com/api/v1/file/123 method: PATCH
parameters: name=renamed.txt
requestId: 691.1a
timestamp: "2022-09-19T15:09:51"
"403":
description: Not authorized - invalid API key/secret or other problem with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: Unauthorized
title: Access denied.
detail: Please provide valid username / password.
instance:
https://us.workplace.datto.com/api/v1/file/123 method: PATCH
parameters: name=renamedFile.txt
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
"404":
description: File not found
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: FileNotFound
title: File not found.
detail: File with id was not found or you have no access to it
instance:
https://us.workplace.datto.com/api/v1/file/123 method: PATCH
parameters: name=renamedFile.txt
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
delete:
tags:
- file
summary: Remove file
description: This command removes file, folder or project with given file ID. When removing folder or project,
all files and subfolders within the folder are removed.
operationId: file:remove
parameters:
- name: fileID
in: path
description: ID of file/folder to remove.
required: true
style: form
explode: true
schema:
type: integer
format: int64
responses:
"200":
description: Result of remove operation
content:
application/json:
example:
result: successfullyRemoved
"401":
description: Permission denied, current user cannot remove given file
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: PermissionDenied
title: Permission denied.
detail: Cannot modify given file because of missing permission.
instance:
https://us.workplace.datto.com/api/v1/file/123 method: DELETE
parameters: fileID=123
requestId: 594.1a
timestamp: "2022-09-19T15:03:44"
"403":
description: Not authorized - invalid API key/secret or other problem with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: Unauthorized
title: Access denied.
detail: Please provide valid username / password.
instance:
https://us.workplace.datto.com/api/v1/file/123 method: DELETE
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
"404":
description: File not found
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: FileNotFound
title: File not found.
detail: File with id was not found or you have no access to it
instance:
https://us.workplace.datto.com/api/v1/file/123 method: DELETE
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
/file/{fileID}/data:
get:
tags:
- file
summary: Get content of the file
description: This command returns content of the file.
operationId: file:data
parameters:
- name: fileID
in: path
description: ID of file item
required: true
style: form
explode: true
schema:
type: integer
format: int64
responses:
"200":
description: File item content
content:
application/octet-stream:
schema:
type: string
format: binary
"400":
description: Bad request, unable to provide file content
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: FileIsCurrentlyNotAvailable
title: File not available.
detail: A file is not available currently. This means that file is not stored on DWP/DFP servers, and remote computer is not connected.
instance:
https://us.workplace.datto.com/api/v1/file/123/data method: GET
parameters: ""
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
"403":
description: Not authorized - invalid API key/secret or other problem with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: Unauthorized
title: Access denied.
detail: Please provide valid username / password.
instance:
https://us.workplace.datto.com/api/v1/file/123/data method: GET
parameters: ""
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
"404":
description: File not found
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: FileNotFound
title: File not found.
detail: File with id was not found or you have no access to it
instance:
https://us.workplace.datto.com/api/v1/file/123/data method: GET
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
/file/{parentID}/files:
get:
tags:
- file
summary: Get list of files in a project or folder
description: This command returns list of file objects for given project or folder ID
operationId: file:list
parameters:
- name: parentID
in: path
description: ID of folder or project
required: true
style: form
explode: true
schema:
type: integer
format: int64
- name: metadata
in: query
description: optional parameter, contains list of letters, which denote requested metadata. This metadata will be added to standard File object info. See File object for more details about optional metadata.
required: false
style: form
explode: true
schema:
type: string
responses:
"200":
description: List of file objects
content:
application/json:
schema:
type: object
"403":
description: Not authorized - invalid API key/secret or other problem with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: Unauthorized
title: Access denied.
detail: Please provide valid username / password.
instance:
https://us.workplace.datto.com/api/v1/file/123/files method: GET
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
"404":
description: File not found
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: FileNotFound
title: File not found.
detail: File with id was not found or you have no access to it
instance:
https://us.workplace.datto.com/api/v1/file/123/files method: GET
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
post:
tags:
- file
summary: Upload file
description: This command upload file on remote computer into selected folder.
operationId: file:upload
parameters:
- name: parentID
in: path
description: ID of parent folder
required: true
style: form
explode: true
schema:
type: integer
format: int64
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
partData:
type: string
format: binary
description: Required parameter, contains data of file.
required: true
fileName:
type: string
description: Name of uploaded file (including extension). E.g. document.docx
required: true
makeUnique:
type: boolean
description: When makeUnique is true, and file with given name already exists, file is saved under new filename instead.
required: false
default: false
metadata:
type: string
description: Optional parameter, its presense activates fileInfo output.
required: false
responses:
"200":
description: File object
content:
application/json:
schema:
type: object
"400":
description: Bad request, incorrect input parameters provided
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: InvalidParameter
title: Invalid parameter provided.
detail: fileName
instance:
https://us.workplace.datto.com/api/v1/file/123 method: POST
parameters: ""
requestId: 373.1a
timestamp: "2022-09-19T14:53:30"
"401":
description: Access denied due to permission
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: PermissionDenied
title: Permission denied.
detail: Cannot modify given file because of missing permission.
instance:
https://us.workplace.datto.com/api/v1/file/123 method: POST
parameters: fileID=123
requestId: 594.1a
timestamp: "2022-09-19T15:03:44"
"403":
description: Not authorized - invalid API key/secret or other problem with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: Unauthorized
title: Access denied.
detail: Please provide valid username / password.
instance:
https://us.workplace.datto.com/api/v1/file/123 method: POST
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
"404":
description: File not found
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: FileNotFound
title: File not found.
detail: File with id was not found or you have no access to it
instance:
https://us.workplace.datto.com/api/v1/file/123 method: POST
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
/file/search:
get:
tags:
- file
summary: Search for files and folders
description:
This command lists project files or folders matching the filename pattern.
operationId: file:search
parameters:
- name: filename
in: query
description: filename pattern, can use % as a wildcard (as in SQL LIKE).
required: false
style: form
explode: true
schema:
type: string
- name: query
in: query
description: Content search query. Wildcard character in this case is *.
required: false
style: form
explode: true
schema:
type: string
- name: metadata
in: query
description: optional parameter, contains list of letters, which denote requested metadata. This metadata will be added to standard File object info. See File object for more details about optional metadata.
required: false
style: form
explode: true
schema:
type: string
- name: maxResults
in: query
description: maximum number of results to return. Defaults to 100. High values will slow down the search, if there are too many matching files.
required: false
style: form
explode: true
schema:
type: integer
responses:
"200":
description: List of file objects
content:
application/json:
schema:
type: object
"400":
description: Bad request, incorrect input parameters provided
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: InvalidParameter
title: Invalid parameter provided.
detail: filename
instance:
https://us.workplace.datto.com/api/v1/file/search method: GET
parameters: ""
requestId: 373.1a
timestamp: "2022-09-19T14:53:30"
"403":
description: Not authorized - invalid API key/secret or other problem with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: Unauthorized
title: Access denied.
detail: Please provide valid username / password.
instance:
https://us.workplace.datto.com/api/v1/file/search method: GET
parameters: ""
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
/file/{parentID}:
post:
tags:
- file
summary: Create a folder
description:
This command creates a new folder inside project or another folder.
operationId: file:newFolder
parameters:
- name: parentID
in: path
description: ID of parent folder
required: true
style: form
explode: true
schema:
type: integer
format: int64
- name: name
in: query
description: name of folder to be created.
required: true
style: form
explode: true
schema:
type: string
- name: metadata
in: query
description: optional parameter, contains list of letters, which denote requested metadata. This metadata will be added to standard File object info. See File object for more details about optional metadata.
required: false
style: form
explode: true
schema:
type: string
responses:
"200":
description: Folder detail
content:
application/json:
schema:
$ref: '#/components/schemas/FileItem'
"401":
description: Creating folder not allowed
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: PermissionDenied
title: Permission denied.
detail: Cannot modify given file because of missing permission.
instance:
https://us.workplace.datto.com/api/v1/file/123 method: POST
parameters: name=NewFolder
requestId: 219.1a
timestamp: "2022-09-19T16:55:42"
"403":
description: Not authorized - invalid API key/secret or other problem with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: Unauthorized
title: Access denied.
detail: Please provide valid username / password.
instance:
https://us.workplace.datto.com/api/v1/file/123 method: POST
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
"404":
description: File not found
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: FileNotFound
title: File not found.
detail: File with id was not found or you have no access to it
instance:
https://us.workplace.datto.com/api/v1/file/123 method: POST
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
"409":
description: Folder already exists.
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: FolderExists
title: Folder already exists.
detail: Folder with given name already exists.
instance:
https://us.workplace.datto.com/api/v1/file/123 method: POST
parameters: name=newFolderName
requestId": 107.1a
timestamp: "2022-09-20T13:27:21"
/file/projects:
get:
tags:
- file
summary: Get list of projects
description:
This command returns list of projects which are accessible to logged user.
operationId: project:list
parameters:
- name: metadata
in: query
description: optional parameter, contains list of letters, which denote requested metadata. This metadata will be added to standard File object info. See File object for more details about optional metadata.
required: false
style: form
explode: true
schema:
type: string
responses:
"200":
description: List of projects
content:
application/json:
schema:
type: object
"403":
description: Not authorized - invalid API key/secret or other problem with authorization.
content:
application/json:
schema:
$ref: '#/components/schemas/RequestError'
example:
type: Unauthorized
title: Access denied.
detail: Please provide valid username / password.
instance:
https://us.workplace.datto.com/api/v1/file/projects method: GET
parameters: fileID=123
requestId: 1659.1a
timestamp: "2022-09-14T14:43:47"
JDhNKVarr1iQCT6Euhi9GK4/edit So, you may know that QRcodes store data (similar to barcodes but two-dimensional instead of one-dimensional), it can be links, webpages, plain text, images, hell even entire files.
For example, a wi-fi password can be converted into a QR. A smartphone can scan it and connect to the access point by decoding the QR into text again and use the password. This all happens automatically and you won't notice it.
In Legends' case, in order to generate the right QR codes the game needs some informations first, text which then gets converted into a QR so that you may share it with friends. When they scan the code it gets reconverted into that text info so that the game can check if it is valid. Most of the text code is actually already shown below the QR when you click "get code".
If you use a QR to text converter, and put in there the QR legends shows you, you will get the full text code which will look something like this:
4,xxxxxxxxYYYYYYYYYYY (of course it will have specific numbers and letters in place of x and Y for every code)
You may notice 3 distinct elements:
1)
4, <- this is some sort of identifier the game uses to define which game-modes can use the code, other in-game QR codes that are not related to DB Hunt should have a different identifier. It's the same for every single user and it's the only part that's not visible in the text code under your QR when you press "get code". The next 2 parts are.
2) xxxxxxxx <- a string of 8 lowercase letters or numbers (sometimes letters only, sometimes a mix) which is YOUR "friend code". You can send friend requests if you know other people's friend codes.
Naturally, this second part is different for every user but the same for every code generated by a specific user, since it's just your
friend code.
The third part is never the same for any generated code:
3) YYYYYYYYYYY <- a string of 11 capital letters (only) which is the complicated part. It basically contains the data about the exact time when the code was generated, down to the millisecond. The main function is that the game checks if the code is too old, if that's the case it will give you a "code expired" message. How do those apparently random letters give any indication about time? We will get there.
For part 3) developers chose to use letters ranging from B to T, but also excluding letters "I", "L" and "O". No particolar reason to not use those specific letters, but if you do the math it means there are 16 letters left. Every space will contain one of those 16 letters. You may notice that the more you look to the right of the text code, the more quickly they change when you generate a new code. You will understand why soon.
Everyone of these 16 letters actually corresponds to a number, ranging from 0 to 15 (so 16 possible numbers in total including the 0). The decimal system uses symbols (numbers) which, of course, range from 0 to 9. However the hexadecimal system, which is very common in software developing and system designing because of how well they "get along" with the binary system, uses 16 different symbols, ranging from 0 to F, with letters from A to F replacing numbers from 10 to 15. You can read more by googling it, otherwise this post would never end and it's already long enough. The takeaway is, if you sort the available letters and give to each their respective "number" you will get something like this:
B=0 C=1 D=2 E=3 F=4 G=5 H=6 J=7 K=8 M=9 N=A (corresponds to 10 in the decimal system) P=B (corresponds to 11 in the decimal system) Q=C (12 you get the point...) R=D (13) S=E (14) T=F (15)
So if your part 3) of the code is CKKHEFFBNCB, using the conversion table above you get 18863440A10. Now this is a proper hexadecimal number. If you go to an online converter you can get the decimal number which will be 1685292583440. This, again, may appear completely random but it's actually a very specific way of indicating time: the so called "epoch" or unix-time. This kind of timestamp is used in unix and unix-like operating systems (again, google it if you're curious). The important thing is that the "zero-time" for epoch corresponds to January 1st 1970 00:00:00 (GMT +00:00).
In very simple terms, unix time defines how many seconds have elapsed since the unix "zero-time". Note that the last 3 digits are actually milliseconds and are not always displayed in other applications. If you go to a unix-time converter and put that decimal number we got before, we get May 28th 2023 16:49:43.440 (GMT+00:00). So the game checks your phone time, corrects it for any time-zone discrepancies, and follows the reverse conversion process to generate that 11 capital letters part of the code, which gets embedded into the QR alongside the rest. When you scan it legends re-converts everything to read it and does its checks.
In theory, you could "cheat" the system and manually generate a code with a generation time set a few months into the future, following the entire procedure in reverse, generate the QR from the text you got and give the resulting QR code to Legends' scanner every single day without ever generating other codes (without even having to ask your friends every time). Unfortunately, legends devs weren't that stupid this time around. If the "code time" is set into the future, the game knows it couldn't possibly have generated it yet and gives you a "failed scan" message. In previous years we could, and the timestamp part of the code was even much easier to decode.
You can still manually generate codes outside of legends without asking friends, but you have to regenerate them everyday. It doesn't matter if there isn't the db legends icon on the QR, the game accepts it. There are a few guides which have been posted in this sub. This is useful:
https://www.reddit.com/DragonballLegends/comments/13tt7pi/video_of_how_to_do_the_shenron_qr_code_all/?utm_source=share&utm_medium=web2x&context=3 Hope you enjoyed this little explanation. :)
5/26/2023 499 submissions are currently in the queue as of 8:00 on AM:. We are working on (Wednesday) 5/24/2023 work.
Fetched: Fri, 26 May 2023 14:15:02 GMT
5/25/2023 342 submissions are currently in the queue as of 8:00 on AM:. We are working on (Wednesday) 5/24/2023 work.
Fetched: Thu, 25 May 2023 14:15:02 GMT