Artifact
2106a3c87cb8fd17362ff70cc815d3886f6d2427 :
File
json/fb-schema.fs
— part of check-in
[531f5bc61f]
at
2019-01-16 17:45:30
on branch trunk
— Replace 0 [IF] for emacs editings with \\\
(user:
bernd
size: 2530)
0000: 5c 20 46 61 63 65 62 6f 6f 6b 20 73 63 68 65 6d \ Facebook schem
0010: 61 0a 0a 5c 20 43 6f 70 79 72 69 67 68 74 20 28 a..\ 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 63 73 2d 73 63 6f 70 65 3a 20 s/>...cs-scope:
02d0: 66 62 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 fb..object class
02e0: 7b 20 74 69 6d 65 6c 69 6e 65 0a 20 20 20 20 66 { timeline. f
02f0: 69 65 6c 64 3a 20 73 74 61 74 75 73 5f 75 70 64 ield: status_upd
0300: 61 74 65 73 5b 5d 0a 20 20 20 20 73 79 6e 6f 6e ates[]. synon
0310: 79 6d 20 77 61 6c 6c 5f 70 6f 73 74 73 5f 73 65 ym wall_posts_se
0320: 6e 74 5f 74 6f 5f 79 6f 75 5b 5d 20 73 74 61 74 nt_to_you[] stat
0330: 75 73 5f 75 70 64 61 74 65 73 5b 5d 0a 7d 63 6c us_updates[].}cl
0340: 61 73 73 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 ass..object clas
0350: 73 7b 20 73 74 61 74 75 73 5f 75 70 64 61 74 65 s{ status_update
0360: 73 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 74 69 s. $value: ti
0370: 74 6c 65 24 0a 20 20 20 20 36 34 76 61 6c 75 65 tle$. 64value
0380: 3a 20 74 69 6d 65 73 74 61 6d 70 21 0a 20 20 20 : timestamp!.
0390: 20 66 69 65 6c 64 3a 20 61 74 74 61 63 68 6d 65 field: attachme
03a0: 6e 74 73 5b 5d 0a 20 20 20 20 66 69 65 6c 64 3a nts[]. field:
03b0: 20 64 61 74 61 5b 5d 0a 7d 63 6c 61 73 73 0a 0a data[].}class..
03c0: 73 79 6e 6f 6e 79 6d 20 77 61 6c 6c 5f 70 6f 73 synonym wall_pos
03d0: 74 73 5f 73 65 6e 74 5f 74 6f 5f 79 6f 75 20 73 ts_sent_to_you s
03e0: 74 61 74 75 73 5f 75 70 64 61 74 65 73 0a 73 79 tatus_updates.sy
03f0: 6e 6f 6e 79 6d 20 77 61 6c 6c 5f 70 6f 73 74 73 nonym wall_posts
0400: 5f 73 65 6e 74 5f 74 6f 5f 79 6f 75 2d 63 6c 61 _sent_to_you-cla
0410: 73 73 20 73 74 61 74 75 73 5f 75 70 64 61 74 65 ss status_update
0420: 73 2d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 20 s-class..object
0430: 63 6c 61 73 73 7b 20 61 74 74 61 63 68 6d 65 6e class{ attachmen
0440: 74 73 0a 20 20 20 20 66 69 65 6c 64 3a 20 64 61 ts. field: da
0450: 74 61 5b 5d 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a ta[].}class..obj
0460: 65 63 74 20 63 6c 61 73 73 7b 20 64 61 74 61 0a ect class{ data.
0470: 20 20 20 20 24 76 61 6c 75 65 3a 20 70 6f 73 74 $value: post
0480: 24 0a 20 20 20 20 36 34 76 61 6c 75 65 3a 20 75 $. 64value: u
0490: 70 64 61 74 65 5f 74 69 6d 65 73 74 61 6d 70 21 pdate_timestamp!
04a0: 0a 20 20 20 20 76 61 6c 75 65 3a 20 65 78 74 65 . value: exte
04b0: 72 6e 61 6c 5f 63 6f 6e 74 65 78 74 7b 7d 0a 20 rnal_context{}.
04c0: 20 20 20 76 61 6c 75 65 3a 20 6d 65 64 69 61 7b value: media{
04d0: 7d 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 }.}class..object
04e0: 20 63 6c 61 73 73 7b 20 65 78 74 65 72 6e 61 6c class{ external
04f0: 5f 63 6f 6e 74 65 78 74 0a 20 20 20 20 24 76 61 _context. $va
0500: 6c 75 65 3a 20 75 72 6c 24 0a 7d 63 6c 61 73 73 lue: url$.}class
0510: 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 ..object class{
0520: 6d 65 64 69 61 0a 20 20 20 20 24 76 61 6c 75 65 media. $value
0530: 3a 20 75 72 69 24 0a 20 20 20 20 24 76 61 6c 75 : uri$. $valu
0540: 65 3a 20 64 65 73 63 72 69 70 74 69 6f 6e 24 0a e: description$.
0550: 20 20 20 20 36 34 76 61 6c 75 65 3a 20 63 72 65 64value: cre
0560: 61 74 69 6f 6e 5f 74 69 6d 65 73 74 61 6d 70 21 ation_timestamp!
0570: 0a 20 20 20 20 76 61 6c 75 65 3a 20 6d 65 64 69 . value: medi
0580: 61 5f 6d 65 74 61 64 61 74 61 7b 7d 0a 20 20 20 a_metadata{}.
0590: 20 76 61 6c 75 65 3a 20 74 68 75 6d 62 6e 61 69 value: thumbnai
05a0: 6c 7b 7d 0a 20 20 20 20 66 69 65 6c 64 3a 20 63 l{}. field: c
05b0: 6f 6d 6d 65 6e 74 73 5b 5d 0a 7d 63 6c 61 73 73 omments[].}class
05c0: 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 ..object class{
05d0: 6d 65 64 69 61 5f 6d 65 74 61 64 61 74 61 0a 20 media_metadata.
05e0: 20 20 20 76 61 6c 75 65 3a 20 70 68 6f 74 6f 5f value: photo_
05f0: 6d 65 74 61 64 61 74 61 7b 7d 0a 20 20 20 20 76 metadata{}. v
0600: 61 6c 75 65 3a 20 76 69 64 65 6f 5f 6d 65 74 61 alue: video_meta
0610: 64 61 74 61 7b 7d 0a 7d 63 6c 61 73 73 0a 0a 6f data{}.}class..o
0620: 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 74 68 75 bject class{ thu
0630: 6d 62 6e 61 69 6c 0a 20 20 20 20 24 76 61 6c 75 mbnail. $valu
0640: 65 3a 20 75 72 69 24 0a 7d 63 6c 61 73 73 0a 0a e: uri$.}class..
0650: 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 63 6f object class{ co
0660: 6d 6d 65 6e 74 73 0a 20 20 20 20 36 34 76 61 6c mments. 64val
0670: 75 65 3a 20 74 69 6d 65 73 74 61 6d 70 21 0a 20 ue: timestamp!.
0680: 20 20 20 24 76 61 6c 75 65 3a 20 63 6f 6d 6d 65 $value: comme
0690: 6e 74 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 nt$. $value:
06a0: 61 75 74 68 6f 72 24 0a 20 20 20 20 24 76 61 6c author$. $val
06b0: 75 65 3a 20 67 72 6f 75 70 24 0a 7d 63 6c 61 73 ue: group$.}clas
06c0: 73 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b s..object class{
06d0: 20 70 68 6f 74 6f 5f 6d 65 74 61 64 61 74 61 0a photo_metadata.
06e0: 20 20 20 20 76 61 6c 75 65 3a 20 69 73 6f 5f 73 value: iso_s
06f0: 70 65 65 64 23 0a 20 20 20 20 76 61 6c 75 65 3a peed#. value:
0700: 20 6f 72 69 65 6e 74 61 74 69 6f 6e 23 0a 20 20 orientation#.
0710: 20 20 76 61 6c 75 65 3a 20 6f 72 69 67 69 6e 61 value: origina
0720: 6c 5f 77 69 64 74 68 23 0a 20 20 20 20 76 61 6c l_width#. val
0730: 75 65 3a 20 6f 72 69 67 69 6e 61 6c 5f 68 65 69 ue: original_hei
0740: 67 68 74 23 0a 20 20 20 20 24 76 61 6c 75 65 3a ght#. $value:
0750: 20 75 70 6c 6f 61 64 5f 69 70 24 0a 7d 63 6c 61 upload_ip$.}cla
0760: 73 73 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 ss..object class
0770: 7b 20 76 69 64 65 6f 5f 6d 65 74 61 64 61 74 61 { video_metadata
0780: 0a 20 20 20 20 76 61 6c 75 65 3a 20 75 70 6c 6f . value: uplo
0790: 61 64 5f 74 69 6d 65 73 74 61 6d 70 23 0a 20 20 ad_timestamp#.
07a0: 20 20 24 76 61 6c 75 65 3a 20 75 70 6c 6f 61 64 $value: upload
07b0: 5f 69 70 24 0a 7d 63 6c 61 73 73 0a 0a 7d 73 63 _ip$.}class..}sc
07c0: 6f 70 65 0a 0a 3a 20 66 62 2d 73 63 61 6e 20 28 ope..: fb-scan (
07d0: 20 2d 2d 20 29 0a 20 20 20 20 66 69 78 65 64 2d -- ). fixed-
07e0: 77 69 64 74 68 20 73 65 74 2d 65 6e 63 6f 64 69 width set-encodi
07f0: 6e 67 20 5c 20 55 54 46 2d 38 20 66 75 63 6b 75 ng \ UTF-8 fucku
0800: 70 20 66 6f 72 20 5c 75 0a 20 20 20 20 5b 27 5d p for \u. [']
0810: 20 66 62 20 3e 62 6f 64 79 20 74 6f 20 73 63 68 fb >body to sch
0820: 65 6d 61 2d 73 63 6f 70 65 0a 20 20 20 20 66 62 ema-scope. fb
0830: 3a 74 69 6d 65 6c 69 6e 65 2d 63 6c 61 73 73 20 :timeline-class
0840: 74 6f 20 6f 75 74 65 72 2d 63 6c 61 73 73 0a 20 to outer-class.
0850: 20 20 20 5b 27 5d 20 66 62 3a 74 69 6d 65 6c 69 ['] fb:timeli
0860: 6e 65 20 3e 62 6f 64 79 20 74 6f 20 73 63 68 65 ne >body to sche
0870: 6d 61 2d 77 69 64 20 3b 0a 0a 5c 5c 5c 0a 4c 6f ma-wid ;..\\\.Lo
0880: 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 66 cal Variables:.f
0890: 6f 72 74 68 2d 6c 6f 63 61 6c 2d 77 6f 72 64 73 orth-local-words
08a0: 3a 0a 20 20 20 20 28 0a 20 20 20 20 20 28 28 22 :. (. (("
08b0: 63 6c 61 73 73 7b 22 29 20 64 65 66 69 6e 69 74 class{") definit
08c0: 69 6f 6e 2d 73 74 61 72 74 65 72 20 28 66 6f 6e ion-starter (fon
08d0: 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 t-lock-keyword-f
08e0: 61 63 65 20 2e 20 31 29 0a 20 20 20 20 20 20 22 ace . 1). "
08f0: 5b 20 5c 74 5c 6e 5d 22 20 74 20 6e 61 6d 65 20 [ \t\n]" t name
0900: 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 6e 63 74 (font-lock-funct
0910: 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 20 2e 20 ion-name-face .
0920: 33 29 29 0a 20 20 20 20 20 28 28 22 7d 63 6c 61 3)). (("}cla
0930: 73 73 22 29 20 64 65 66 69 6e 69 74 69 6f 6e 2d ss") definition-
0940: 65 6e 64 65 72 20 28 66 6f 6e 74 2d 6c 6f 63 6b ender (font-lock
0950: 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 20 2e 20 -keyword-face .
0960: 31 29 29 0a 20 20 20 20 29 0a 66 6f 72 74 68 2d 1)). ).forth-
0970: 6c 6f 63 61 6c 2d 69 6e 64 65 6e 74 2d 77 6f 72 local-indent-wor
0980: 64 73 3a 0a 20 20 20 20 28 0a 20 20 20 20 20 28 ds:. (. (
0990: 28 22 63 6c 61 73 73 7b 22 29 20 28 30 20 2e 20 ("class{") (0 .
09a0: 32 29 20 28 30 20 2e 20 32 29 29 0a 20 20 20 20 2) (0 . 2)).
09b0: 20 28 28 22 7d 63 6c 61 73 73 22 29 20 28 2d 32 (("}class") (-2
09c0: 20 2e 20 30 29 20 28 30 20 2e 20 2d 32 29 29 0a . 0) (0 . -2)).
09d0: 20 20 20 20 29 0a 45 6e 64 3a 0a 5b 54 48 45 4e ).End:.[THEN
09e0: 5d 0a ].