User:Ommina: Difference between revisions

From AniDB
Jump to navigation Jump to search
No edit summary
 
(72 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{TOCright}}
{{TOCright}}


--> Edit FILE docs to include MyList data block <--


=== FILE acode & fcode replacement ===
=== CATEGORY: Retrieve Category Data ===


<center>
=== SIMILAR: Approve or Disapprove of a Similar Pairing ===


'''amask:'''
'''Command String:'''
* SIMILAR entity=1&id1={int4 id}&id2={int4 id}[&approve={str [y|n|r]}]
 
'''Possible Replies:'''
* 275 SIMILAR APPROVAL
{int entity}|{int sid}|{int id1}|{int id2}|{int total}|{int approved}|{str [y|n]}
* 276 SIMILAR APPROVAL FOUND
{int entity}|{int sid}|{int id1}|{int id2}|{int total}|{int approved}|{str [y|n]}
* 277 SIMILAR APPROVAL UPDATED
{int entity}|{int sid}|{int id1}|{int id2}|{int total}|{int approved}|{str [y|n]}
* 278 SIMILAR APPROVAL REVOKED
{int entity}|{int sid}|{int id1}|{int id2}|{int total}|{int approved}|{str r}


<table border="1" cellpadding="0" cellspacing="2">
* 375 NO SUCH SIMILAR PAIRING
<tr>
{int entity}|{int id1}|{int id2}
  <td align="center">Byte 1</td>
* 376 NO SUCH SIMILAR PAIRING APPROVAL
  <td align="center">Byte 2</td>
 
  <td align="center">Byte 3</td>
'''Info:'''
  <td align="center">Byte 4</td>
* ''entity'' is always 1.
  </tr>
* ''id1'' and ''id2'' represent an ''existing'' pair of ids. There are no provisions for ''adding'' new similar pairs
<tr>
* Which id is assigned to ''id1'' and which id is assigned to ''id2'' is irrelevant
  <td>
* Use ''approval=y'' to approve the pair, ''approve=n'' to disapprove, and ''approve=r'' to revoke (delete) an existing approval/disapproval.
  <table>
* If an approval vote is already assigned, submitting a new ''y''/''n'' value will replace the old vote.
    <tr>
 
    <td>Bit</td>
=== UPDATED: Get List of Updated Anime IDs ===
    <td align="right">Decimal</td>
Returns a list of AniDB anime ids of anime that have been updated in in a given time frame, ordered by descending date.
    <td>Data Field</td>
 
    </tr>
'''Command String:'''
    <tr bgcolor="#eee">
* UPDATED entity=1&[age={int4 id}|time={int4 date}]
    <td>0</td>
 
    <td align="right">1</td>
'''Possible Replies:'''
    <td>int4 anime total episodes</td>
* 243 UPDATED
    </tr>
{int entity}|{int total count}|{int last update date}|{list aid}
    <tr>
 
    <td>1</td>
* 343 NO UPDATES
    <td align="right">2</td>
 
    <td>int4 highest episode number</td>
'''Info:'''
    </tr>
* ''entity'' is always 1
    <tr bgcolor="#eee">
* Either ''age'' OR ''time'' can be specified, but not both
    <td>2</td>
* ''age'' is specified in days.
    <td align="right">4</td>
** eg: age=30 requests a list of aid values of anime that have changed in the past 30 days
    <td>str year</td>
* ''time'' is specified in unix time.
    </tr>
** eg: time=1264982400 requests a list of aid values of anime that have changed since 2010-02-01
    <tr>
* A maximum of 200 values will be returned
    <td>3</td>
* ''count'' specifies the total number of items found for the given time period.  In short, if this value is great than 200, you have not retrieved all applicable ids.
    <td align="right">8</td>
* ''last update date'' will contain the AniDB update time of the ''last'' aid to appear on the list
    <td>str type</td>
 
    </tr>
'''An anime will be considered updated if:'''
    <tr bgcolor="#eee">
* A change is made to the anime record itself
    <td>4</td>
* An ''main'' or ''official'' anime title is added, edited, or deleted (not ''short'' or ''synonym'')
    <td align="right">16</td>
* An episode for the anime is added, or delete (but NOT edited!) ( --> But perhaps airdate changes should <-- )
    <td>str related aid list</td>
* An episode title is added, edited, or delete
    </tr>
* An anime category is added, or deleted (but NOT edited: eg, weight change)
    <tr>
* An anime relation is added, or deleted
    <td>5</td>
 
    <td align="right">32</td>
=== REVIEW: Get Anime Review ===
    <td>str related aid type</td>
Retrieves the review scores and text for an anime review.  Like ANIMEDESC, it will likely take multiple calls to this comment to retrieve a complete review - almost all reviews will overflow the size limits of a UDP packet.
    </tr>
 
    <tr bgcolor="#eee">
'''Command String:'''
    <td>6</td>
* REVIEW rid={int4 id}
    <td align="right">64</td>
 
    <td>str category list</td>
'''Possible Replies:'''
    </tr>
* 234 REVIEW
    <tr>
: {int4 current part}|{int4 max parts}|{int4 review id}|{int4 author uid}|{int4 score_animation}|{int4 score_sound}|{int4 score_story}|{int4 score_character}|{int4 score_value}|{int4 score_enjoyment}|{str review_text}
    <td>7</td>
* 234 REVIEW
    <td align="right">128</td>
: {int4 current part}|{int4 max parts}|{str review_text}
    <td>unused</td>
 
    </tr>
* 334 NO SUCH REVIEW
  </table>
 
  </td>
'''Info:'''
  <td>
* IDs and scores are returned with part zero only. Parts one through max exclude the scores and return the text block only.
  <table>
    <tr>
    <td>Bit</td>
    <td align="right">Decimal</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>0</td>
    <td align="right">1</td>
    <td>str romaji name</td>
    </tr>
    <tr>
    <td>1</td>
    <td align="right">2</td>
    <td>str kanji name</td>
    </tr>
    <tr bgcolor="#eee">
    <td>2</td>
    <td align="right">4</td>
    <td>str english name</td>
    </tr>
    <tr>
    <td>3</td>
    <td align="right">8</td>
    <td>str other name</td>
    </tr>
    <tr bgcolor="#eee">
    <td>4</td>
    <td align="right">16</td>
    <td>str short name list</td>
    </tr>
    <tr>
    <td>5</td>
    <td align="right">32</td>
    <td>str synonym list</td>
    </tr>
    <tr bgcolor="#eee">
    <td>6</td>
    <td align="right">64</td>
    <td>str producer name list</td>
    </tr>
    <tr>
    <td>7</td>
    <td align="right">128</td>
    <td>str producer id list</td>
    </tr>
  </table>
  </td>
  <td>
  <table>
    <tr>
    <td>Bit</td>
    <td align="right">Decimal</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>0</td>
    <td align="right">1</td>
    <td>str epno</td>
    </tr>
    <tr>
    <td>1</td>
    <td align="right">2</td>
    <td>str ep name</td>
    </tr>
    <tr bgcolor="#eee">
    <td>2</td>
    <td align="right">4</td>
    <td>str ep romaji name</td>
    </tr>
    <tr>
    <td>3</td>
    <td align="right">8</td>
    <td>str ep kanji name</td>
    </tr>
    <tr bgcolor="#eee">
    <td>4</td>
    <td align="right">16</td>
    <td>unused</td>
    </tr>
    <tr>
    <td>5</td>
    <td align="right">32</td>
    <td>unused</td>
    </tr>
    <tr bgcolor="#eee">
    <td>6</td>
    <td align="right">64</td>
    <td>unused</td>
    </tr>
    <tr>
    <td>7</td>
    <td align="right">128</td>
    <td>unused</td>
    </tr>
  </table>
  </td>
  <td>
  <table>
    <tr>
    <td>Bit</td>
    <td align="right">Decimal</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>0</td>
    <td align="right">1</td>
    <td>str group name</td>
    </tr>
    <tr>
    <td>1</td>
    <td align="right">2</td>
    <td>str group short name</td>
    </tr>
    <tr bgcolor="#eee">
    <td>2</td>
    <td align="right">4</td>
    <td>unused</td>
    </tr>
    <tr>
    <td>3</td>
    <td align="right">8</td>
    <td>unused</td>
    </tr>
    <tr bgcolor="#eee">
    <td>4</td>
    <td align="right">16</td>
    <td>unused</td>
    </tr>
    <tr>
    <td>5</td>
    <td align="right">32</td>
    <td>unused</td>
    </tr>
    <tr bgcolor="#eee">
    <td>6</td>
    <td align="right">64</td>
    <td>unused</td>
    </tr>
    <tr>
    <td>7</td>
    <td align="right">128</td>
    <td>unused</td>
    </tr>
  </table>
  </td>
  </tr>
</table>


</center>


<center>


'''fmask:'''


<table border="1" cellpadding="0" cellspacing="2">
<tr>
  <td align="center">Byte 1</td>
  <td align="center">Byte 2</td>
  <td align="center">Byte 3</td>
  <td align="center">Byte 4</td>
</tr>
<tr>
  <td>
  <table>
    <tr>
    <td>Bit</td>
    <td align="right">Decimal</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>0</td>
    <td align="right">1</td>
    <td>-</td>
    </tr>
    <tr>
    <td>1</td>
    <td align="right">2</td>
    <td>int4 aid</td>
    </tr>
    <tr bgcolor="#eee">
    <td>2</td>
    <td align="right">4</td>
    <td>int4 eid</td>
    </tr>
    <tr>
    <td>3</td>
    <td align="right">8</td>
    <td>int4 gid</td>
    </tr>
    <tr bgcolor="#eee">
    <td>4</td>
    <td align="right">16</td>
    <td>int4 lid</td>
    </tr>
    <tr>
    <td>5</td>
    <td align="right">32</td>
    <td>list other episodes</td>
    </tr>
    <tr bgcolor="#eee">
    <td>6</td>
    <td align="right">64</td>
    <td>int2 IsDeprecated</td>
    </tr>
    <tr>
    <td>7</td>
    <td align="right">128</td>
    <td>int2 state</td>
    </tr>
  </table>
  </td>
  <td>
  <table>
    <tr>
    <td>Bit</td>
    <td align="right">Decimal</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>0</td>
    <td align="right">1</td>
    <td>int8 size</td>
    </tr>
    <tr>
    <td>1</td>
    <td align="right">2</td>
    <td>str ed2k</td>
    </tr>
    <tr bgcolor="#eee">
    <td>2</td>
    <td align="right">4</td>
    <td>str md5</td>
    </tr>
    <tr>
    <td>3</td>
    <td align="right">8</td>
    <td>str sha1</td>
    </tr>
    <tr bgcolor="#eee">
    <td>4</td>
    <td align="right">16</td>
    <td>str crc32</td>
    </tr>
    <tr>
    <td>5</td>
    <td align="right">32</td>
    <td>unused</td>
    </tr>
    <tr bgcolor="#eee">
    <td>6</td>
    <td align="right">64</td>
    <td>unused</td>
    </tr>
    <tr>
    <td>7</td>
    <td align="right">128</td>
    <td>unused</td>
    </tr>
  </table>
  </td>
  <td>
  <table>
    <tr>
    <td>Bit</td>
    <td align="right">Decimal</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>0</td>
    <td align="right">1</td>
    <td>str quality</td>
    </tr>
    <tr>
    <td>1</td>
    <td align="right">2</td>
    <td>str source</td>
    </tr>
    <tr bgcolor="#eee">
    <td>2</td>
    <td align="right">4</td>
    <td>str audio codec</td>
    </tr>
    <tr>
    <td>3</td>
    <td align="right">8</td>
    <td>int4 audio bitrate</td>
    </tr>
    <tr bgcolor="#eee">
    <td>4</td>
    <td align="right">16</td>
    <td>str video codec</td>
    </tr>
    <tr>
    <td>5</td>
    <td align="right">32</td>
    <td>int4 video bitrate</td>
    </tr>
    <tr bgcolor="#eee">
    <td>6</td>
    <td align="right">64</td>
    <td>str video resolution</td>
    </tr>
    <tr>
    <td>7</td>
    <td align="right">128</td>
    <td>str file type (extension)</td>
    </tr>
  </table>
  </td>
  <td>
  <table>
    <tr>
    <td>Bit</td>
    <td align="right">Decimal</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>0</td>
    <td align="right">1</td>
    <td>str dub language</td>
    </tr>
    <tr>
    <td>1</td>
    <td align="right">2</td>
    <td>str sub language</td>
    </tr>
    <tr bgcolor="#eee">
    <td>2</td>
    <td align="right">4</td>
    <td>int4 length in seconds</td>
    </tr>
    <tr>
    <td>3</td>
    <td align="right">8</td>
    <td>str description</td>
    </tr>
    <tr bgcolor="#eee">
    <td>4</td>
    <td align="right">16</td>
    <td>int4 release date</td>
    </tr>
    <tr>
    <td>5</td>
    <td align="right">32</td>
    <td>unused</td>
    </tr>
    <tr bgcolor="#eee">
    <td>6</td>
    <td align="right">64</td>
    <td>unused</td>
    </tr>
    <tr>
    <td>7</td>
    <td align="right">128</td>
    <td>str anidb file name</td>
    </tr>
  </table>
  </td>
</tr>
</table>


</center>
[Maybe exchange author uid for author name.  Or a uid->name lookup via USER?]


=== ANIME acode replacement ===
=== WISHLIST: Retrieve Wishlist Data  ===


<center>
Retrieve wishlist data.


'''amask:'''
'''Command String:'''<br>
full list:
* WISHLIST
by aid:
* WISHLIST aid={int4 aid}
by wishlist id:
* WISHLIST lid={int4 lid}
by priority:
* WISHLIST priority={int4 priority}
<br>
'''Possible Replies:'''<br>
<br>
by aid, lid:
*223 WISHLIST
: {int4 lid}|{int4 aid}|{int2 type}|{int2 priority}|{int4 fromuid}|{str comment}|{int4 adddate}
<br>
full list, by priority:


<table border="1" cellpadding="0" cellspacing="2">
*229 MULTIPLE WISHLIST ITEMS
<tr>
: {int4 aid}|{int4 type}|{int4 priority}/n
  <td align="center">Byte 1</td>
: {int4 aid}|{int4 type}|{int4 priority}/n
  <td align="center">Byte 2</td>
..repeated n times
  <td align="center">Byte 3</td>
<br><br>
  <td align="center">Byte 4</td>
*323 NO SUCH WISHLIST ITEM
  <td align="center">Byte 5</td>
<br>
</tr>
'''Info:'''
<tr>
* ''Priority'' values are 0: low, 1: medium, 2: high
  <td>
* ''Type'' values are 1: to watch, 2: to get
  <table>
* Multiple items are returned in descending priority (high priority first)
    <tr>
* The ''fromuid'' field represents the uid of the user that created the wishlist entry. Typically this is the actual user, but could be a buddy.
    <td>Bit</td>
    <td align="right">Dec</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>7</td>
    <td align="right">128</td>
    <td>int aid</td>
    </tr>
    <tr>
    <td>6</td>
    <td align="right">64</td>
    <td>unused</td>
    </tr>
    <tr bgcolor="#eee">
    <td>5</td>
    <td align="right">32</td>
    <td>str year</td>
    </tr>
    <tr>
    <td>4</td>
    <td align="right">16</td>
    <td>str type</td>
    </tr>
    <tr bgcolor="#eee">
    <td>3</td>
    <td align="right">8</td>
    <td>str related aid list</td>
    </tr>
    <tr>
    <td>2</td>
    <td align="right">4</td>
    <td>str related aid type</td>
    </tr>
    <tr bgcolor="#eee">
    <td>1</td>
    <td align="right">2</td>
    <td>str category list</td>
    </tr>
    <tr>
    <td>0</td>
    <td align="right">1</td>
    <td>reserved</td>
    </tr>
  </table>
  </td>
  <td>
  <table>
    <tr>
    <td>Bit</td>
    <td align="right">Dec</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>7</td>
    <td align="right">128</td>
    <td>str romaji name</td>
    </tr>
    <tr>
    <td>6</td>
    <td align="right">64</td>
    <td>str kanji name</td>
    </tr>
    <tr bgcolor="#eee">
    <td>5</td>
    <td align="right">32</td>
    <td>str english name</td>
    </tr>
    <tr>
    <td>4</td>
    <td align="right">16</td>
    <td>str other name</td>
    </tr>
    <tr bgcolor="#eee">
    <td>3</td>
    <td align="right">8</td>
    <td>str short name list</td>
    </tr>
    <tr>
    <td>2</td>
    <td align="right">4</td>
    <td>str synonym list</td>
    </tr>
    <tr bgcolor="#eee">
    <td>1</td>
    <td align="right">2</td>
    <td>str producer name list</td>
    </tr>
    <tr>
    <td>0</td>
    <td align="right">1</td>
    <td>str producer id list</td>
    </tr>
  </table>
  </td>
  <td>
  <table>
    <tr>
    <td>Bit</td>
    <td align="right">Dec</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>7</td>
    <td align="right">128</td>
    <td>int4 episodes</td>
    </tr>
    <tr>
    <td>6</td>
    <td align="right">64</td>
    <td>int4 normal ep count</td>
    </tr>
    <tr bgcolor="#eee">
    <td>5</td>
    <td align="right">32</td>
    <td>int4 special ep count</td>
    </tr>
    <tr>
    <td>4</td>
    <td align="right">16</td>
    <td>int4 air date</td>
    </tr>
    <tr bgcolor="#eee">
    <td>3</td>
    <td align="right">8</td>
    <td>int4 end date</td>
    </tr>
    <tr>
    <td>2</td>
    <td align="right">4</td>
    <td>str url</td>
    </tr>
    <tr bgcolor="#eee">
    <td>1</td>
    <td align="right">2</td>
    <td>str picname</td>
    </tr>
    <tr>
    <td>0</td>
    <td align="right">1</td>
    <td>unused</td>
    </tr>
  </table>
  </td>
  <td>
  <table>
    <tr>
    <td>Bit</td>
    <td align="right">Dec</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>7</td>
    <td align="right">128</td>
    <td>int4 rating</td>
    </tr>
    <tr>
    <td>6</td>
    <td align="right">64</td>
    <td>int4 vote count</td>
    </tr>
    <tr bgcolor="#eee">
    <td>5</td>
    <td align="right">32</td>
    <td>int4 temp rating</td>
    </tr>
    <tr>
    <td>4</td>
    <td align="right">16</td>
    <td>int4 temp vote count</td>
    </tr>
    <tr bgcolor="#eee">
    <td>3</td>
    <td align="right">8</td>
    <td>int4 average review rating</td>
    </tr>
    <tr>
    <td>2</td>
    <td align="right">4</td>
    <td>int4 review count</td>
    </tr>
    <tr bgcolor="#eee">
    <td>1</td>
    <td align="right">2</td>
    <td>str award list</td>
    </tr>
    <tr>
    <td>0</td>
    <td align="right">1</td>
    <td>unused</td>
    </tr>
  </table>
  </td>
  <td>
  <table>
    <tr>
    <td>Bit</td>
    <td align="right">Dec</td>
    <td>Data Field</td>
    </tr>
    <tr bgcolor="#eee">
    <td>7</td>
    <td align="right">128</td>
    <td>int4 anime planet id</td>
    </tr>
    <tr>
    <td>6</td>
    <td align="right">64</td>
    <td>int4 ANN id</td>
    </tr>
    <tr bgcolor="#eee">
    <td>5</td>
    <td align="right">32</td>
    <td>int4 allcinema id</td>
    </tr>
    <tr>
    <td>4</td>
    <td align="right">16</td>
    <td>str animenfo id</td>
    </tr>
    <tr bgcolor="#eee">
    <td>3</td>
    <td align="right">8</td>
    <td>unused</td>
    </tr>
    <tr>
    <td>2</td>
    <td align="right">4</td>
    <td>unused</td>
    </tr>
    <tr bgcolor="#eee">
    <td>1</td>
    <td align="right">2</td>
    <td>unused</td>
    </tr>
    <tr>
    <td>0</td>
    <td align="right">1</td>
    <td>unused</td>
    </tr>
  </table>
  </td>
  </tr>
</table>


</center>
=== WISHLISTADD: Add Anime to Wishlist ===


=== ANIME Relationship Types ===
'''Command String:'''<br>


%adb_seq_subs::seq_type = (
* WISHLISTADD aid={int4 aid}&type={int2 type}&priority={int2 priority}[&comment={str comment}]
1 => 'sequel',
2 => 'prequel',


11 => 'same setting',
12 => 'same setting',


21 => 'alternative setting',
* 226 WISHLIST ITEM ADDED
22 => 'alternative setting',
: {int4 wishlist id}
* 228 WISHLIST ITEM UPDATED
: {int4 wishlist id}


31 => 'alternative version',
=== WISHLISTDEL: Remove Anime from Wishlist ===
32 => 'alternative version',


41 => 'character',
=== NOTIFICATION: Retrieve Notification Date ===
42 => 'character',


51 => 'side story',
=== NOTIFICATIONADD: Add Anime or Group to Notify List ===
52 => 'parent story',


61 => 'summary',
'''Command String:'''<br>
62 => 'full story',


100 => 'other'
by anime id:
);
* NOTIFICATIONADD aid={int4 aid}&type={int2 type}&priority={int2 priority}
by group id:
* NOTIFICATIONADD gid={int4 gid}&type={int2 type}&priority={int2 priority}
<br>
'''Possible Replies:'''


=== MYLISTEXPORT: Schedule a MyList Export ===
* 246 NOTIFICATION ITEM ADDED
Queues a MyList Export (link to page!) by the AniDb Servers.  As with a manual export request, exports are only done during periods when server load is low.  As a result, exports may take up to 24 hours.  The client submitting the request will receive an AniDb message when the export is ready to be collected.
: {int4 notification id}
* 248 NOTIFICATION ITEM UPDATED
: {int4 notification id}
* 399 NO CHANGES
<br>
'''Info:'''
* ''Priority'' values are 0: low, 1: medium, 2: high
* ''Type'' values are 0: all, 1: new, 2: group, 3: complete


Only one export can be in the queue at a time.
=== NOTIFICATIONDEL: Remove Anime or Group from Notify List ===


'''Command String:'''
'''Command String:'''<br>
* MYLISTEXPORT [template={str template_name}|cancel=1]


by anime id:
* NOTIFICATIONDEL aid={int4 aid}
by group id:
* NOTIFICATIONDEL gid={int4 gid}
<br>
'''Possible Replies:'''
'''Possible Replies:'''
* 217 Export Queued
* 218 Export Cancelled
* 317 No Such Template
* 318 Export Already In Queue


* 247 NOTIFICATION ITEM DELETED
: {int4 notification_table}|{int4 relid}
* 324 NO SUCH NOTIFICATION ITEM
<br>
'''Info:'''
'''Info:'''
* ''template_name'' must be long enough to uniquely identify the export template desired.
* ''notification_table'' values are 1: anime, 2: group
* ''cancel'' will cancel any pending export request, queued either through UDP or the web server.  (Should cancel even be an option?)
* ''relid'' value matches the aid/gid supplied
* Clients can subscribe the message notifications if they wish to be notified when an export is complete.


=== Empty Table ===  
=== Empty Table ===  
Line 793: Line 229:
  </tr>
  </tr>
</table>
</table>
=== Permissions (badges) ===
<pre>[22 Jan 12 16:57] * Ommina: baka gives good advice.  Let's get the permission thing fully figured out.  If I'm going to stop playing minecraft, I don't want to have to redo stuff.  (and now gone for food.)
[22 Jan 12 17:04] * worf: well ... what do we have
[22 Jan 12 17:04] * worf: we have a set of personal settings that only affect you
[22 Jan 12 17:05] * worf: hiding thumbnails, hiding all images, hiding porn images, hiding all porn
[22 Jan 12 17:06] * worf: but those dont need to be considered in the xml
[22 Jan 12 17:07] * worf: and then we have the permissions
[22 Jan 12 17:07] * worf: see me in user list, see my anime list, see storage info, see source info, see viewed info, see ep info, see file info, see state info, see my votes, see my wishlist, see my userpage, see my porn
[22 Jan 12 17:08] * worf: see my porn - obviously would apply to the hentai badge
[22 Jan 12 17:09] * worf: see my anime list - should apply to all anime and creator badges
[22 Jan 12 17:09] * DerIdiot: see my anime list/see viewed info/see ep info/see my votes are the ones that matter
[22 Jan 12 17:11] * worf: see my votes shouldnt matter
[22 Jan 12 17:11] * DerIdiot: wasn't sure if you have some badge with them
[22 Jan 12 17:11] * DerIdiot: if not then yes it doesn't
[22 Jan 12 17:11] * worf: there is a counter badge
[22 Jan 12 17:11] * worf: but we are already displaying the number of votes on the userpage anyway
[22 Jan 12 17:12] * worf: i dont think that permission hides the counter either
[22 Jan 12 17:12] * DerIdiot: i'm not 100% sure, but if not then yes you cna ignore it
[22 Jan 12 17:14] * worf: the only usage of PERM_SEEVOTES on the userpage appears to be for hiding the latest votes
[22 Jan 12 17:17] * worf: so ...
[22 Jan 12 17:17] * worf: PERM_SEEMYPORN for the hentai badge
[22 Jan 12 17:18] * worf: PERM_SHOWMYLIST for all anime and creator based badges including the hentai badge
[22 Jan 12 17:18] * worf: PERM_VIEWEDINFO same as the above i guess
[22 Jan 12 17:20] * worf: PERM_EPINFO shouldnt apply since we arent displaying which episodes have been watched. just how many
[22 Jan 12 17:22] * DerIdiot: PERM_EPINFO says that somethign is in mylist; PERM_VIEWEDINFO does the same + says that it's watched
[22 Jan 12 17:25] * worf: if you have PERM_SHOWMYLIST on "everyone" and PERM_EPINFO on "no one" then you can only see which anime a person has but not which episodes
[22 Jan 12 17:25] * DerIdiot: yes
[22 Jan 12 17:25] * worf: hm, ok
[22 Jan 12 17:25] * worf: it hides the counts too
[22 Jan 12 17:26] * worf: k
[22 Jan 12 17:26] * DerIdiot: but you only got watched badges not collecting ones right?
[22 Jan 12 17:26] * worf: yes
[22 Jan 12 17:26] * DerIdiot: then PERM_VIEWEDINFO is enough
[22 Jan 12 17:26] * DerIdiot: should prolly have PERM_SHOWMYLIST and PERM_VIEWEDINFO
[22 Jan 12 17:27] * worf: hmm
</pre>
=== EPISODEDESC: Retrieve Episode Description ===
'''Command String:'''<br>
by eid
* EPISODEDESC eid={int eid}
'''Possible Replies:'''
* 241 EPISODE DESCRIPTION
: {int4} eid|{str description}
* 341 NO DESCRIPTION
'''Info:'''
* Be aware of the UDP packet size limits.  As of this writing, fewer than one percent of all episode descriptions will not fit into one packet.  That value falls further if compression is enabled.  Nonetheless, some especially enthusiastic descriptions will be truncated as necessary.

Latest revision as of 22:55, 16 October 2017

--> Edit FILE docs to include MyList data block <--

CATEGORY: Retrieve Category Data

SIMILAR: Approve or Disapprove of a Similar Pairing

Command String:

  • SIMILAR entity=1&id1={int4 id}&id2={int4 id}[&approve={str [y|n|r]}]

Possible Replies:

  • 275 SIMILAR APPROVAL

{int entity}|{int sid}|{int id1}|{int id2}|{int total}|{int approved}|{str [y|n]}

  • 276 SIMILAR APPROVAL FOUND

{int entity}|{int sid}|{int id1}|{int id2}|{int total}|{int approved}|{str [y|n]}

  • 277 SIMILAR APPROVAL UPDATED

{int entity}|{int sid}|{int id1}|{int id2}|{int total}|{int approved}|{str [y|n]}

  • 278 SIMILAR APPROVAL REVOKED

{int entity}|{int sid}|{int id1}|{int id2}|{int total}|{int approved}|{str r}

  • 375 NO SUCH SIMILAR PAIRING

{int entity}|{int id1}|{int id2}

  • 376 NO SUCH SIMILAR PAIRING APPROVAL

Info:

  • entity is always 1.
  • id1 and id2 represent an existing pair of ids. There are no provisions for adding new similar pairs
  • Which id is assigned to id1 and which id is assigned to id2 is irrelevant
  • Use approval=y to approve the pair, approve=n to disapprove, and approve=r to revoke (delete) an existing approval/disapproval.
  • If an approval vote is already assigned, submitting a new y/n value will replace the old vote.

UPDATED: Get List of Updated Anime IDs

Returns a list of AniDB anime ids of anime that have been updated in in a given time frame, ordered by descending date.

Command String:

  • UPDATED entity=1&[age={int4 id}|time={int4 date}]

Possible Replies:

  • 243 UPDATED

{int entity}|{int total count}|{int last update date}|{list aid}

  • 343 NO UPDATES

Info:

  • entity is always 1
  • Either age OR time can be specified, but not both
  • age is specified in days.
    • eg: age=30 requests a list of aid values of anime that have changed in the past 30 days
  • time is specified in unix time.
    • eg: time=1264982400 requests a list of aid values of anime that have changed since 2010-02-01
  • A maximum of 200 values will be returned
  • count specifies the total number of items found for the given time period. In short, if this value is great than 200, you have not retrieved all applicable ids.
  • last update date will contain the AniDB update time of the last aid to appear on the list

An anime will be considered updated if:

  • A change is made to the anime record itself
  • An main or official anime title is added, edited, or deleted (not short or synonym)
  • An episode for the anime is added, or delete (but NOT edited!) ( --> But perhaps airdate changes should <-- )
  • An episode title is added, edited, or delete
  • An anime category is added, or deleted (but NOT edited: eg, weight change)
  • An anime relation is added, or deleted

REVIEW: Get Anime Review

Retrieves the review scores and text for an anime review. Like ANIMEDESC, it will likely take multiple calls to this comment to retrieve a complete review - almost all reviews will overflow the size limits of a UDP packet.

Command String:

  • REVIEW rid={int4 id}

Possible Replies:

  • 234 REVIEW
{int4 current part}|{int4 max parts}|{int4 review id}|{int4 author uid}|{int4 score_animation}|{int4 score_sound}|{int4 score_story}|{int4 score_character}|{int4 score_value}|{int4 score_enjoyment}|{str review_text}
  • 234 REVIEW
{int4 current part}|{int4 max parts}|{str review_text}
  • 334 NO SUCH REVIEW

Info:

  • IDs and scores are returned with part zero only. Parts one through max exclude the scores and return the text block only.



[Maybe exchange author uid for author name. Or a uid->name lookup via USER?]

WISHLIST: Retrieve Wishlist Data

Retrieve wishlist data.

Command String:
full list:

  • WISHLIST

by aid:

  • WISHLIST aid={int4 aid}

by wishlist id:

  • WISHLIST lid={int4 lid}

by priority:

  • WISHLIST priority={int4 priority}


Possible Replies:

by aid, lid:

  • 223 WISHLIST
{int4 lid}|{int4 aid}|{int2 type}|{int2 priority}|{int4 fromuid}|{str comment}|{int4 adddate}


full list, by priority:

  • 229 MULTIPLE WISHLIST ITEMS
{int4 aid}|{int4 type}|{int4 priority}/n
{int4 aid}|{int4 type}|{int4 priority}/n

..repeated n times

  • 323 NO SUCH WISHLIST ITEM


Info:

  • Priority values are 0: low, 1: medium, 2: high
  • Type values are 1: to watch, 2: to get
  • Multiple items are returned in descending priority (high priority first)
  • The fromuid field represents the uid of the user that created the wishlist entry. Typically this is the actual user, but could be a buddy.

WISHLISTADD: Add Anime to Wishlist

Command String:

  • WISHLISTADD aid={int4 aid}&type={int2 type}&priority={int2 priority}[&comment={str comment}]


  • 226 WISHLIST ITEM ADDED
{int4 wishlist id}
  • 228 WISHLIST ITEM UPDATED
{int4 wishlist id}

WISHLISTDEL: Remove Anime from Wishlist

NOTIFICATION: Retrieve Notification Date

NOTIFICATIONADD: Add Anime or Group to Notify List

Command String:

by anime id:

  • NOTIFICATIONADD aid={int4 aid}&type={int2 type}&priority={int2 priority}

by group id:

  • NOTIFICATIONADD gid={int4 gid}&type={int2 type}&priority={int2 priority}


Possible Replies:

  • 246 NOTIFICATION ITEM ADDED
{int4 notification id}
  • 248 NOTIFICATION ITEM UPDATED
{int4 notification id}
  • 399 NO CHANGES


Info:

  • Priority values are 0: low, 1: medium, 2: high
  • Type values are 0: all, 1: new, 2: group, 3: complete

NOTIFICATIONDEL: Remove Anime or Group from Notify List

Command String:

by anime id:

  • NOTIFICATIONDEL aid={int4 aid}

by group id:

  • NOTIFICATIONDEL gid={int4 gid}


Possible Replies:

  • 247 NOTIFICATION ITEM DELETED
{int4 notification_table}|{int4 relid}
  • 324 NO SUCH NOTIFICATION ITEM


Info:

  • notification_table values are 1: anime, 2: group
  • relid value matches the aid/gid supplied

Empty Table

Byte 1
Bit Decimal Data Field
0 1 String
1 2 String
2 4 String
3 8 String
4 16 String
5 32 String
6 64 String
7 128 String

Permissions (badges)

[22 Jan 12 16:57] * Ommina: baka gives good advice.  Let's get the permission thing fully figured out.  If I'm going to stop playing minecraft, I don't want to have to redo stuff.  (and now gone for food.)
[22 Jan 12 17:04] * worf: well ... what do we have
[22 Jan 12 17:04] * worf: we have a set of personal settings that only affect you
[22 Jan 12 17:05] * worf: hiding thumbnails, hiding all images, hiding porn images, hiding all porn
[22 Jan 12 17:06] * worf: but those dont need to be considered in the xml
[22 Jan 12 17:07] * worf: and then we have the permissions 
[22 Jan 12 17:07] * worf: see me in user list, see my anime list, see storage info, see source info, see viewed info, see ep info, see file info, see state info, see my votes, see my wishlist, see my userpage, see my porn
[22 Jan 12 17:08] * worf: see my porn - obviously would apply to the hentai badge
[22 Jan 12 17:09] * worf: see my anime list - should apply to all anime and creator badges
[22 Jan 12 17:09] * DerIdiot: see my anime list/see viewed info/see ep info/see my votes are the ones that matter
[22 Jan 12 17:11] * worf: see my votes shouldnt matter
[22 Jan 12 17:11] * DerIdiot: wasn't sure if you have some badge with them
[22 Jan 12 17:11] * DerIdiot: if not then yes it doesn't
[22 Jan 12 17:11] * worf: there is a counter badge
[22 Jan 12 17:11] * worf: but we are already displaying the number of votes on the userpage anyway
[22 Jan 12 17:12] * worf: i dont think that permission hides the counter either
[22 Jan 12 17:12] * DerIdiot: i'm not 100% sure, but if not then yes you cna ignore it
[22 Jan 12 17:14] * worf: the only usage of PERM_SEEVOTES on the userpage appears to be for hiding the latest votes
[22 Jan 12 17:17] * worf: so ... 
[22 Jan 12 17:17] * worf: PERM_SEEMYPORN for the hentai badge
[22 Jan 12 17:18] * worf: PERM_SHOWMYLIST for all anime and creator based badges including the hentai badge
[22 Jan 12 17:18] * worf: PERM_VIEWEDINFO same as the above i guess
[22 Jan 12 17:20] * worf: PERM_EPINFO shouldnt apply since we arent displaying which episodes have been watched. just how many
[22 Jan 12 17:22] * DerIdiot: PERM_EPINFO says that somethign is in mylist; PERM_VIEWEDINFO does the same + says that it's watched
[22 Jan 12 17:25] * worf: if you have PERM_SHOWMYLIST on "everyone" and PERM_EPINFO on "no one" then you can only see which anime a person has but not which episodes
[22 Jan 12 17:25] * DerIdiot: yes
[22 Jan 12 17:25] * worf: hm, ok
[22 Jan 12 17:25] * worf: it hides the counts too
[22 Jan 12 17:26] * worf: k
[22 Jan 12 17:26] * DerIdiot: but you only got watched badges not collecting ones right?
[22 Jan 12 17:26] * worf: yes
[22 Jan 12 17:26] * DerIdiot: then PERM_VIEWEDINFO is enough
[22 Jan 12 17:26] * DerIdiot: should prolly have PERM_SHOWMYLIST and PERM_VIEWEDINFO
[22 Jan 12 17:27] * worf: hmm


EPISODEDESC: Retrieve Episode Description

Command String:
by eid

  • EPISODEDESC eid={int eid}

Possible Replies:

  • 241 EPISODE DESCRIPTION
{int4} eid|{str description}
  • 341 NO DESCRIPTION

Info:

  • Be aware of the UDP packet size limits. As of this writing, fewer than one percent of all episode descriptions will not fit into one packet. That value falls further if compression is enabled. Nonetheless, some especially enthusiastic descriptions will be truncated as necessary.