Hex Artifact Content
Not logged in

Artifact 4484cc6fc9a2e8a1c0027b02c49cc1ba66480f28:


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].