Artifact
4484cc6fc9a2e8a1c0027b02c49cc1ba66480f28 :
File
json/twitter-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: 5192)
0000: 5c 20 6e 65 74 32 6f 20 74 65 6d 70 6c 61 74 65 \ net2o template
0010: 20 66 6f 72 20 6e 65 77 20 66 69 6c 65 73 0a 0a for new files..
0020: 5c 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 \ Copyright (C)
0030: 32 30 31 36 20 20 20 42 65 72 6e 64 20 50 61 79 2016 Bernd Pay
0040: 73 61 6e 0a 0a 5c 20 54 68 69 73 20 70 72 6f 67 san..\ This prog
0050: 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 ram is free soft
0060: 77 61 72 65 3a 20 79 6f 75 20 63 61 6e 20 72 65 ware: you can re
0070: 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e distribute it an
0080: 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 5c 20 69 74 d/or modify.\ it
0090: 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 under the terms
00a0: 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 of the GNU Affe
00b0: 72 6f 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 ro General Publi
00c0: 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 c License as pub
00d0: 6c 69 73 68 65 64 20 62 79 0a 5c 20 74 68 65 20 lished by.\ the
00e0: 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f Free Software Fo
00f0: 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 undation, either
0100: 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 version 3 of th
0110: 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 5c 20 e License, or.\
0120: 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 (at your option)
0130: 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 any later versi
0140: 6f 6e 2e 0a 0a 5c 20 54 68 69 73 20 70 72 6f 67 on...\ This prog
0150: 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 ram is distribut
0160: 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 ed in the hope t
0170: 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 hat it will be u
0180: 73 65 66 75 6c 2c 0a 5c 20 62 75 74 20 57 49 54 seful,.\ but WIT
0190: 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 HOUT ANY WARRANT
01a0: 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 Y; without even
01b0: 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 the implied warr
01c0: 61 6e 74 79 20 6f 66 0a 5c 20 4d 45 52 43 48 41 anty of.\ MERCHA
01d0: 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 NTABILITY or FIT
01e0: 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 NESS FOR A PARTI
01f0: 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 CULAR PURPOSE.
0200: 53 65 65 20 74 68 65 0a 5c 20 47 4e 55 20 41 66 See the.\ GNU Af
0210: 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 75 62 fero General Pub
0220: 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 lic License for
0230: 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 5c more details...\
0240: 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 You should have
0250: 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 received a copy
0260: 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 of the GNU Affe
0270: 72 6f 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 ro General Publi
0280: 63 20 4c 69 63 65 6e 73 65 0a 5c 20 61 6c 6f 6e c License.\ alon
0290: 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 g with this prog
02a0: 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 ram. If not, se
02b0: 65 20 3c 68 74 74 70 3a 2f 2f 77 77 77 2e 67 6e e <http://www.gn
02c0: 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e u.org/licenses/>
02d0: 2e 0a 0a 61 6c 73 6f 20 72 65 67 65 78 70 73 0a ...also regexps.
02e0: 5c 20 65 78 61 6d 70 6c 65 20 6f 66 20 54 77 69 \ example of Twi
02f0: 74 74 65 72 20 64 61 74 65 3a 20 22 4d 6f 6e 20 tter date: "Mon
0300: 4f 63 74 20 30 38 20 32 32 3a 32 37 3a 33 35 20 Oct 08 22:27:35
0310: 2b 30 30 30 30 20 32 30 31 38 22 0a 0a 73 63 6f +0000 2018"..sco
0320: 70 65 3a 20 77 65 65 6b 64 61 79 73 0a 30 20 37 pe: weekdays.0 7
0330: 20 65 6e 75 6d 73 20 53 75 6e 20 4d 6f 6e 20 54 enums Sun Mon T
0340: 75 65 20 57 65 64 20 54 68 75 20 46 72 69 20 53 ue Wed Thu Fri S
0350: 61 74 0a 7d 73 63 6f 70 65 0a 73 63 6f 70 65 3a at.}scope.scope:
0360: 20 6d 6f 6e 74 68 73 0a 31 20 31 32 20 65 6e 75 months.1 12 enu
0370: 6d 73 20 4a 61 6e 20 46 65 62 20 4d 61 72 20 41 ms Jan Feb Mar A
0380: 70 72 20 4d 61 79 20 4a 75 6e 20 4a 75 6c 20 41 pr May Jun Jul A
0390: 75 67 20 53 65 70 20 4f 63 74 20 4e 6f 76 20 44 ug Sep Oct Nov D
03a0: 65 63 0a 7d 73 63 6f 70 65 0a 0a 3a 20 74 77 69 ec.}scope..: twi
03b0: 74 74 65 72 2d 3f 64 61 74 65 20 28 20 61 64 64 tter-?date ( add
03c0: 72 20 75 20 2d 2d 20 66 6c 61 67 20 29 0a 20 20 r u -- flag ).
03d0: 20 20 28 28 20 5c 28 20 6c 65 74 74 65 72 20 63 (( \( letter c
03e0: 3f 20 6c 65 74 74 65 72 20 63 3f 20 6c 65 74 74 ? letter c? lett
03f0: 65 72 20 63 3f 20 5c 29 20 5c 73 20 20 20 20 20 er c? \) \s
0400: 20 20 20 20 5c 20 5c 31 3d 77 65 65 6b 64 61 79 \ \1=weekday
0410: 0a 20 20 20 20 20 20 20 5c 31 20 5b 27 5d 20 77 . \1 ['] w
0420: 65 65 6b 64 61 79 73 20 3e 62 6f 64 79 20 66 69 eekdays >body fi
0430: 6e 64 2d 6e 61 6d 65 2d 69 6e 20 30 3d 20 3f 4c nd-name-in 0= ?L
0440: 45 41 56 45 20 20 20 5c 20 79 65 61 68 2c 20 77 EAVE \ yeah, w
0450: 65 20 63 61 6e 20 64 6f 20 74 68 61 74 21 0a 20 e can do that!.
0460: 20 20 20 20 20 20 5c 28 20 6c 65 74 74 65 72 20 \( letter
0470: 63 3f 20 6c 65 74 74 65 72 20 63 3f 20 6c 65 74 c? letter c? let
0480: 74 65 72 20 63 3f 20 5c 29 20 5c 73 20 20 20 20 ter c? \) \s
0490: 20 20 20 20 20 5c 20 5c 32 3d 6d 6f 6e 74 68 0a \ \2=month.
04a0: 20 20 20 20 20 20 20 5c 32 20 5b 27 5d 20 6d 6f \2 ['] mo
04b0: 6e 74 68 73 20 3e 62 6f 64 79 20 66 69 6e 64 2d nths >body find-
04c0: 6e 61 6d 65 2d 69 6e 20 30 3d 20 3f 4c 45 41 56 name-in 0= ?LEAV
04d0: 45 20 20 20 20 20 5c 20 79 65 61 68 2c 20 77 65 E \ yeah, we
04e0: 20 63 61 6e 20 64 6f 20 74 68 61 74 21 0a 20 20 can do that!.
04f0: 20 20 20 20 20 5c 28 20 5c 64 20 5c 64 20 5c 29 \( \d \d \)
0500: 20 5c 73 20 20 20 20 20 20 20 20 20 20 20 20 20 \s
0510: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0520: 20 20 20 20 5c 20 5c 33 3d 64 61 79 0a 20 20 20 \ \3=day.
0530: 20 20 20 20 5c 28 20 5c 64 20 5c 64 20 5c 29 20 \( \d \d \)
0540: 60 20 3a 20 5c 28 20 5c 64 20 5c 64 20 5c 29 20 ` : \( \d \d \)
0550: 60 20 3a 20 5c 28 20 5c 64 20 5c 64 20 5c 29 20 ` : \( \d \d \)
0560: 5c 73 20 5c 20 5c 34 3a 5c 35 3a 5c 36 3d 74 69 \s \ \4:\5:\6=ti
0570: 6d 65 0a 20 20 20 20 20 20 20 7b 7b 20 60 20 2b me. {{ ` +
0580: 20 5c 28 20 7c 7c 20 5c 28 20 60 20 2d 20 7d 7d \( || \( ` - }}
0590: 20 5c 64 20 5c 64 20 60 3f 20 3a 20 5c 64 20 5c \d \d `? : \d \
05a0: 64 20 5c 29 20 5c 73 20 20 5c 20 5c 37 3d 74 69 d \) \s \ \7=ti
05b0: 6d 65 7a 6f 6e 65 0a 20 20 20 20 20 20 20 5c 28 mezone. \(
05c0: 20 5c 64 20 5c 64 20 5c 64 20 5c 64 20 5c 29 20 \d \d \d \d \)
05d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
05e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 20 5c \ \
05f0: 38 3d 79 65 61 72 0a 20 20 20 20 29 29 20 3b 0a 8=year. )) ;.
0600: 3a 20 74 77 69 74 74 65 72 2d 64 61 74 65 3e 74 : twitter-date>t
0610: 69 63 6b 73 20 28 20 2d 2d 20 74 69 63 6b 73 20 icks ( -- ticks
0620: 29 0a 20 20 20 20 5c 38 20 73 3e 6e 75 6d 62 65 ). \8 s>numbe
0630: 72 20 64 72 6f 70 20 5c 32 20 5b 27 5d 20 6d 6f r drop \2 ['] mo
0640: 6e 74 68 73 20 3e 62 6f 64 79 20 66 69 6e 64 2d nths >body find-
0650: 6e 61 6d 65 2d 69 6e 20 6e 61 6d 65 3e 69 6e 74 name-in name>int
0660: 20 65 78 65 63 75 74 65 0a 20 20 20 20 5c 33 20 execute. \3
0670: 73 3e 6e 75 6d 62 65 72 20 64 72 6f 70 20 79 6d s>number drop ym
0680: 64 32 64 61 79 20 75 6e 69 78 2d 64 61 79 30 20 d2day unix-day0
0690: 2d 0a 20 20 20 20 23 32 34 20 2a 0a 20 20 20 20 -. #24 *.
06a0: 5c 34 20 73 3e 6e 75 6d 62 65 72 20 64 72 6f 70 \4 s>number drop
06b0: 20 2b 20 23 36 30 20 2a 20 5c 35 20 73 3e 6e 75 + #60 * \5 s>nu
06c0: 6d 62 65 72 20 64 72 6f 70 20 2b 0a 20 20 20 20 mber drop +.
06d0: 5c 37 20 32 20 75 6d 69 6e 20 73 3e 6e 75 6d 62 \7 2 umin s>numb
06e0: 65 72 20 64 72 6f 70 20 20 20 23 36 30 20 2a 0a er drop #60 *.
06f0: 20 20 20 20 5c 37 20 64 75 70 20 32 20 2d 20 2f \7 dup 2 - /
0700: 73 74 72 69 6e 67 20 73 3e 75 6e 75 6d 62 65 72 string s>unumber
0710: 3f 20 32 64 72 6f 70 20 6f 76 65 72 20 30 3c 20 ? 2drop over 0<
0720: 49 46 20 2d 20 45 4c 53 45 20 2b 20 54 48 45 4e IF - ELSE + THEN
0730: 20 2d 0a 20 20 20 20 23 36 30 20 2a 20 5c 36 20 -. #60 * \6
0740: 73 3e 6e 75 6d 62 65 72 20 64 72 6f 70 20 2b 0a s>number drop +.
0750: 20 20 20 20 23 31 30 30 30 30 30 30 30 30 30 20 #1000000000
0760: 75 6d 2a 20 64 3e 36 34 20 3b 0a 70 72 65 76 69 um* d>64 ;.previ
0770: 6f 75 73 0a 0a 3a 20 74 77 69 74 74 65 72 2d 64 ous..: twitter-d
0780: 61 74 65 20 28 20 2d 2d 20 29 0a 20 20 20 20 5b ate ( -- ). [
0790: 27 5d 20 74 77 69 74 74 65 72 2d 3f 64 61 74 65 '] twitter-?date
07a0: 20 69 73 20 3f 64 61 74 65 0a 20 20 20 20 5b 27 is ?date. ['
07b0: 5d 20 74 77 69 74 74 65 72 2d 64 61 74 65 3e 74 ] twitter-date>t
07c0: 69 63 6b 73 20 69 73 20 64 61 74 65 3e 74 69 63 icks is date>tic
07d0: 6b 73 20 3b 0a 0a 63 73 2d 73 63 6f 70 65 3a 20 ks ;..cs-scope:
07e0: 74 77 69 74 74 65 72 0a 0a 6f 62 6a 65 63 74 20 twitter..object
07f0: 63 6c 61 73 73 7b 20 74 77 65 65 74 73 0a 20 20 class{ tweets.
0800: 20 20 66 69 65 6c 64 3a 20 74 77 65 65 74 5b 5d field: tweet[]
0810: 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 20 .}class..object
0820: 63 6c 61 73 73 7b 20 74 77 65 65 74 0a 20 20 20 class{ tweet.
0830: 20 76 61 6c 75 65 3a 20 72 65 74 77 65 65 74 65 value: retweete
0840: 64 3f 0a 20 20 20 20 76 61 6c 75 65 3a 20 74 72 d?. value: tr
0850: 75 6e 63 61 74 65 64 3f 0a 20 20 20 20 76 61 6c uncated?. val
0860: 75 65 3a 20 66 61 76 6f 72 69 74 65 64 3f 0a 20 ue: favorited?.
0870: 20 20 20 76 61 6c 75 65 3a 20 70 6f 73 73 69 62 value: possib
0880: 6c 79 5f 73 65 6e 73 69 74 69 76 65 3f 0a 20 20 ly_sensitive?.
0890: 20 20 24 76 61 6c 75 65 3a 20 73 6f 75 72 63 65 $value: source
08a0: 24 0a 20 20 20 20 76 61 6c 75 65 3a 20 65 6e 74 $. value: ent
08b0: 69 74 69 65 73 7b 7d 0a 20 20 20 20 76 61 6c 75 ities{}. valu
08c0: 65 3a 20 65 78 74 65 6e 64 65 64 5f 65 6e 74 69 e: extended_enti
08d0: 74 69 65 73 7b 7d 0a 20 20 20 20 66 69 65 6c 64 ties{}. field
08e0: 3a 20 64 69 73 70 6c 61 79 5f 74 65 78 74 5f 72 : display_text_r
08f0: 61 6e 67 65 5b 5d 23 0a 20 20 20 20 76 61 6c 75 ange[]#. valu
0900: 65 3a 20 66 61 76 6f 72 69 74 65 5f 63 6f 75 6e e: favorite_coun
0910: 74 23 0a 20 20 20 20 76 61 6c 75 65 3a 20 72 65 t#. value: re
0920: 74 77 65 65 74 5f 63 6f 75 6e 74 23 0a 20 20 20 tweet_count#.
0930: 20 32 76 61 6c 75 65 3a 20 69 6e 5f 72 65 70 6c 2value: in_repl
0940: 79 5f 74 6f 5f 73 74 61 74 75 73 5f 69 64 26 0a y_to_status_id&.
0950: 20 20 20 20 73 79 6e 6f 6e 79 6d 20 69 6e 5f 72 synonym in_r
0960: 65 70 6c 79 5f 74 6f 5f 73 74 61 74 75 73 5f 69 eply_to_status_i
0970: 64 5f 73 74 72 26 20 69 6e 5f 72 65 70 6c 79 5f d_str& in_reply_
0980: 74 6f 5f 73 74 61 74 75 73 5f 69 64 26 0a 20 20 to_status_id&.
0990: 20 20 32 76 61 6c 75 65 3a 20 69 64 26 0a 20 20 2value: id&.
09a0: 20 20 73 79 6e 6f 6e 79 6d 20 69 64 5f 73 74 72 synonym id_str
09b0: 26 20 69 64 26 0a 20 20 20 20 32 76 61 6c 75 65 & id&. 2value
09c0: 3a 20 69 6e 5f 72 65 70 6c 79 5f 74 6f 5f 75 73 : in_reply_to_us
09d0: 65 72 5f 69 64 26 0a 20 20 20 20 73 79 6e 6f 6e er_id&. synon
09e0: 79 6d 20 69 6e 5f 72 65 70 6c 79 5f 74 6f 5f 75 ym in_reply_to_u
09f0: 73 65 72 5f 69 64 5f 73 74 72 26 20 69 6e 5f 72 ser_id_str& in_r
0a00: 65 70 6c 79 5f 74 6f 5f 75 73 65 72 5f 69 64 26 eply_to_user_id&
0a10: 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 69 6e 5f . $value: in_
0a20: 72 65 70 6c 79 5f 74 6f 5f 73 63 72 65 65 6e 5f reply_to_screen_
0a30: 6e 61 6d 65 24 0a 20 20 20 20 36 34 76 61 6c 75 name$. 64valu
0a40: 65 3a 20 63 72 65 61 74 65 64 5f 61 74 21 0a 20 e: created_at!.
0a50: 20 20 20 24 76 61 6c 75 65 3a 20 66 75 6c 6c 5f $value: full_
0a60: 74 65 78 74 24 0a 20 20 20 20 24 76 61 6c 75 65 text$. $value
0a70: 3a 20 6c 61 6e 67 24 0a 7d 63 6c 61 73 73 0a 0a : lang$.}class..
0a80: 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 65 6e object class{ en
0a90: 74 69 74 69 65 73 0a 20 20 20 20 66 69 65 6c 64 tities. field
0aa0: 3a 20 68 61 73 68 74 61 67 73 5b 5d 0a 20 20 20 : hashtags[].
0ab0: 20 66 69 65 6c 64 3a 20 6d 65 64 69 61 5b 5d 0a field: media[].
0ac0: 20 20 20 20 66 69 65 6c 64 3a 20 73 79 6d 62 6f field: symbo
0ad0: 6c 73 5b 5d 0a 20 20 20 20 66 69 65 6c 64 3a 20 ls[]. field:
0ae0: 70 6f 6c 6c 73 5b 5d 0a 20 20 20 20 66 69 65 6c polls[]. fiel
0af0: 64 3a 20 75 73 65 72 5f 6d 65 6e 74 69 6f 6e 73 d: user_mentions
0b00: 5b 5d 0a 20 20 20 20 66 69 65 6c 64 3a 20 75 72 []. field: ur
0b10: 6c 73 5b 5d 0a 7d 63 6c 61 73 73 0a 0a 73 79 6e ls[].}class..syn
0b20: 6f 6e 79 6d 20 65 78 74 65 6e 64 65 64 5f 65 6e onym extended_en
0b30: 74 69 74 69 65 73 20 65 6e 74 69 74 69 65 73 0a tities entities.
0b40: 73 79 6e 6f 6e 79 6d 20 65 78 74 65 6e 64 65 64 synonym extended
0b50: 5f 65 6e 74 69 74 69 65 73 2d 63 6c 61 73 73 20 _entities-class
0b60: 65 6e 74 69 74 69 65 73 2d 63 6c 61 73 73 0a 0a entities-class..
0b70: 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 75 73 object class{ us
0b80: 65 72 5f 6d 65 6e 74 69 6f 6e 73 0a 20 20 20 20 er_mentions.
0b90: 24 76 61 6c 75 65 3a 20 6e 61 6d 65 24 0a 20 20 $value: name$.
0ba0: 20 20 24 76 61 6c 75 65 3a 20 73 63 72 65 65 6e $value: screen
0bb0: 5f 6e 61 6d 65 24 0a 20 20 20 20 66 69 65 6c 64 _name$. field
0bc0: 3a 20 69 6e 64 69 63 65 73 5b 5d 23 0a 20 20 20 : indices[]#.
0bd0: 20 32 76 61 6c 75 65 3a 20 69 64 26 0a 20 20 20 2value: id&.
0be0: 20 73 79 6e 6f 6e 79 6d 20 69 64 5f 73 74 72 26 synonym id_str&
0bf0: 20 69 64 26 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a id&.}class..obj
0c00: 65 63 74 20 63 6c 61 73 73 7b 20 75 72 6c 73 0a ect class{ urls.
0c10: 20 20 20 20 24 76 61 6c 75 65 3a 20 75 72 6c 24 $value: url$
0c20: 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 65 78 70 . $value: exp
0c30: 61 6e 64 65 64 5f 75 72 6c 24 0a 20 20 20 20 24 anded_url$. $
0c40: 76 61 6c 75 65 3a 20 64 69 73 70 6c 61 79 5f 75 value: display_u
0c50: 72 6c 24 0a 20 20 20 20 66 69 65 6c 64 3a 20 69 rl$. field: i
0c60: 6e 64 69 63 65 73 5b 5d 23 0a 7d 63 6c 61 73 73 ndices[]#.}class
0c70: 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 ..object class{
0c80: 68 61 73 68 74 61 67 73 0a 20 20 20 20 24 76 61 hashtags. $va
0c90: 6c 75 65 3a 20 74 65 78 74 24 0a 20 20 20 20 66 lue: text$. f
0ca0: 69 65 6c 64 3a 20 69 6e 64 69 63 65 73 5b 5d 23 ield: indices[]#
0cb0: 0a 7d 63 6c 61 73 73 0a 0a 73 79 6e 6f 6e 79 6d .}class..synonym
0cc0: 20 73 79 6d 62 6f 6c 73 20 68 61 73 68 74 61 67 symbols hashtag
0cd0: 73 0a 73 79 6e 6f 6e 79 6d 20 73 79 6d 62 6f 6c s.synonym symbol
0ce0: 73 2d 63 6c 61 73 73 20 68 61 73 68 74 61 67 73 s-class hashtags
0cf0: 2d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 20 63 -class..object c
0d00: 6c 61 73 73 7b 20 6d 65 64 69 61 0a 20 20 20 20 lass{ media.
0d10: 24 76 61 6c 75 65 3a 20 65 78 70 61 6e 64 65 64 $value: expanded
0d20: 5f 75 72 6c 24 0a 20 20 20 20 66 69 65 6c 64 3a _url$. field:
0d30: 20 69 6e 64 69 63 65 73 5b 5d 23 0a 20 20 20 20 indices[]#.
0d40: 24 76 61 6c 75 65 3a 20 75 72 6c 24 0a 20 20 20 $value: url$.
0d50: 20 24 76 61 6c 75 65 3a 20 6d 65 64 69 61 5f 75 $value: media_u
0d60: 72 6c 24 0a 20 20 20 20 24 76 61 6c 75 65 3a 20 rl$. $value:
0d70: 6d 65 64 69 61 5f 75 72 6c 5f 68 74 74 70 73 24 media_url_https$
0d80: 0a 20 20 20 20 32 76 61 6c 75 65 3a 20 69 64 26 . 2value: id&
0d90: 0a 20 20 20 20 73 79 6e 6f 6e 79 6d 20 69 64 5f . synonym id_
0da0: 73 74 72 26 20 69 64 26 0a 20 20 20 20 32 76 61 str& id&. 2va
0db0: 6c 75 65 3a 20 73 6f 75 72 63 65 5f 73 74 61 74 lue: source_stat
0dc0: 75 73 5f 69 64 26 0a 20 20 20 20 73 79 6e 6f 6e us_id&. synon
0dd0: 79 6d 20 73 6f 75 72 63 65 5f 73 74 61 74 75 73 ym source_status
0de0: 5f 69 64 5f 73 74 72 26 20 73 6f 75 72 63 65 5f _id_str& source_
0df0: 73 74 61 74 75 73 5f 69 64 26 0a 20 20 20 20 32 status_id&. 2
0e00: 76 61 6c 75 65 3a 20 73 6f 75 72 63 65 5f 75 73 value: source_us
0e10: 65 72 5f 69 64 26 0a 20 20 20 20 73 79 6e 6f 6e er_id&. synon
0e20: 79 6d 20 73 6f 75 72 63 65 5f 75 73 65 72 5f 69 ym source_user_i
0e30: 64 5f 73 74 72 26 20 73 6f 75 72 63 65 5f 75 73 d_str& source_us
0e40: 65 72 5f 69 64 26 0a 20 20 20 20 24 76 61 6c 75 er_id&. $valu
0e50: 65 3a 20 74 79 70 65 24 0a 20 20 20 20 24 76 61 e: type$. $va
0e60: 6c 75 65 3a 20 64 69 73 70 6c 61 79 5f 75 72 6c lue: display_url
0e70: 24 0a 20 20 20 20 76 61 6c 75 65 3a 20 73 69 7a $. value: siz
0e80: 65 73 7b 7d 0a 20 20 20 20 76 61 6c 75 65 3a 20 es{}. value:
0e90: 76 69 64 65 6f 5f 69 6e 66 6f 7b 7d 0a 20 20 20 video_info{}.
0ea0: 20 76 61 6c 75 65 3a 20 61 64 64 69 74 69 6f 6e value: addition
0eb0: 61 6c 5f 6d 65 64 69 61 5f 69 6e 66 6f 7b 7d 0a al_media_info{}.
0ec0: 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 20 63 }class..object c
0ed0: 6c 61 73 73 7b 20 73 69 7a 65 73 0a 20 20 20 20 lass{ sizes.
0ee0: 76 61 6c 75 65 3a 20 74 68 75 6d 62 7b 7d 0a 20 value: thumb{}.
0ef0: 20 20 20 76 61 6c 75 65 3a 20 73 6d 61 6c 6c 7b value: small{
0f00: 7d 0a 20 20 20 20 76 61 6c 75 65 3a 20 6d 65 64 }. value: med
0f10: 69 75 6d 7b 7d 0a 20 20 20 20 76 61 6c 75 65 3a ium{}. value:
0f20: 20 6c 61 72 67 65 7b 7d 0a 7d 63 6c 61 73 73 0a large{}.}class.
0f30: 0a 6f 62 6a 65 63 74 20 63 6c 61 73 73 7b 20 74 .object class{ t
0f40: 68 75 6d 62 0a 20 20 20 20 24 76 61 6c 75 65 3a humb. $value:
0f50: 20 72 65 73 69 7a 65 24 0a 20 20 20 20 76 61 6c resize$. val
0f60: 75 65 3a 20 77 23 0a 20 20 20 20 76 61 6c 75 65 ue: w#. value
0f70: 3a 20 68 23 0a 7d 63 6c 61 73 73 0a 0a 73 79 6e : h#.}class..syn
0f80: 6f 6e 79 6d 20 73 6d 61 6c 6c 20 74 68 75 6d 62 onym small thumb
0f90: 0a 73 79 6e 6f 6e 79 6d 20 6d 65 64 69 75 6d 20 .synonym medium
0fa0: 74 68 75 6d 62 0a 73 79 6e 6f 6e 79 6d 20 6c 61 thumb.synonym la
0fb0: 72 67 65 20 74 68 75 6d 62 0a 73 79 6e 6f 6e 79 rge thumb.synony
0fc0: 6d 20 73 6d 61 6c 6c 2d 63 6c 61 73 73 20 74 68 m small-class th
0fd0: 75 6d 62 2d 63 6c 61 73 73 0a 73 79 6e 6f 6e 79 umb-class.synony
0fe0: 6d 20 6d 65 64 69 75 6d 2d 63 6c 61 73 73 20 74 m medium-class t
0ff0: 68 75 6d 62 2d 63 6c 61 73 73 0a 73 79 6e 6f 6e humb-class.synon
1000: 79 6d 20 6c 61 72 67 65 2d 63 6c 61 73 73 20 74 ym large-class t
1010: 68 75 6d 62 2d 63 6c 61 73 73 0a 0a 6f 62 6a 65 humb-class..obje
1020: 63 74 20 63 6c 61 73 73 7b 20 76 69 64 65 6f 5f ct class{ video_
1030: 69 6e 66 6f 0a 20 20 20 20 66 69 65 6c 64 3a 20 info. field:
1040: 61 73 70 65 63 74 5f 72 61 74 69 6f 5b 5d 23 0a aspect_ratio[]#.
1050: 20 20 20 20 76 61 6c 75 65 3a 20 64 75 72 61 74 value: durat
1060: 69 6f 6e 5f 6d 69 6c 6c 69 73 23 0a 20 20 20 20 ion_millis#.
1070: 66 69 65 6c 64 3a 20 76 61 72 69 61 6e 74 73 5b field: variants[
1080: 5d 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 ].}class..object
1090: 20 63 6c 61 73 73 7b 20 76 61 72 69 61 6e 74 73 class{ variants
10a0: 0a 20 20 20 20 76 61 6c 75 65 3a 20 62 69 74 72 . value: bitr
10b0: 61 74 65 23 0a 20 20 20 20 24 76 61 6c 75 65 3a ate#. $value:
10c0: 20 63 6f 6e 74 65 6e 74 5f 74 79 70 65 24 0a 20 content_type$.
10d0: 20 20 20 24 76 61 6c 75 65 3a 20 75 72 6c 24 0a $value: url$.
10e0: 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 63 74 20 63 }class..object c
10f0: 6c 61 73 73 7b 20 61 64 64 69 74 69 6f 6e 61 6c lass{ additional
1100: 5f 6d 65 64 69 61 5f 69 6e 66 6f 0a 20 20 20 20 _media_info.
1110: 76 61 6c 75 65 3a 20 6d 6f 6e 65 74 69 7a 61 62 value: monetizab
1120: 6c 65 3f 0a 7d 63 6c 61 73 73 0a 0a 6f 62 6a 65 le?.}class..obje
1130: 63 74 20 63 6c 61 73 73 7b 20 70 6f 6c 6c 73 0a ct class{ polls.
1140: 20 20 20 20 66 69 65 6c 64 3a 20 6f 70 74 69 6f field: optio
1150: 6e 73 5b 5d 0a 20 20 20 20 36 34 76 61 6c 75 65 ns[]. 64value
1160: 3a 20 65 6e 64 5f 64 61 74 65 74 69 6d 65 21 0a : end_datetime!.
1170: 20 20 20 20 76 61 6c 75 65 3a 20 64 75 72 61 74 value: durat
1180: 69 6f 6e 5f 6d 69 6e 75 74 65 73 23 0a 7d 63 6c ion_minutes#.}cl
1190: 61 73 73 0a 0a 6f 62 6a 65 63 74 20 63 6c 61 73 ass..object clas
11a0: 73 7b 20 6f 70 74 69 6f 6e 73 0a 20 20 20 20 76 s{ options. v
11b0: 61 6c 75 65 3a 20 70 6f 73 69 74 69 6f 6e 23 0a alue: position#.
11c0: 20 20 20 20 24 76 61 6c 75 65 3a 20 74 65 78 74 $value: text
11d0: 24 0a 7d 63 6c 61 73 73 0a 0a 7d 73 63 6f 70 65 $.}class..}scope
11e0: 0a 0a 3a 20 74 77 69 74 74 65 72 2d 73 63 61 6e ..: twitter-scan
11f0: 20 28 20 2d 2d 20 29 20 20 74 77 69 74 74 65 72 ( -- ) twitter
1200: 2d 64 61 74 65 0a 20 20 20 20 5b 27 5d 20 74 77 -date. ['] tw
1210: 69 74 74 65 72 20 3e 62 6f 64 79 20 74 6f 20 73 itter >body to s
1220: 63 68 65 6d 61 2d 73 63 6f 70 65 0a 20 20 20 20 chema-scope.
1230: 74 77 69 74 74 65 72 3a 74 77 65 65 74 73 2d 63 twitter:tweets-c
1240: 6c 61 73 73 20 74 6f 20 6f 75 74 65 72 2d 63 6c lass to outer-cl
1250: 61 73 73 0a 20 20 20 20 5b 27 5d 20 74 77 69 74 ass. ['] twit
1260: 74 65 72 3a 74 77 65 65 74 73 20 3e 62 6f 64 79 ter:tweets >body
1270: 20 74 6f 20 73 63 68 65 6d 61 2d 77 69 64 0a 20 to schema-wid.
1280: 20 20 20 5b 3a 20 28 6e 61 6d 65 29 20 32 64 72 [: (name) 2dr
1290: 6f 70 20 28 6e 61 6d 65 29 20 32 64 72 6f 70 20 op (name) 2drop
12a0: 73 22 20 74 77 65 65 74 22 20 6b 65 79 24 20 24 s" tweet" key$ $
12b0: 21 0a 09 5b 27 5d 20 6e 6f 6f 70 20 69 73 20 62 !..['] noop is b
12c0: 65 66 6f 72 65 2d 6c 69 6e 65 20 3b 5d 20 69 73 efore-line ;] is
12d0: 20 62 65 66 6f 72 65 2d 6c 69 6e 65 20 3b 0a 0a before-line ;..
12e0: 5c 5c 5c 0a 4c 6f 63 61 6c 20 56 61 72 69 61 62 \\\.Local Variab
12f0: 6c 65 73 3a 0a 66 6f 72 74 68 2d 6c 6f 63 61 6c les:.forth-local
1300: 2d 77 6f 72 64 73 3a 0a 20 20 20 20 28 0a 20 20 -words:. (.
1310: 20 20 20 28 28 22 63 6c 61 73 73 7b 22 29 20 64 (("class{") d
1320: 65 66 69 6e 69 74 69 6f 6e 2d 73 74 61 72 74 65 efinition-starte
1330: 72 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 r (font-lock-key
1340: 77 6f 72 64 2d 66 61 63 65 20 2e 20 31 29 0a 20 word-face . 1).
1350: 20 20 20 20 20 22 5b 20 5c 74 5c 6e 5d 22 20 74 "[ \t\n]" t
1360: 20 6e 61 6d 65 20 28 66 6f 6e 74 2d 6c 6f 63 6b name (font-lock
1370: 2d 66 75 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d 66 -function-name-f
1380: 61 63 65 20 2e 20 33 29 29 0a 20 20 20 20 20 28 ace . 3)). (
1390: 28 22 7d 63 6c 61 73 73 22 29 20 64 65 66 69 6e ("}class") defin
13a0: 69 74 69 6f 6e 2d 65 6e 64 65 72 20 28 66 6f 6e ition-ender (fon
13b0: 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 t-lock-keyword-f
13c0: 61 63 65 20 2e 20 31 29 29 0a 20 20 20 20 29 0a ace . 1)). ).
13d0: 66 6f 72 74 68 2d 6c 6f 63 61 6c 2d 69 6e 64 65 forth-local-inde
13e0: 6e 74 2d 77 6f 72 64 73 3a 0a 20 20 20 20 28 0a nt-words:. (.
13f0: 20 20 20 20 20 28 28 22 63 6c 61 73 73 7b 22 29 (("class{")
1400: 20 28 30 20 2e 20 32 29 20 28 30 20 2e 20 32 29 (0 . 2) (0 . 2)
1410: 29 0a 20 20 20 20 20 28 28 22 7d 63 6c 61 73 73 ). (("}class
1420: 22 29 20 28 2d 32 20 2e 20 30 29 20 28 30 20 2e ") (-2 . 0) (0 .
1430: 20 2d 32 29 29 0a 20 20 20 20 29 0a 45 6e 64 3a -2)). ).End:
1440: 0a 5b 54 48 45 4e 5d 0a .[THEN].