"NANIKA"
Documents - SHIORI -


Abstract

SHIORI is the most important component of a ghost. This module almost always determines the personality of a ghost.
home
 +-ghost
    +-naru
       +-ghost
          +-master
             +-shiori.dll

SHIORI/2.0

SHIORI/2.0 specification is an approach to give high availability to SHIORI specification itself. Most important fact is that a requested data is given with the request header, and it is not discriminated by called function. Actually, SHIORI/2.0 DLL SHOULD export only three functions, "load", "unload", and "request", at all. This means that SHIORI.dll is deeply abstracted, and finally, SHIORI.DLL is not necessary to be dynamic link library, intrinsically.

All argument and return values are transferred through globalmemory segment. You should get a data using the function "gmem_fixed". Next, you should release the window handle, and extract the essential data using the length value of the data given with "len" entry. After you made the return value of data, you should put the valid value of length of return data into "len" entry again. Finally, you should return all data using the function "gmem_fixed".

Definition of the function "request" is as follows;
extern "C" __declspec(dllexport) HGLOBAL __cdecl request(HGLOBAL h, long *len);
function request(h: hglobal; var len: longint): boolean; cdecl; export;
All requests are handled with the function "request" only. You must export only three functions, "load", and "unload", "request", according to SHIORI/2.0 spec. You must implement the SHIORI server to change the data handling and its outputs, depending on the given data, NOT on the called function name.

Request header is alike to HTTP, or SSTP header. The whole header is separated to several entries with Carriage return(CR:0x0d) + line feed(LF:0x0a) code. The first entry is a command and version number of SHIORI.dll. The second entry and after are optional entries that you can choice its number as you need to use it. Finally, the header is terminated by CR+LF codes twice.

Headers including SSTP spec, i.e., Sender, Charset, have equal features that are used in SSTP. Thus, details of there features are omitted in here.
Please refer to the SSTP specifications at first.
Header definition
  • NOTIFY
    NOTIFY OwnerGhostName SHIORI/2.0
    Sender: Nobody
    Ghost: Sakura
    Charset: Shift_JIS
          
    NOTIFY is the client's request header that is given to the server as one-way information.
    • Ghost - the name of the ghost that is running on the client now.
    NOTIFY is called by the client whenever the status of the client changes. The server must return its own status code only, because "NOTIFY" requests nothing at all to the server.

  • GET Version
    GET Version SHIORI/2.0
    Sender: Nobody
    Charset: Shift_JIS
    
    SHIORI/2.0 200 OK
    Version: SHIORI/2.0
        
    "Get Version" request is sent by a client to get the version information of SHIORI.dll from the server.

  • GET Sentence
    GET Sentence SHIORI/2.0
    Sender: Nobody
    Charset: Shift_JIS
    Word: Card Capture
    Sentence: \h\s0Good Morning!\e
    
    SHIORI/2.0 200 OK
    Sentence: \h\s0Just between YOU and ME, Wednesday is Tsukuri-Monoji's secret xxx.\u\s0....\w8\w8Hmmm....\e
        
    "GET Sentence" request is sent by a client to get the script from the server.
    • Word - Words that should be interpreted.
    • Sentence - Sentences that should be interpreted.
    If "GET Sentence" request has neither "Word" header nor "Sentence" header, it means that "talk as you like it". If "Get Sentence" request has a "Word" header, it means that "talk a topic related to the given word". If "Get Sentence" request has a "Sentence" header, it means that "be spoken to by another ghost".

    An example of similar features of SHIORI/2.0 header versus SHIORI/1.1 function categorized into "get" functions are as follows.
    2.01.1
    n/agetaistringrandom
    Wordgetaistringfromtargetword
    Sentencegetresponse

    In examples above, "Word", and "Sentence" header is shown at once. But you SHOULD NOT use those request in this way, because of that the activity of SHIORI.dll will fall down into unstable conditions. You MUST use ONE of those requests, if you wish to make them effectively.

    The request with "Sentence" header requires extremely difficult handling. It is equal to be spoken to by another ghost that has different personality. Thus, you MUST interpret the given sentence, and understand its contents and/or tones, feelings, etc. And your ghost MUST return "correct" answer for the given sentence, NOT on your own way. Furthermore, SHORI.dll MUST remove tags of Sakura Script itself, if necessary, because of that Sentence header may include fragments of Sakura Script, not only common sentences.

  • GET Word
    GET Word SHIORI/2.0
    Sender: Nobody
    Charset: Shift_JIS
    Sentence: \h\s0Describe about the relationship between Sakura and Card Captor not more than 400 words.\e
    
    SHIORI/2.0 200 OK
    Word: Sakura
        
    "GET Word" request is sent by the client to get a word or a fragment of Sakura Script from the server.
    • Type - Type of the word (the part of speech) to get.
    • Sentence - The sentence to interpret.
    Strings probably to be given to Type header are categorized as follows.
    %msNoun - someone's name
    %mzNoun - Inorganic substance
    %mlNoun - collectives
    %mcNoun - company name
    %mhNoun - shop name
    %mtNoun - skills, techniques, etc.(especially "Waza" , for example, "Judo-Chop")
    %meNoun - food
    %mpNoun - place name
    %m?Noun - unlimited
    %dmsNoun - Long noun which connects two or more parts of speech. Like "AA by which BB to CC"

    "Get Word" request with "Type" header means to "give a word specified with noun tab".
    "Get Word" request with "Sentence" header means to "extract a word from given sentence".
    An example of similar features of SHIORI/2.0 header versus SHIORI/1.1 function categorized into "get" functions are as follows.
    2.01.1
    Typegetword
    Sentencegetmatchword

    In examples above, "Type", and "Sentence" header is shown at once. But you SHOULD NOT use those request in this way, because of that the activity of SHIORI.dll will fall down into unstable conditions. You MUST use ONE of those requests, if you wish to make them effectively.

    SHIORI/2.0 request with "Sentence" header probably receives two or more words from server. Thus, client MUST returns special value as follows.
    200 OK SHIORI/2.0
    Word: Sakura[1]\ms[2]Card Captor[1]\ml[2]
        
    One block consists of a word and its tab of noun category. Each block are separated by byte-character [2] (0x02), the word and its tab are separated by byte-character [1] (0x01). You MUST cautious with differences of separators from SHIORI/1.1 spec.
    And, it is probable that no hitting word returns to given sentences. In this case, you MUST return status code "204 No Content".
  • GET Status
    GET Status SHIORI/2.0
    Sender: Nobody
    Charset: Shift_JIS
    
    SHIORI/2.0 200 OK
    Status: 0,0,0,0,0,0
        
    "GET Status" request is sent by the client to get the status code from the server.
    neuron,neuronm,neuronk,neurond,neurone,sysnapse

  • Status codes
    Status code that must be returned by server is as follows.
    2xx - data handling completed
    200 OKnormal end
    204 No Contentnormal end. but, no returned data
    3xx - data handling completed, and request more data or actions to client
    310 Communicateexit with no errors. Send the answer to the server or to the directed window.
    4xx - request error
    400 Bad RequestInvalid Request content
    5xx - Server error
    500 Internal Server ErrorInternal Server Error has occurred.


  • Response data
    If the request needs to return any data from server, server must send back the required header following to the 2xx status code. If server returns a word, the required header is "Word", or it returns a sentence, the required header is "Sentence". And you must be attentive that some request needs its own header.
    For example;
    GET Sentence SHIORI/2.0
    Sender: Sakura
    Charset: Shift_JIS
    
    SHIORI/2.0 200 OK
    Sentence: \h\s0Just between YOU and ME, Wednesday is Tsukuri-Monoji's secret xxx.\u\s0....\w8\w8Hmmm....\e
        


SHIORI/2.1

CAUTION: This specification will be abolished in a few days. If you want to use these features on your ghost, you SHOULD follow the specification of SHIORI/2.2 or later. Please refer to these specifications described in next section or after. Thank you.

SHIORI/2.1 specification is an approach to realize talking between ghosts (SHORI.DLLs).
  • 310 Communicate
    The talking between ghosts starts with returning "310 Communicate" status code.
    SHIORI/2.1 310 Communicate
    Sender: Sakura
    TargetHWnd: 1024
    Age: 0
    Sentence: \h\s0....\w8\w8Don't be elated over introducing to "Mado-no Mori".\e
        
    If the SHIORI server returns the status code "310 Communicate" substitute for "200 OK", moreover the header entries of returning data includes both "TargetHWnd " and "Age" header correctively, SHIORI client sends the data of "Sentence" entry to another SHIORI client which is shown by "TargetHWnd" entry using to Direct SSTP COMMUNICATE/1.2 spec, in addition to speak that's lines normally.
    Header definition
  • COMMUNICATE Sentence The SHIORI client which receives Direct SSTP sends request to SHIORI server with the "COMMUNICATE" header, not with the "GET" header.
    COMMUNICATE Sentence SHIORI/2.1
    Sender: Sakura
    Age: 0
    Charset: Shift_JIS
    Sentence: \h\s0Good Morning!\e
        
    The request with "COMMUNICATE Sentence" header is usually equal to that with "GET Sentence", but two differences from usually occasions exists in SHIORI/2.1 spec. The first, "Age" header exists in this request, and the second, the entry of "Sender" is NOT reserved name "Nobody", but the ghost's own name.
    If the SHIORI server reply to this request with "310 Communicate" status code again(also without "TargetHWnd" entry) , the target SHIORI client receive the "Sentence" header with same mannar above, because of that the ghost give answer to another ghost spoken to.
    You MUST increment the counter, "Age" header entry, whenever SHIORI.dll of your ghost replies to the request with "310 COMMUNICATE" status code.
    If you reply to the "COMMUNICATE Sentence" request with the status code "200 OK", talking between ghosts are stopped at this point.

SHIORI/2.2

SHIORI/2.2 specification is the requests to send generic events to SHIORI.dll. The events are sent according to SSTP NOTIFY/1.0 and/or SAKURA API/1.3 specs.
This document instructs how to interpret events given by ghosts depending on SHIORI/2.2 spec. If you want to send events, you must refer to SSTP NOTIFY/1.0 and SAKURA API/1.3 specs.
Get Sentence SHIORI/2.2
Sender: Nobody
Event: OnDisplayChange
Reference0: 32
Reference1: 1280
Reference2: 1024
Charset: Shift_JIS
The event identifiers are handled by "Event" header entry. The major clients that define their original events are as follows. The definition and/or implementation of event identifiers and its reference information are allowed to be freely made by client developers, respectively. Thus, you must follow the developers' specifications and/or reference documents, if you want to use third party's SHIORI module efficiently on your ghost.

Event identifier definitions
Basics

Basic events
OnFirstBootboot the ghost at the first time
OnWindowStateMinimizeiconfied
OnWindowStateRestorerestore from iconfied condition
OnBootboot up successfully
OnClosedirect to exit
CAUTION: This event may be useless in some cases, because of that SHIORI module is allowed to ignore this event.
OnTeachStartTeach dialog was opened
changing events
OnGhostChangingdirect to change into another ghost
  • Reference0 - Next ghost name
  • Reference1 - changing method
    • manual - changing manualy
    • automatic - changing automatic(system etc.)
OnGhostChangedbecome the ghost itself as a consequence of direction
  • Reference0 - Previous ghost name
OnSurfaceSetChangingdirect to change the surface set
OnSurfaceSetChangedcompleted to change into another surface set
OnShellChangingdirect to change into another shell
OnShellChangedcompleted to change into another shell
Time events
OnSecondChangetimers counter incremented in "second"
OnMinuteChangetimers counter incremented in "minute"
(References)
  • Reference0 - total time of continuous running with this ghost
    (measuring unit: hour)
  • Reference1 - the flag of the position of the ghost
    (boolean; If a part of the surface overlaps on the edge of display, set this value into "true" (=1), otherwise into "false"(=0).)
  • Reference2 : the flag of the surface position of main character between that of sub character.
    (boolean: If a part of surfaces overlaps on each other, set this value into "true" (=1), otherwise into "false" (=0).)
Surface events
OnSurfaceChangecompleted to change into another surface
OnSurfaceRestorejust come into the timing that restores the first surface standing in the surface now.(The assigned number of first surface is different in case by case. The occasion of first ghost, the assigned number of Sakura is 0, that's of Unyu is 10.)
CAUTION: This event ONLY notify the timing to switch the surface into the first. SHIORI module is allowed to do this or not.
(References)
  • Reference0 - the surface number of the main character that is displaying now.
  • Reference1 - the surface number of the sub character that is displaying now.
Mouse events
OnMouseMoveThe mouse is moved.
OnMouseClickThe left button of mouse is clicked.
OnMouseDoubleClickThe left button of mouse is clicked double.
OnMouseWheelThe mouse wheel is scrolled.
(References)
  • Reference0 - The value of x-axis of the mouse cursor (local coordinate)
  • Reference1 - The value of y-axis of the mouse cursor (local coordinate)
  • Reference2 - The quantity of rotate of the mouse wheel and the direction of that's
  • Reference3 - The owner of the event (0 : Sakura / 1 : Kero)
  • Reference4 - touch judgement identifier.
    The touch judgement identifier is free defined by shell. However, Head, Face and Bust is standard identifier. So, that is supported by many shells.
Install events
OnInstallBeginbegin install sequence
OnInstallCompleteinstall sequence is completed successfully
OnInstallFailureinstall sequence is failed with some errors
OnInstallRefuseinstall sequence is refused because of that the file name to install indicates another ghost name
(References)
  • Reference0
    • Complete - the identifier of installed objects
    • Failure - the reason of failure
    • Refuse - indicated ghost name
  • Reference1 - Complete : the name of installed objects
    Identifier of installed objects
    shell/ghost/balloon/plugin/ghost with balloon/shell with balloon
File events
OnFileDroppingdrug and drop the file now.
OnFileDroppeddrug and drop the file is completed
OnDirectoryDropdrug and drop the directory
OnWallpaperChangechange the wallpaper(because of drug and drop the images)
(References)
  • Reference0 - the file name or the directory name (full-path)
BIFF events
OnBIFFBeginbegin checking up the mailbox
OnBIFFCompletechecking up the mailbox is completed successfully
OnBIFFFailurechecking up the mailbox is failed
(References)
  • Reference0
    • Complete - quantity of spooled mails
    • Failure - the reason of failure
  • Reference1
    • Complete - total file size of spooled mails
The reason of success or failure
  • timeout - connection request timed out
  • kick - permission denied by mail server
  • defect - some mistakes of user settings exists
Update events
OnUpdateBeginbegin to update modules through the network
OnUpdateCompletenetwork update is completed successfully
OnUpdateFailurenetwork update is failed
OnUpdate.OnDownloadBeginbegin to download the updated files
OnUpdate.OnMD5CompareBeginbegin to compare the MD5 checksum
OnUpdate.OnMD5CompareCompletematch the MD5 checksum
OnUpdate.OnMD5CompareFailuremismatch the MD5 checksum
(References)
  • Reference0
    • OnUpdate - the reason of success or failure
    • OnDownload - the file name of downloading
    • OnMD5 - the file name to compare with
  • Reference1
    • OnUpdate - file name list(separated by comma(,))
    • OnMD5 - the valid MD5 checksum
  • Reference2
    • OnMD5 - the MD5 checksum of the downloaded file
The reason of success or failure
  • none - no files to update
  • changed - files is updated
  • timeout - connection request time out
  • md5 miss - mismatch of the MD5 checksum
  • 404 etc. - failed with those status codes
SNTP events
OnSNTPBeginbegin to adjust the internal clock
OnSNTPComparebegin to compare time of local host's internal clock with NTP/SNTP server's clock
OnSNTPCorrectadjust time of the local host's internal clock to NTP/SNTP server's
OnSNTPFailurefail to adjust the clock
(References)
  • Reference0 - the host name of NTP/SNTP server or its IP address (with port number: 123, if necessary)
  • Reference1 - the correct time of NTP/SNTP server separated with byte character [1] (0x01).
    year,month,day,hour,minute,second
  • Reference2 - the present time of local host (NTP/SNTP client) separated with byte character [1] (0x01).
    year,month,day,hour,minute,second
  • Reference3 - time lag between the local host and the NTP/SNTP server(measuring unit: second)
head line sense enevts
OnHeadlinesenseBeginbegin to head line senses
OnHeadlinesense.OnFindThe reading head line sense result is directed.
(References)
  • Reference0 - site name for sense
  • Reference1 - URL for sense
  • Reference2 - OnFind phase
  • Reference3 - head line main body(parts of sakura script)
Reference2 and Reference3 is used only at Onfind. OnFind phase have following types:
  • First - First page
  • First and Last - First and Last page(one page only)
  • Last - Last page
  • Next - Other of either
At OnFind event, if use choice without identifier. That have mean of mark for next page. For example:
\q0[][Next page]
OnHeadlinesenseCompleteThe head line senses is completed successfully.
OnHeadlinesenseFailureThe head line senses is failed.
(References)
  • Reference0 - reason
In the current state, Success of head line sense have mean of begin to read of head line. Therefore, OnHeadlinesenseComplete have mean of sense completed but no update.
Reasons
  • no update - no update
  • can't download - can't download
  • can't analyze - downloaded file don't have valid headline.
Play sound events
OnMusicPlaybegin playing the music.
  • Reference0 - the title of music (probably with additional information, i.e.; Artist's name, playing time, etc)
Choices event
OnChoiceSelectselect from the choices.
OnChoiceTimeoutRequest Timeout.
(References)
  • Reference0
    • Select - the identifier of the selected choice
    • Timeout - the script that was time out
Exception event
OnSSTPBreakthe process is broken following SSTP spec.
  • Reference0 - script that cause to the exception error
Uncategorized events
OnNetworkHeavyreturn no response from the server, return no data from server, the server is IP unreachable, etc.
OnDisplayChangechange the display resolution and/or color depth
  • Reference0 - the color depth after change (bpp)
  • Reference1 - the display resolution after change (width)
  • Reference2 - the display resolution after change (height)
OnSSTPBlacklistingdirect to put the client on the blacklist finally
  • Reference0 - the IP address of the client that is put on the blacklist.
"Kinoko" event

"Neko-dorifu" event


The maximum entries of "Reference" are eight on SHIORI/2.2 spec.(Reference0 to 7)
You can ignore any events. If you want to do so, return the status code "204 No Content" to the client's request.

SHIORI/2.3

The SHIORI/2.3 specification is an approach to realize talking between some SHIORI modules (ghosts).

- CAUTION -
The SHIORI/2.3 spec is more abstracted and higher platform independent AI specification based on the SHIORI/2.1 spec. The SHIORI/2.1 spec that is the older version of AI spec, should delete from the specifications of the SHIORI module in a few days, because of the meaning of the existence of the SHIORI/2.3 spec is completely equal to the SHIORI/2.1 spec.

The differences from the SHIORI/2.1 spec are as follows.
  • The SHIORI module can not sense another ghost who is on the same environment now. The existence of another ghost who is on there is checked by receiving the "NOTIFY OtherGhostName" request.
  • The "Hwnd" header is abolished.
  • The "COMMUNICATE Sentence" header is abolished.
  • The "310 Communicate" status code is abolished. The ghost determines another ghost's name with "To" header entry, to talk to that. If the request hasn't any "To" header entry, or the ghost's name clarified by "To" header entry is incorrect, it will not talk to anyone else.
However, the SHIORI module according to SHIORI/2.3 spec works by halves now as follows, because of keeping the upper-compatibility to SHIORI/2.1 specs.
  • If there is no "To" header entry, SHIORI module will also read the "HWnd" header entry.
  • It sends the request with "COMMUNICATE Sentence" header.
    * The "310 Communicate" status code is interpreted in the same way of the "200 OK" status code.
This is the limited spec to work correctly the SHIORI/2.1 server that is now on going. You MUST implement your SHIORI module with the SHIORI/2.3 spec instead of SHIORI/2.1 spec. And you MUST NOT use the SHIORI/2.1 spec to implement your new SHIORI module.

Header definition
  • Notify
    The SHIORI client sends the "NOTIFY" request to the SHIORI server indeterminately.
    NOTIFY OwnerGhostName SHIORI/2.3
    Sender: Nobody
    Ghost: Sakura
    Charset: Shift_JIS
        
    The SHIORI client tells its own ghost's name information to the SHIORI server with the "N0TIFY OwnerGhostName" request. This information is told when the ghost is wake up, or switched to another ghost.
    NOTIFY OtherGhostName SHIORI/2.3
    Sender: Nobody
    Ghost: Naru
    Ghost: Mayura
    ....
    ..
    Charset: Shift_JIS
        
    The "NOTIFY OtherGhostName" request tells the number of ghosts except itself, which are running now and can be communicated with. The numbers of "Ghost" header entry are equal to that of ghosts actually exist. If the ghost is running alone, this request doesn't have any "Ghost" header.
    The SHIORI module can decide to talk to whom, according to this information.

  • To
    Your ghost can talk to the target ghost (The SHIORI module of that ghost) whose name is designated as the "To" header entry.
    The name of target ghost is designated as the "To" header entry,
    SHIORI/2.3 200 OK
    Sender: Sakura
    To: Naru
    Age: 0
    Sentence: \h\s0....\w8\w8Don't be elated over introducing to "Mado-no Mori".\e
    Charset: Shift_JIS
        
    If you designate the "To" header and the "Age" header correctly, SHIORI client speaks normally, and send the data of "Sentence" header entry with "COMMUNICATE/1.2" request of Direct SSTP spec, to another SHIORI client indicated by the "To" header entries.

  • GET Sentence
    The SHIORI client that receive the Direct SSTP packets, send "GET Sentence" request.
    GET Sentence SHIORI/2.3
    Sender: Sakura
    Age: 0
    Sentence: \h\s0....\w8\w8I think so, but.....\e
    Charset: Shift_JIS
        
    This type of "GET sentence" request have two differences from "GET Sentence" request normally. The first, the request header has the "Age" header entry. The second, "Sender" header entry data is not "Nobody" but is the ghost's name to talk to, because of your ghost talk to another SHIORI (ghost).
    If you want to answer to this request, you should send the response data with "To" header entry which data is the target ghost name received from that with "Sender" header entry. The answer tells through the same return path to the SHIORI module of the target ghost.
    If you want to response only, but return no answer, you must omit the "To" header entry.
    If you want to reply, you MUST increment the "Age" header entry of your SHIORI module's request header.

SHIORI/2.4

The SHIORI/2.4 is the request to teach something to the ghost (SHIORI).
  • TEACH/311 Not Enough/200 OK
    TEACH SHIORI/2.4
    Word: Gut's Ishimatsu
        
    First, the client send "TEACH" request to the server.
    SHIORI/2.4 311 Not Enough
    Sentence: \h\s0What's Gut's Ishimatsu?\e
        
    In many cases, the information is too little enough to teach the ghost using a word itself. Therefore, SHIORI requests to input additional information with returning the "311 Not Enough" status code.
    The client set the additional information to the "Reference" header entry, and send "TEACH" request to the server again.
    TEACH SHIORI/2.4
    Word: Gut's Ishimatsu
    Reference0: the person's name
        
    SHIORI/2.4 311 Not Enough
    Sentence: \h\s0Teach me more related words! \e
        
    TEACH SHIORI/2.4
    Word: Gut's Ishimatsu
    Reference0: the person's name
    Reference1: dangerous
        
    SHIORI/2.4 311 Not Enough
    Sentence: \h\s0Much more? \e
        
    The SHIORI server repeats these procedures until the required information are completed. The server returns status code "311 Not Enough" until the required information are completed, navigating with the questionnaire data of "Sentence" header entry. Finally, server returns "200 OK" status code when teaching is successfully completed.
    The ordinal of "Reference" header is incremented whenever receiving the "311 Not Enough" status code. There is no upper limit of the ordinals.
    SHIORI/2.4 200 OK
    Sentence: \h\s0I'm a little cleverer! \e
        

  • 312 Advice
    "312 Advice" status code is used to navigate to study words with keeping under present condition, when input the uninterpretable information.
    SHIORI/2.4 311 Not Enough
    Sentence: \h\s0What's Gut's Ishimatsu?\e
        
    At this time, let the server returns the uninterpretable sentence to the clients as following example.
    TEACH SHIORI/2.4
    Word: Gut's Ishimatsu
    Reference0: yabaimono
        
    SHIORI/2.4 312 Advice
    Sentence: \h\s0....\w8\w8....?\e
        
    In this way, the present data of Reference0 is removed from stuck, and can get the next data into the Reference0 header entry.
    The latest "Reference" header entry is removed from stuck by the "312 Advice" status code. When SHIORI returns the 312 status code to uninterpretable Reference1 entry, only data of Reference1 entry is abolished. The already fixed data of Reference0 entry is not changed, and sent the same data as last time.
    As above, SHIORI module can reject the uninterpretable data.

SHIORI/2.5

The "SHIORI/2.5" is the request to get the simple string resource data.
GET String SHIORI/2.5
ID: homeurl
Chrset: Shift_JIS
SHIORI/2.5 200 OK
String: http://sakura.mikage.to/
SHIORI returns the valid strings according to the identifier conducted with the ID header entry.
Defined ID header and its entries are as follows.

ID header
  • homeurl
    The "homeurl" entry is the URL as the root directory for network update. For example, if you update files using the configuration file named http://sakura.mikage.to/updates2.dau, the return results of the homeurl entry is as follows.
    http://sakura.mikage.to/
        
  • sakura.recommendsites
    The "sakura.reccomendsites" entry is the list of recommended sites of the main character. The list is separated by character code 1 between each column, and by character code 2 between each record. The columns in order from left are the name of site, URL, the identifier. If the separators are written as [1] and [2], the return value is as follows, generally.
    Sakura-Mikage[1]http://sakura.mikage.to/[1]sakura[2]the second record (line)[1]http://sakura.mikage.to/[1]sakura
        
    You must give the unique identifiers for each site. This identifier is used for the banner name, for example.
  • kero.recommendsites
    The "kero.reccomendsites" entry is the list of recommended sites of the "kero". The format of this entry is similar to the main characters.
  • sakura.portalsites
    The "sakura.portalsites" entry is the list of portal sites of the main character. The format of this entry is similar to the "*.recommendsites" entries.
  • sakura.recommendbuttoncaption
    kero.recommendbuttoncaption
    sakura.portalbuttoncaption

    These entries configure the caption name of each button. An example is as follows.
    The heaven's or hell's 1st street
        

    Status Codes

    The server must returns following status codes.
    2xx - data handling completed
    200 OKnormal end
    204 No Contentnormal end. but, no returned data
    3xx - data handling completed, and request more data or actions to client
    310 Communicateexit with no errors. Send the answer to the server or to the directed window.
    311 Not EnoughThe information is not enough, in spite of receiving the "TEACH" request.
    312 Adviceunable to interpret the latest Reference header entry of "TEACH" request.
    4xx - request error
    400 Bad RequestInvalid Request content
    5xx - Server error
    500 Internal Server ErrorInternal Server Error has occurred.


    Alias Table

    home
     +-ghost
        +-naru
           +-ghost
              +-master
                 +-alias.txt
    
    If you make alias table, you can use your favorite name for your SHIORI.dll.
    The format of alias table named "alias.txt" is as follows.
    shiori,sakura.dll
    
    In an example above, SHIORI load the sakura.dll instead of the shiori.dll.
    You can omit this entry of the alias table. If you don't need to set up any aliases, you can omit the alias file itself. The omitted elements of aliases are substituted by the default value or name.

return to specifications page

This page is based on phase 67.00(2001/07/19)
This page was translated by:Hiro with SERIKO
Checking by: naruto
tietew
Published by:Yoshiyuki.Sakakibara