Navigating the Website
Connecting Apps to Diskery
Diskery's operating platform is open to developers. Now you are free to integrate Diskery's database into anything you choose to innovate. This file is a general Q&A session for such developers and, along with the database help system here at the Diskery website, is the only user manual available. Be advised, this service is very much under development and this text and service may change at any time without notice.
Let it be known that the term "App Environment" is to mean the diskery_App.php software application and this service.
Let it be known that the term "App Developer" is to mean the user/subscriber to this service.
Is There Help Agents Available if I Get Stuck?
No. This file is a general Q&A session for App Developers and, along with the database help system here at the Diskery website, is the only user assistance available. Sorry to sound blunt but, as a developer, you are expected to know what you are doing.
Is There A Cost?
Yes. There is an annual fee planned for the use of the service simply because App Developers are considered 'corporate users' and therefore are expected to be accessing the system more often than a causal person using their web browser. Such access invokes more cost to us, so we pass this back to you. Also, it is a matter of fairness in that you are using our system and presumably making money by selling your App or service to end customers. This fee is a sliding scale depending on your average usage of our systems. The starting (lowest) fee is $20 (US)/mo. and increases in $5/mo. increments there-after. Minimum is 6 months. This fee is subject to change and has not yet been finalized. Payment is always up-front. There is no discount for charity, government or business size since the cost is so low to start.
This fee is NON-REFUNDABLE. Therefore if you cancel, you do not get the money back; there is no pro-rating.
Be Advised: Because we are in the Beta testing version of the App Environment all fees are temporarily suspended. However, you will be expected to begin payments in the future but may cancel if you choose; you will be given notice and ample time to prepare.
Note also: because this service is also in the Beta Test stages, there is no guarantee of service.
Are There Limits on Who Can Access the Service?
Yes. Any organization who promotes hate, racism, political parties, organized crime, any direct competitor to Diskery, hackers, you are located in any nation which does not recognize and enforce international copyright treaties, or those who have previously been banned from Diskery where the ban persists. We may exclude any one, or any organization for any reason, even beyond this list with or without cause.
You may not make any attempts to hack, reverse engineer, modify or redistribute the Diskery database or its source code, including this App Environment.
Can I Get Access to the App Source Code?
No. It is a proprietary system.
Is There A Cost While I am Developing My App?
There is no fee charged to you during your development stage. Indeed, anyone accessing record ID=0 (NAME=EXAMPLE BAND) or record ID=* (NAME=RANDOM BAND) pays no fee as these are considered the test, or 'example', records and you can access it all you like to test your application. These will allow your App to have access to all possible types of responses for testing purposes. For more information on URL's and response output, see Connecting to Diskery? later in this document.
What Access to Copyright Material Do I Have?
Diskery, its contents and the App Environment are under copyright.
With payment of your membership fee you have re-broadcast rights on the material your App accesses. This right does not extend to modification of the data beyond the technological restrictions imposed by your device or where content is simply not needed (removing a picture because you don't have room, prefer another in your own archive, or lowering its resolution are all permitted, likewise is truncating the length of an article, or using selected sections of it. Modifying the image or text outright are not allowed unless mandated by law).
You may not claim, nor lead anyone to believe you are staking claim, control or ownership over any of the material you obtain from Diskery, unless you honestly have certification to such claim (you are the copyright owner, for example).
Be advised: Diskery often uses content provided by others and these rights may be limited to you on some articles. USE COMMON SENSE when selecting what material to use. Although the text is owned by Diskery, images and video content may not be. Items under CC (Creative Commons), Public Domain, or on direct ownership or license to Diskery are safe, other content licensed only to Diskery for use, or Diskery uses under 'fair use' exemption, may or may not apply to you and may not be safe for you to use. When in doubt ask us, ask the owner, or don't use it! Diskery simply provides access to the content, YOU ARE RESPONSIBLE FOR ANY VIOLATIONS OF COPYRIGHT THAT HAPPEN BECAUSE OF THE USE OF MATERIAL ON YOUR APP. This means, if someone tries to sue us because their material is on your App, you have to pay the settlement and legal costs!
You must declare/credit, in a reasonable manner, the name/source of the material you use. Under normal circumstances this is provided in your data stream from Diskery.
While you may charge fees for the purchase or use of your App, you not permitted to charge any fee (beyond what we may charge you) for access to the Diskery material itself, or to have any method or text that indicates directly or indirectly that a user is paying anything extra for access to Diskery data. That is: the Diskery data is an at-cost or free service. This does not restrict your ability to charge for your device itself, charge for other features/services, include advertising, etc.
As a part of your license, you must use the Diskery logo on your device or its software. Where you are using Diskery as one of multiple input sources for your App, you must explicitly state Diskery as the source for data received from Diskery. Your license allows you use of the Diskery logo. Use the official logo, do not create any variation of your own.
You do not have rights to archive, store, and redistribute (beyond the confines of your device) any material you find at Diskery. This is a ONE TIME LICENSE that permits its use for the device you have stated you are requiring it for. You are free to make as many duplications/subscriptions to your device or service as you like, and are free to update your device to new versions as much as you like as long as those modifications are a clear straight line back to the original device/software/invention. For example: a fictional device called DISK-PAD, a mobile wireless 'jukebox' spawns a new version next year: DISK-PAD2. This is allowed as one device is the child/next generation of the previous. Your license would not extend to a wholly unrelated device called DISK-4-CAR, a device that links the radio to Diskery content, however. It's not the name of the device, it's the intended function: One is carried by hand, the other is installed in a car and has a different use of the data.
Connecting to Diskery?
Connecting to Diskery using your App involves using an 'HTTPS' (web style) connection via a GET API request. Although you can do this using a URL POST method, standards in API development call for GET. POST, however, is more secure, and many developers prefer that so all POST requests are translated to be GET ones within Diskery itself. For added security, it is highly recommended you use the secure (HTTPS) protocol as opposed to HTTP. Diskery converts all HTTP requests to HTTPS. DISKERY IS NOT RESPONSIBLE FOR YOUR USER SECURITY!
The App connection URL is: https://www.diskery.com/diskery_App.php?[PARAMETERS]
[PARAMETERS] must one or a combination of the following:
NAME ID COUNTRY CITY GENRENAME OPDATES RRCAID USERPASS USERNAME COMPRESS
During the development stage of your App, Diskery has a few pre-programmed URLs useful for testing purposes. You may use these as often and when ever you like and they do not count toward your monthly usage.
The test URLS possible are:
https://www.diskery.com/diskery_app.php?NAME=EXAMPLE BAND https://www.diskery.com/diskery_app.php?NAME=RANDOM BAND https://www.diskery.com/diskery_app.php?ID=0 https://www.diskery.com/diskery_app.php?ID=*The difference between NAME=RANDOM BAND and NAME=EXAMPLE BAND are RANDOM BAND generates a real database entry from Diskery at random (you have no control over what appears), where-as EXAMPLE BAND generates a pre-chosen entry hard-coded into Diskery that represents a typical database entry (the EXAMPLE BAND is actually database record 13, "Seasons of the Wolf" as seen in the database). 0 is the numerical equivalent of EXAMPLE BAND and * is the symbolic equivalent of RANDOM BAND. Entry of either of these ignores any other parameters (including password). Mixing them up will result in an error "Invalid Input Characters". No password or membership is needed for EXAMPLE BAND.
Connecting to Diskery > Searching the Database?
Unlike users on the website who have the advantage of the AISE AI interpreter, your App has to provide this functionality itself so Diskery does not interfere with your own programming efforts. Without the AI you will have to conduct direct searches on record ID numbers or names using correct spelling. All punctuation marks are removed (apostrophe, dash, dots, quotes, asterisk, slash, etc...); only alpha-numeric and spaces are allowed (A-Z,0-9). The search engine will also remain case insensitive but will not conduct spell correction or 'closest match guess' as its website counterpart does. Furthermore, SQL commands are 'sanitized' (removed) to prevent 'injection' attempts.
What Does Diskery Output?
Assuming your request was successful, the engine will respond with:
Content will follow after the 'status' section.
Diskery's response is fairly standardized. All values are returned as strings, it is up to your application to re-cast as needed. Although be aware, this is an early version of the development environment and NULLs may appear. For values Diskery has no entry for it leaves you with an empty string, an empty array or a NULL. The only variable types you will deal with is string, array of strings, and null. 'max:' is the total number of records available to your App and it changes regularly as data is modified in the source database. Artist names, album titles and related links will be dynamic, however, and can become large in number. If there are no entries at all (a band did not list their membership, for example) Diskery leaves you with an empty array . Diskery is consistent and the arrays match the same number that are in related array. For example: there will be same number of track arrays as there are album titles (5 albums will yield 5 track listings in the order of the albums; note the blank ones here. Dates, Types, all other sub-sections related to the description of the albums will likewise match element position-to-element position:
as opposed to this example where there were no track entries:
Note also the use of &^. This combination of symbols replaces the comma (,) this is used for older programming languages and applications using our system to denote that these strings are not elements of an array but are one string using commas. Be advised that this is a depreciated procedure and is expected to be replaced to a simple comma in the near future so prepare your app for either situation.
A word about the "version" tags:
The numbers contained here rarely change, but they are variable and will change as we update the system. All are in the format: "Version.Revision.Patch:Build".
diskery: Refers to the Website version ID itself.
All are important for all will remain compatible within one full version. So when 2.2.5:20200219 switches to 3.0.0:0 (or bigger) you might discover your App will no longer work. Likewise for 2.0.0:1 to 3.0.0:0, etc. In the event you do not receive notification of changes, it is important your App check this each time it accesses the database and have contingency (back up) programming in the event it is caught with a new number. Word to the wise: make your App use only the features it needs to ensure the most basic compatibility, "Less is More!". For example, if you keep your App (at time of this writing) compatible to the features of Diskery version 2.0.0:0 you are ensured it will work until 3.0.0:0 arrives (and will most probably be compatible there too).
The last component of the version identifiers, the 'Build' (20200219), is unimportant for your App for compatibility and can be ignored. The others are used to identify new or depreciated features, bug fixes, etc.
List of Error Codes
Diskery responds with the following codes. Unlike in version 1, it no longer issues the numerical codes. Except for "OK" these errors are normally are fatal and cause your search to fail. They appear in the "response" tag. The "sysmessage" tag is designed for your internal processing. It is used to send notices such as "XYZ feature will be depreciated in future version"...:
Diskery can also generate non-fatal notices in the same format as errors. These occur when the Diskery search engine modified your search input, but ultimately found it:
Search was modified Search based on Album Name Search was Redirected
What Does the Total Output Look Like?
This link will allow you to view/download a copy of the JSON output for the band SEASONS OF THE WOLF (ID=13). This band is also ID=0 (a.k.a. NAME=EXAMPLE BAND):
How are the tags formatted?
The JSON tags are all in string format and in lowercase. Where the tags are dynamic they are appended with a 0 based number. For example
"tracks"is the tag for track listings.
How To Use The ALL Instruction?
Your device can receive a list of all entries (or a select search list) in the database with the use of the 'ALL' instruction. To use this, you must have a registered membership as it is accessed with your user name and password.
The URL for use of the ALL instruction:
There is no numerical 'ID=' equivalent. Here is an example for the first 3 entries in the database as they will appear when this option is used.
When successful, Diskery will respond with:
Does Diskery Help To Promote My App?
Diskery does not endorse any specific developer's work nor do we directly sell them. However, we do maintain a contact database where visitors to the site can find your product and contact/purchase information.
How Do I Sign Up or Update My Information?
Send the following information to: firstname.lastname@example.org. Be sure to set that address as a safe one for your e-mail application (whitelist) as it will create an auto-reply to ensure that you are not a marketer's robot. Simply reply to the resulting message with any subject and it will pass your message to us.
Send the following:
Do not worry if you do not have all the information on your initial application, you can update it later. To apply we MUST HAVE: Billing Address, Real & Corporate Names, At least 1 contact phone number, E-Mail, and Name and Description of the App.
What is 'Hash'?
Hash is a SHA256 encoding of the description text. It is used by Diskery to identify when the article has been edited. If the Hash stored in the database is different than the fresh one calculated when the article is loaded then the article was edited. A sort of short cut that your app can use to identify that it has the current version of the article.
The Hash also serves another very important security purpose. Diskery sends your device the hash so your device can verify against its own calculation if the article has been tampered with in transit. Either way, if your device's computed hash does not match the one sent from Diskery then it should update its own copy of the SHA on file and demand the article again.
Can I Post Ads on My App?
The short answer is YES.
The long answer is YES, but said advertisements cannot in anyway make any reference that they are provided or endorsed by Diskery. You will be required to say as such in your app documentation.
This is a summary of the legal matters presented in this document:
You and Diskery here-by agree as part of the use of The Service on the Device(s) the following:
I. FIT FOR USE WARRANTY
II. MEMBERSHIP ALLOWANCE & PAYMENTS
IV. CREDIT, COPYRIGHT AND OWNERSHIP
V. USE OF PERSONAL DATA
File record #: 58