AI
Animation
CGI
Compression
Console
Database
Debug
Dialects
Dialogs
Editor
Email
Encryption
Extension
External Library
File
File Handling
Files
Financial
FTP
Game
Games
Graphics
GUI
HTML
HTTP
Internet
LDC
Markup
Math
Module
Network
Networking
None
Other - Net
Parse
Patch
Printing
Protocol
Rebol
Scheme
Scientific
SDK
Security
Shell
Sound
SQL
TCP
Testing
Text
Text Processing
UI
User Interface
Util
Utility
VID
Visualization
Web
Win API
X-File
XML
REBOL[
	Title: "Wall Street"
	File: %wall-street.r
	Date: 5-6-2007
	Purpose: "Small nice demo"
	Verison: 0.2.0
	Library: [
		level: 'intermediate
		platform: 'all
		type: [demo]
		domain: [html visualization web vid]
		tested-under: none
		support: "rebolek[at]gmail[dot]com"
		license: 'MIT
		see-also: none
	]
]

url: http://finance.google.com/finance

extend: func [string length /with znak][
	if (length? string) > length [return copy/part string length]
	join string rejoin array/initial length - (length? string) either with [znak][" "]
]

de-url: func [text][
	foreach [co cim]["&" "&" """ {"}][replace/all text co cim]
	text
]

upd-func: func [total bytes][
	obrazovka/txt: rejoin [bytes " bytes read."]
	show obrazovka
	true
]

get-data: does [
	rule=: [
		thru "finance?q=" copy symbol to {"}
		thru {title="} copy title to {"}
		thru {} copy price to "<"
		thru {} copy change1 to "<"
		thru {} copy change2 to "<"
		thru {} copy mktcap to "<"
	]
	rule=act: [
		append result rejoin [ 
		"|"	extend/with de-url title 25 "."
		"|"	extend symbol 4
		"|"	extend price 7
		"|" extend rejoin [change1 " " change2] 15
		"|" extend trim/all mktcap 8
		"|" newline
		]
	]
	;page: read url
	page: read-thru/update/progress url :upd-func
	result: rejoin [
		"^/GOOGLE Finance - recent quotes^/"
		rejoin array/initial 65 "-"
		"^/|Company name             |Symb|Price  |Change         |Mkt cap |^/"
		rejoin array/initial 65 "-"
		newline
	]
	
	parse page [thru "Recent quotes" some [rule= (do rule=act)] to end]
	append result rejoin array/initial 65 "-"
	append result "^/^/^/^/^/^/^/^/^/^/^/^/^/"
	append result rejoin array/initial 30 "-"
	append result "REBOL"
	append result rejoin array/initial 30 "-"
	result
]

;GUI

fuj: stylize [
	cara: face with [
		size: 100x3
		color: green
		effect: [merge alphamul 127]
		init: []
		rate: 0
		feel: make feel [
			engage: func [face action event][
				switch action [
					time [
						face/size/x: face/parent-face/size/x
						face/offset/y: face/offset/y - 1
						if face/offset/y < 0 [face/offset/y: face/parent-face/size/y]
					]
				]
				show face
			]
		]
	]
	bordel: face with [
		color: 0.50.0
		txt: copy ""
		font: make font [
			name: "courier"
			size: 13
			align: 'left
			style: 'bold
			color: 127.255.127
		]
		para: make para [wrap?: no]
		position: 0
		rate: 0
		feel: make feel [
			engage: func [face action event][
				switch action [
					down [
						face/position: 0
						face/txt: copy "^/Preparing to download data...^/"
						show face
						face/txt: get-data
					]
					time [
						face/text: copy/part face/txt face/position
						face/position: face/position + 1
						if face/position > length? face/txt [face/position: 0]
						append face/text to char! 32 + random 96
						show face
						wait .01
						remove back tail face/text
						show face
					]
				]
			]
		]
		init: []
		multi: make multi [
			text: func [face blk][
				if pick blk 1 [
					face/txt: pick blk 1
				]
			]
		]
	]
]

siz: size-text make face [size: 10000x10 text: rejoin array/initial 65 "-" font: make font [name: "courier" size: 13 style: 'bold]]

view layout [
	styles fuj
	origin 0
	space 0
	backcolor 0.0.0
	obrazovka: bordel (siz * 1x26 + 3x3)
decompress #{
789CC592B10AC2400C86779F229B4AD17750280E2A48159CA3097AF47A91DC69
A9F4E1B5DD3A58AA45FD9723CBF77F21174DFA251A94D02FE52B42D42CEA4AD8
B33D4AC610044AD8CF562BD8EE9238DE3D276524D61F387C9272D02CFBFF2D72
3521B0834301493C17CB298CAAC75BBCC15CF92E379F16E316028071FE6294A9
822C44491C2CF898CAD04360CD8C43DBEAD07F8B3AA2E654771962AC5C964216
D6A86774DD086F3B7CE19A1B65EF2193ABAFBF3749EEAC200161C0E9771C1E5B
65C06620040000
}
	cara
]

            
            
        
Copyright © 2018 Rebol Software Foundation