Hex Artifact Content
Not logged in

Artifact b4111f892c48d68e9477cd08ff91ac57ec8893d0:


0000: 5c 20 44 69 61 73 70 6f 72 61 20 73 63 68 65 6d  \ Diaspora schem
0010: 65 0a 0a 5c 20 43 6f 70 79 72 69 67 68 74 20 28  e..\ Copyright (
0020: 43 29 20 32 30 31 38 20 20 20 42 65 72 6e 64 20  C) 2018   Bernd 
0030: 50 61 79 73 61 6e 0a 0a 5c 20 54 68 69 73 20 70  Paysan..\ This p
0040: 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73  rogram is free s
0050: 6f 66 74 77 61 72 65 3a 20 79 6f 75 20 63 61 6e  oftware: you can
0060: 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74   redistribute it
0070: 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 5c   and/or modify.\
0080: 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65   it under the te
0090: 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 41  rms of the GNU A
00a0: 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 75  ffero General Pu
00b0: 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20  blic License as 
00c0: 70 75 62 6c 69 73 68 65 64 20 62 79 0a 5c 20 74  published by.\ t
00d0: 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65  he Free Software
00e0: 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74   Foundation, eit
00f0: 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66  her version 3 of
0100: 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72   the License, or
0110: 0a 5c 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69  .\ (at your opti
0120: 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65  on) any later ve
0130: 72 73 69 6f 6e 2e 0a 0a 5c 20 54 68 69 73 20 70  rsion...\ This p
0140: 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69  rogram is distri
0150: 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70  buted in the hop
0160: 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62  e that it will b
0170: 65 20 75 73 65 66 75 6c 2c 0a 5c 20 62 75 74 20  e useful,.\ but 
0180: 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52  WITHOUT ANY WARR
0190: 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76  ANTY; without ev
01a0: 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77  en the implied w
01b0: 61 72 72 61 6e 74 79 20 6f 66 0a 5c 20 4d 45 52  arranty of.\ MER
01c0: 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20  CHANTABILITY or 
01d0: 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41  FITNESS FOR A PA
01e0: 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45  RTICULAR PURPOSE
01f0: 2e 20 20 53 65 65 20 74 68 65 0a 5c 20 47 4e 55  .  See the.\ GNU
0200: 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20   Affero General 
0210: 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66  Public License f
0220: 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e  or more details.
0230: 0a 0a 5c 20 59 6f 75 20 73 68 6f 75 6c 64 20 68  ..\ You should h
0240: 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63  ave received a c
0250: 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 41  opy of the GNU A
0260: 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 75  ffero General Pu
0270: 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 5c 20 61  blic License.\ a
0280: 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70  long with this p
0290: 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c  rogram.  If not,
02a0: 20 73 65 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77   see <http://www
02b0: 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65  .gnu.org/license
02c0: 73 2f 3e 2e 0a 0a 72 65 71 75 69 72 65 20 2e 2e  s/>...require ..
02d0: 2f 68 61 73 68 2d 74 61 62 6c 65 2e 66 73 0a 0a  /hash-table.fs..
02e0: 63 73 2d 73 63 6f 70 65 3a 20 64 69 61 73 70 6f  cs-scope: diaspo
02f0: 72 61 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73  ra..object class
0300: 7b 20 74 61 6b 65 6f 75 74 0a 20 20 20 20 24 76  { takeout.    $v
0310: 61 6c 75 65 3a 20 76 65 72 73 69 6f 6e 24 0a 20  alue: version$. 
0320: 20 20 20 76 61 6c 75 65 3a 20 75 73 65 72 7b 7d     value: user{}
0330: 0a 20 20 20 20 76 61 6c 75 65 3a 20 6f 74 68 65  .    value: othe
0340: 72 73 5f 64 61 74 61 7b 7d 0a 7d 63 6c 61 73 73  rs_data{}.}class
0350: 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20  ..object class{ 
0360: 75 73 65 72 0a 20 20 20 20 24 76 61 6c 75 65 3a  user.    $value:
0370: 20 75 73 65 72 6e 61 6d 65 24 0a 20 20 20 20 24   username$.    $
0380: 76 61 6c 75 65 3a 20 65 6d 61 69 6c 24 0a 20 20  value: email$.  
0390: 20 20 24 76 61 6c 75 65 3a 20 6c 61 6e 67 75 61    $value: langua
03a0: 67 65 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20  ge$.    $value: 
03b0: 70 72 69 76 61 74 65 5f 6b 65 79 24 0a 20 20 20  private_key$.   
03c0: 20 76 61 6c 75 65 3a 20 64 69 73 61 62 6c 65 5f   value: disable_
03d0: 6d 61 69 6c 3f 0a 20 20 20 20 76 61 6c 75 65 3a  mail?.    value:
03e0: 20 73 68 6f 77 5f 63 6f 6d 6d 75 6e 69 74 79 5f   show_community_
03f0: 73 70 6f 74 6c 69 67 68 74 5f 69 6e 5f 73 74 72  spotlight_in_str
0400: 65 61 6d 3f 0a 20 20 20 20 76 61 6c 75 65 3a 20  eam?.    value: 
0410: 61 75 74 6f 5f 66 6f 6c 6c 6f 77 5f 62 61 63 6b  auto_follow_back
0420: 3f 0a 20 20 20 20 76 61 6c 75 65 3a 20 61 75 74  ?.    value: aut
0430: 6f 5f 66 6f 6c 6c 6f 77 5f 62 61 63 6b 5f 61 73  o_follow_back_as
0440: 70 65 63 74 3f 0a 20 20 20 20 76 61 6c 75 65 3a  pect?.    value:
0450: 20 73 74 72 69 70 5f 65 78 69 66 3f 0a 20 20 20   strip_exif?.   
0460: 20 76 61 6c 75 65 3a 20 70 72 6f 66 69 6c 65 7b   value: profile{
0470: 7d 0a 20 20 20 20 66 69 65 6c 64 3a 20 63 6f 6e  }.    field: con
0480: 74 61 63 74 5f 67 72 6f 75 70 73 5b 5d 0a 20 20  tact_groups[].  
0490: 20 20 66 69 65 6c 64 3a 20 63 6f 6e 74 61 63 74    field: contact
04a0: 73 5b 5d 0a 20 20 20 20 66 69 65 6c 64 3a 20 70  s[].    field: p
04b0: 6f 73 74 73 5b 5d 0a 20 20 20 20 66 69 65 6c 64  osts[].    field
04c0: 3a 20 66 6f 6c 6c 6f 77 65 64 5f 74 61 67 73 5b  : followed_tags[
04d0: 5d 0a 20 20 20 20 66 69 65 6c 64 3a 20 70 6f 73  ].    field: pos
04e0: 74 5f 73 75 62 73 63 72 69 70 74 69 6f 6e 73 5b  t_subscriptions[
04f0: 5d 0a 20 20 20 20 66 69 65 6c 64 3a 20 72 65 6c  ].    field: rel
0500: 61 79 61 62 6c 65 73 5b 5d 0a 7d 63 6c 61 73 73  ayables[].}class
0510: 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20  ..object class{ 
0520: 70 72 6f 66 69 6c 65 0a 20 20 20 20 24 76 61 6c  profile.    $val
0530: 75 65 3a 20 65 6e 74 69 74 79 5f 74 79 70 65 24  ue: entity_type$
0540: 0a 20 20 20 20 76 61 6c 75 65 3a 20 65 6e 74 69  .    value: enti
0550: 74 79 5f 64 61 74 61 7b 7d 0a 20 20 20 20 66 69  ty_data{}.    fi
0560: 65 6c 64 3a 20 70 72 6f 70 65 72 74 79 5f 6f 72  eld: property_or
0570: 64 65 72 5b 5d 0a 7d 63 6c 61 73 73 0a 0a 6f 62  der[].}class..ob
0580: 6a 65 63 74 20 63 6c 61 73 73 7b 20 6f 74 68 65  ject class{ othe
0590: 72 73 5f 64 61 74 61 0a 20 20 20 20 66 69 65 6c  rs_data.    fiel
05a0: 64 3a 20 72 65 6c 61 79 61 62 6c 65 73 5b 5d 0a  d: relayables[].
05b0: 7d 63 6c 61 73 73 0a 0a 73 79 6e 6f 6e 79 6d 20  }class..synonym 
05c0: 72 65 6c 61 79 61 62 6c 65 73 20 70 72 6f 66 69  relayables profi
05d0: 6c 65 0a 73 79 6e 6f 6e 79 6d 20 72 65 6c 61 79  le.synonym relay
05e0: 61 62 6c 65 73 2d 63 6c 61 73 73 20 70 72 6f 66  ables-class prof
05f0: 69 6c 65 2d 63 6c 61 73 73 0a 73 79 6e 6f 6e 79  ile-class.synony
0600: 6d 20 70 68 6f 74 6f 73 20 70 72 6f 66 69 6c 65  m photos profile
0610: 0a 73 79 6e 6f 6e 79 6d 20 70 68 6f 74 6f 73 2d  .synonym photos-
0620: 63 6c 61 73 73 20 70 72 6f 66 69 6c 65 2d 63 6c  class profile-cl
0630: 61 73 73 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73  ass..object clas
0640: 73 7b 20 65 6e 74 69 74 79 5f 64 61 74 61 0a 20  s{ entity_data. 
0650: 20 20 20 24 76 61 6c 75 65 3a 20 61 75 74 68 6f     $value: autho
0660: 72 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 61  r$.    $value: a
0670: 75 74 68 6f 72 5f 73 69 67 6e 61 74 75 72 65 24  uthor_signature$
0680: 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 67 75 69  .    $value: gui
0690: 64 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 70  d$.    $value: p
06a0: 61 72 65 6e 74 5f 67 75 69 64 24 0a 20 20 20 20  arent_guid$.    
06b0: 24 76 61 6c 75 65 3a 20 70 61 72 65 6e 74 5f 74  $value: parent_t
06c0: 79 70 65 24 0a 20 20 20 20 36 34 76 61 6c 75 65  ype$.    64value
06d0: 3a 20 65 64 69 74 65 64 5f 61 74 21 0a 20 20 20  : edited_at!.   
06e0: 20 36 34 76 61 6c 75 65 3a 20 63 72 65 61 74 65   64value: create
06f0: 64 5f 61 74 21 0a 20 20 20 20 24 76 61 6c 75 65  d_at!.    $value
0700: 3a 20 66 69 72 73 74 5f 6e 61 6d 65 24 0a 20 20  : first_name$.  
0710: 20 20 24 76 61 6c 75 65 3a 20 6c 61 73 74 5f 6e    $value: last_n
0720: 61 6d 65 24 0a 20 20 20 20 24 76 61 6c 75 65 3a  ame$.    $value:
0730: 20 69 6d 61 67 65 5f 75 72 6c 24 0a 20 20 20 20   image_url$.    
0740: 24 76 61 6c 75 65 3a 20 69 6d 61 67 65 5f 75 72  $value: image_ur
0750: 6c 5f 6d 65 64 69 75 6d 24 0a 20 20 20 20 24 76  l_medium$.    $v
0760: 61 6c 75 65 3a 20 69 6d 61 67 65 5f 75 72 6c 5f  alue: image_url_
0770: 73 6d 61 6c 6c 24 0a 20 20 20 20 24 76 61 6c 75  small$.    $valu
0780: 65 3a 20 72 65 6d 6f 74 65 5f 70 68 6f 74 6f 5f  e: remote_photo_
0790: 70 61 74 68 24 0a 20 20 20 20 24 76 61 6c 75 65  path$.    $value
07a0: 3a 20 72 65 6d 6f 74 65 5f 70 68 6f 74 6f 5f 6e  : remote_photo_n
07b0: 61 6d 65 24 0a 20 20 20 20 24 76 61 6c 75 65 3a  ame$.    $value:
07c0: 20 73 74 61 74 75 73 5f 6d 65 73 73 61 67 65 5f   status_message_
07d0: 67 75 69 64 24 0a 20 20 20 20 24 76 61 6c 75 65  guid$.    $value
07e0: 3a 20 62 69 6f 24 0a 20 20 20 20 36 34 76 61 6c  : bio$.    64val
07f0: 75 65 3a 20 62 69 72 74 68 64 61 79 21 0a 20 20  ue: birthday!.  
0800: 20 20 24 76 61 6c 75 65 3a 20 67 65 6e 64 65 72    $value: gender
0810: 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 6c 6f  $.    $value: lo
0820: 63 61 74 69 6f 6e 24 0a 20 20 20 20 24 76 61 6c  cation$.    $val
0830: 75 65 3a 20 74 65 78 74 24 0a 20 20 20 20 76 61  ue: text$.    va
0840: 6c 75 65 3a 20 73 65 61 72 63 68 61 62 6c 65 3f  lue: searchable?
0850: 0a 20 20 20 20 76 61 6c 75 65 3a 20 70 75 62 6c  .    value: publ
0860: 69 63 3f 0a 20 20 20 20 76 61 6c 75 65 3a 20 70  ic?.    value: p
0870: 6f 73 69 74 69 76 65 3f 0a 20 20 20 20 76 61 6c  ositive?.    val
0880: 75 65 3a 20 6e 73 66 77 3f 0a 20 20 20 20 76 61  ue: nsfw?.    va
0890: 6c 75 65 3a 20 68 65 69 67 68 74 23 0a 20 20 20  lue: height#.   
08a0: 20 76 61 6c 75 65 3a 20 77 69 64 74 68 23 0a 20   value: width#. 
08b0: 20 20 20 66 69 65 6c 64 3a 20 70 68 6f 74 6f 73     field: photos
08c0: 5b 5d 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63  [].}class..objec
08d0: 74 20 63 6c 61 73 73 7b 20 63 6f 6e 74 61 63 74  t class{ contact
08e0: 5f 67 72 6f 75 70 73 0a 20 20 20 20 24 76 61 6c  _groups.    $val
08f0: 75 65 3a 20 6e 61 6d 65 24 0a 20 20 20 20 76 61  ue: name$.    va
0900: 6c 75 65 3a 20 63 68 61 74 5f 65 6e 61 62 6c 65  lue: chat_enable
0910: 64 3f 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63  d?.}class..objec
0920: 74 20 63 6c 61 73 73 7b 20 63 6f 6e 74 61 63 74  t class{ contact
0930: 73 0a 20 20 20 20 76 61 6c 75 65 3a 20 73 68 61  s.    value: sha
0940: 72 69 6e 67 3f 0a 20 20 20 20 76 61 6c 75 65 3a  ring?.    value:
0950: 20 72 65 63 65 69 76 69 6e 67 3f 0a 20 20 20 20   receiving?.    
0960: 76 61 6c 75 65 3a 20 66 6f 6c 6c 6f 77 69 6e 67  value: following
0970: 3f 0a 20 20 20 20 76 61 6c 75 65 3a 20 66 6f 6c  ?.    value: fol
0980: 6c 6f 77 65 64 3f 0a 20 20 20 20 24 76 61 6c 75  lowed?.    $valu
0990: 65 3a 20 70 65 72 73 6f 6e 5f 67 75 69 64 24 20  e: person_guid$ 
09a0: 5c 20 31 32 38 20 62 69 74 20 69 6e 20 68 65 78  \ 128 bit in hex
09b0: 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 70 65 72  .    $value: per
09c0: 73 6f 6e 5f 6e 61 6d 65 24 0a 20 20 20 20 24 76  son_name$.    $v
09d0: 61 6c 75 65 3a 20 61 63 63 6f 75 6e 74 5f 69 64  alue: account_id
09e0: 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 70 75  $.    $value: pu
09f0: 62 6c 69 63 5f 6b 65 79 24 0a 20 20 20 20 66 69  blic_key$.    fi
0a00: 65 6c 64 3a 20 63 6f 6e 74 61 63 74 5f 67 72 6f  eld: contact_gro
0a10: 75 70 73 5f 6d 65 6d 62 65 72 73 68 69 70 5b 5d  ups_membership[]
0a20: 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 20  .}class..object 
0a30: 63 6c 61 73 73 7b 20 70 6f 73 74 73 0a 20 20 20  class{ posts.   
0a40: 20 66 69 65 6c 64 3a 20 73 75 62 73 63 72 69 62   field: subscrib
0a50: 65 64 5f 70 6f 64 73 5f 75 72 69 73 5b 5d 0a 20  ed_pods_uris[]. 
0a60: 20 20 20 66 69 65 6c 64 3a 20 73 75 62 73 63 72     field: subscr
0a70: 69 62 65 64 5f 75 73 65 72 73 5f 69 64 73 5b 5d  ibed_users_ids[]
0a80: 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 65 6e 74  .    $value: ent
0a90: 69 74 79 5f 74 79 70 65 24 0a 20 20 20 20 76 61  ity_type$.    va
0aa0: 6c 75 65 3a 20 65 6e 74 69 74 79 5f 64 61 74 61  lue: entity_data
0ab0: 7b 7d 0a 7d 63 6c 61 73 73 0a 0a 7d 73 63 6f 70  {}.}class..}scop
0ac0: 65 0a 0a 3a 20 64 69 61 73 70 6f 72 61 2d 73 63  e..: diaspora-sc
0ad0: 61 6e 20 28 20 2d 2d 20 29 20 20 69 73 6f 2d 64  an ( -- )  iso-d
0ae0: 61 74 65 0a 20 20 20 20 5b 27 5d 20 64 69 61 73  ate.    ['] dias
0af0: 70 6f 72 61 20 3e 62 6f 64 79 20 74 6f 20 73 63  pora >body to sc
0b00: 68 65 6d 61 2d 73 63 6f 70 65 0a 20 20 20 20 64  hema-scope.    d
0b10: 69 61 73 70 6f 72 61 3a 74 61 6b 65 6f 75 74 2d  iaspora:takeout-
0b20: 63 6c 61 73 73 20 74 6f 20 6f 75 74 65 72 2d 63  class to outer-c
0b30: 6c 61 73 73 0a 20 20 20 20 5b 27 5d 20 64 69 61  lass.    ['] dia
0b40: 73 70 6f 72 61 3a 74 61 6b 65 6f 75 74 20 3e 62  spora:takeout >b
0b50: 6f 64 79 20 74 6f 20 73 63 68 65 6d 61 2d 77 69  ody to schema-wi
0b60: 64 0a 20 20 20 20 5b 27 5d 20 6e 6f 6f 70 20 69  d.    ['] noop i
0b70: 73 20 70 72 6f 63 65 73 73 2d 65 6c 65 6d 65 6e  s process-elemen
0b80: 74 20 3b 0a 0a 5c 5c 5c 0a 4c 6f 63 61 6c 20 56  t ;..\\\.Local V
0b90: 61 72 69 61 62 6c 65 73 3a 0a 66 6f 72 74 68 2d  ariables:.forth-
0ba0: 6c 6f 63 61 6c 2d 77 6f 72 64 73 3a 0a 20 20 20  local-words:.   
0bb0: 20 28 0a 20 20 20 20 20 28 28 22 63 6c 61 73 73   (.     (("class
0bc0: 7b 22 29 20 64 65 66 69 6e 69 74 69 6f 6e 2d 73  {") definition-s
0bd0: 74 61 72 74 65 72 20 28 66 6f 6e 74 2d 6c 6f 63  tarter (font-loc
0be0: 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 20 2e  k-keyword-face .
0bf0: 20 31 29 0a 20 20 20 20 20 20 22 5b 20 5c 74 5c   1).      "[ \t\
0c00: 6e 5d 22 20 74 20 6e 61 6d 65 20 28 66 6f 6e 74  n]" t name (font
0c10: 2d 6c 6f 63 6b 2d 66 75 6e 63 74 69 6f 6e 2d 6e  -lock-function-n
0c20: 61 6d 65 2d 66 61 63 65 20 2e 20 33 29 29 0a 20  ame-face . 3)). 
0c30: 20 20 20 20 28 28 22 7d 63 6c 61 73 73 22 29 20      (("}class") 
0c40: 64 65 66 69 6e 69 74 69 6f 6e 2d 65 6e 64 65 72  definition-ender
0c50: 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77   (font-lock-keyw
0c60: 6f 72 64 2d 66 61 63 65 20 2e 20 31 29 29 0a 20  ord-face . 1)). 
0c70: 20 20 20 29 0a 66 6f 72 74 68 2d 6c 6f 63 61 6c     ).forth-local
0c80: 2d 69 6e 64 65 6e 74 2d 77 6f 72 64 73 3a 0a 20  -indent-words:. 
0c90: 20 20 20 28 0a 20 20 20 20 20 28 28 22 63 6c 61     (.     (("cla
0ca0: 73 73 7b 22 29 20 28 30 20 2e 20 32 29 20 28 30  ss{") (0 . 2) (0
0cb0: 20 2e 20 32 29 29 0a 20 20 20 20 20 28 28 22 7d   . 2)).     (("}
0cc0: 63 6c 61 73 73 22 29 20 28 2d 32 20 2e 20 30 29  class") (-2 . 0)
0cd0: 20 28 30 20 2e 20 2d 32 29 29 0a 20 20 20 20 29   (0 . -2)).    )
0ce0: 0a 45 6e 64 3a 0a 5b 54 48 45 4e 5d 0a           .End:.[THEN].