REVO2700 xkcd Review Pon savingStandalone
selectComic empty
put empty into fld "ComicList"
end savingStandalone
global DBID
on openDB
try
if DBID is not among the items of revOpenDatabases() then
closeDB
put comicFolder() into vFile
put "xkcdDB.sqlite" after vFile
put revOpenDatabase("sqlite",vFile,,,,) into DBID
put "SELECT number FROM xkcd_comics" into sql
put revDataFromQuery(,comma,DBID,sql) into vStuff
if vStuff contains "Database Error" then
put "CREATE TABLE xkcd_comics(number integer, name text, altText text, transcript text, filename text, tags text)" into sql
revExecuteSQL DBID,sql
end if
end if
catch vError
answer error "There was a problem opening the comic transcript database. Please contact the developer at development@fieryferret.com, he will fix it for you."
end try
end openDB
on closeDB
repeat for each item x in revOpenDatabases()
revCloseDatabase x
end repeat
end closeDB
function ComicList vSearch
openDB
replace space with "%" in vSearch
put "%" & vSearch & "%" into vSearch
if the hilited of btn "filter profanity" then
put "SELECT number,name FROM xkcd_comics WHERE (transcript LIKE :1 OR tags LIKE :1 OR name LIKE :1 " & \
"OR number LIKE :1 OR altText LIKE :1) AND (NOT tags LIKE '%profanity%') ORDER BY number DESC" into sql
else
put "SELECT number,name FROM xkcd_comics WHERE transcript LIKE :1 OR tags LIKE :1 OR name LIKE :1 " & \
"OR number LIKE :1 OR altText LIKE :1 ORDER BY number DESC" into sql
end if
put revDataFromQuery(tab,return,DBID,sql,"vSearch") into vResult
return vResult
end ComicList
on searchComics vSearch
put comicList(vSearch) into fld "ComicList"
set the visible of fld "databaseEmpty" to fld "ComicList" is empty
end searchComics
on selectComic vNum
saveComic
set the selectedComic of this stack to vNum
put "SELECT name,transcript,altText,tags,filename from xkcd_comics WHERE number = :1" into sql
put revDataFromQuery(numTochar(1),,DBID,sql,"vNum") into vResults
if vResults is not empty then
set the itemDel to numToChar(1)
put the item 1 of vResults into vName
put the item 2 of vResults into vTranscript
put the item 3 of vResults into vAltText
put the item 4 of vResults into vTags
put the item 5 of vResults into vFilename
set the itemDel to comma
lock screen
put vName && "-" && "#" & vNum into fld "ComicName"
put replaceText(vTranscript,"/ ",return) into fld "Transcript"
put vAltText into fld "altText"
put vTags into fld "Tags"
if there is a file (comicFolder() & vFileName) then
set the filename of img "comic" to comicFolder() & vFileName
set the resizeQuality of img "comic" to "best"
set the originalRect of img "Comic" to the rect of img "Comic"
set the rect of img "Comic" to comicRect()
set the visible of img "comic" to true
set the visible of fld "NoComicImage" to false
else
set the filename of img "comic" to empty
set the visible of img "comic" to false
set the visible of fld "NoComicImage" to true
end if
unlock screen
else
put empty into fld "Transcript"
put empty into fld "Tags"
put empty into fld "ComicName"
put empty into fld "altText"
set the visible of img "Comic" to false
set the hilitedLine of fld "ComicList" to empty
end if
end selectComic
function comicRect
put the originalRect of img "Comic" into vComicRect
put the item 3 of vComicRect - the item 1 of vComicRect into vWidth
put the item 4 of vComicRect - the item 2 of vComicRect into vHeight
put the loc of grp "ComicBounds" into vLoc
subtract (the height of fld "altText" / 2) from the item 2 of vLoc
put the height of grp "ComicBounds" - 4 - the height of fld "altText" into vMaxHeight
filter fld "altText" without empty
if (the formattedHeight of fld "altText" > the height of fld "altText") then
set the vScrollBar of fld "altText" to true
put return after fld "altText"
else
if formattedHeight of fld "altText" < (the textHeight of fld "altText" * 2) then --If there was only one line in the altText, we want to
--move it down, allow the comic the extra space, and readjust the loc of the comic
add the textHeight of fld "altText" - 4 to vmaxHeight
add (the textHeight of fld "altText" / 2) - 2 to the item 2 of vLoc
put return before fld "altText"
end if
set the vScrollBar of fld "altText" to false
end if
put the width of grp "ComicBounds" - 4 into vMaxWidth
if (vHeight > vMaxHeight) or (vWidth > vMaxWidth) then
put min( vMaxHeight / vHeight, vMaxWidth / vWidth) into vRatio
put vHeight * vRatio into vHeight
put vWidth * vRatio into vWidth
end if
put the item 1 of vLoc - (vWidth div 2) into the item 1 of vNewRect
put the item 2 of vLoc - (vHeight div 2) into the item 2 of vNewRect
put the item 1 of vLoc + round(vWidth / 2) into the item 3 of vNewRect
put the item 2 of vLoc + round(vHeight / 2) into the item 4 of vNewRect
return vNewRect
end comicRect
on saveComic
openDB
put fld "tags" into vTags
put the selectedComic of this stack into vNum
revExecuteSQL DBID,"UPDATE xkcd_comics SET tags= :1 WHERE number= :2","vTags", "vNum"
end saveComic
function comicFolder
if the platform is "MacOS" then
put specialFolderPath("Desktop") into vFolder
replace "Desktop" with "Pictures/xkcd Comics/" in vFolder
else if the platform is "Win32" then
put specialFolderPath("0x0027") into vFolder
put "/xkcd Comics/" after vFolder
else
put the filename of stack "xkcd Review" into vFolder
set the itemDel to "/"
put "xkcd Comics/" into the last item of vFolder
end if
if there is not a folder vFolder then create folder vFolder
return vFolder
end comicFolder
on fixTags
openDB
put "%favorite%" into vSearch
put "SELECT number,tags FROM xkcd_comics WHERE tags LIKE :1" into sql
put revDataFromQuery(tab,return,DBID,sql,"vSearch") into vResult
set the itemDel to tab
repeat for each line x in vResult
replace "favorite" with "favorite <3" in the item 2 of x
put the item 2 of x into vTags
put the item 1 of x into vNum
revExecuteSQL DBID,"UPDATE xkcd_comics SET tags= :1 WHERE number= :2","vTags", "vNum"
end repeat
end fixTags
MH selectedComic xkcd Review U Lucida Grande U Lucida Grande U Lucida Grande U Lucida Grande U Monaco
U Monaco U Lucida Grande U Lucida Grande cRevStandaloneSettings 7scriptLibraries Database
Geometry
Internet
MacOSX true
OSX,iconFile xkcd Review Icon.icns OSX,name xkcd ReviewMacOS,documentType UNIX,fileSelector trueWindows trueMacOS,longVersion xkcd Review 1.0.0.0Windows,LegalCopyright #2008 Fiery Ferret Email for SourceUNIX,pageSetup trueOSX,documentType databaseDrivers
MySQL
SQLite
Windows,documenticonFile inclusions selectWindows,copyright #2008 All rights reserved worldwide
answerDialog trueOSX,documentExtension Windows,FileDescription xkcd Review 1.1.1.0 for WindowsOSX,longVersion xkcd Review 1.1.1.0 MacOSfat falseUNIX,printerChooser trueOSX,copyright #2008 Fiery Ferret Email for SourceWindows,buildU3 falseMacOS,shortVersion 1.0.0.0OSX,documentIconFile MacOS,MinimumSize 15000MacOS,versionnumber1 1MacOS,Release FinalMacOS,versionnumber2 0MacOS,versionnumber3 0name xkcd ReviewOSX,identifier com..xkcdreview
MacOS,Region 1OSX,shortVersion 1.1.1.0Windows,fileversion1 1Windows,fileversion2 1Windows,productversion1 1Windows,fileversion3 1Windows,productversion2 1Windows,fileversion4 0Windows,productversion3 1cursors false OSX,info xkcd Review Version 1.1.1.0Windows,productversion4 0MacOS,dynamicMemory trueMacOSX PowerPC-32 false
askDialog falseWindows,iconFile OSX,signature ????Windows,ProductName xkcd ReviewMacOS,PreferredSize 15000UNIX,colorChooser trueMacOSX x86-32 falseMacOS,creator ????Windows,companyname cREVGeometryCache stackID 1173 cREVGeneral
scriptChecksum md2
Y
debugObjects breakPoints handlerList jsavingStandalone
openDB
closeDB
ComicList
searchComics
selectComic
comicRect
saveComic
comicFolder
fixTagsscriptSelection
char 73 to 72
bookmarks tempScript prevHandler searchComicsstackfileversion 2.7script
selectComic empty
put empty into fld "ComicList"
end savingStandalone
global DBID
on openDB
try
if DBID is not among the items of revOpenDatabases() then
closeDB
put comicFolder() into vFile
put "xkcdDB.sqlite" after vFile
put revOpenDatabase("sqlite",vFile,,,,) into DBID
put "SELECT number FROM xkcd_comics" into sql
put revDataFromQuery(,comma,DBID,sql) into vStuff
if vStuff contains "Database Error" then
put "CREATE TABLE xkcd_comics(number integer, name text, altText text, transcript text, filename text, tags text)" into sql
revExecuteSQL DBID,sql
end if
end if
catch vError
answer error "There was a problem opening the comic transcript database. Please contact the developer at development@fieryferret.com, he will fix it for you."
end try
end openDB
on closeDB
repeat for each item x in revOpenDatabases()
revCloseDatabase x
end repeat
end closeDB
function ComicList vSearch
openDB
replace space with "%" in vSearch
put "%" & vSearch & "%" into vSearch
if the hilited of btn "filter profanity" then
put "SELECT number,name FROM xkcd_comics WHERE (transcript LIKE :1 OR tags LIKE :1 OR name LIKE :1 " & \
"OR number LIKE :1 OR altText LIKE :1) AND (NOT tags LIKE '%profanity%') ORDER BY number DESC" into sql
else
put "SELECT number,name FROM xkcd_comics WHERE transcript LIKE :1 OR tags LIKE :1 OR name LIKE :1 " & \
"OR number LIKE :1 OR altText LIKE :1 ORDER BY number DESC" into sql
end if
put revDataFromQuery(tab,return,DBID,sql,"vSearch") into vResult
return vResult
end ComicList
on searchComics vSearch
put comicList(vSearch) into fld "ComicList"
set the visible of fld "databaseEmpty" to fld "ComicList" is empty
end searchComics
on selectComic vNum
saveComic
set the selectedComic of this stack to vNum
put "SELECT name,transcript,altText,tags,filename from xkcd_comics WHERE number = :1" into sql
put revDataFromQuery(numTochar(1),,DBID,sql,"vNum") into vResults
if vResults is not empty then
set the itemDel to numToChar(1)
put the item 1 of vResults into vName
put the item 2 of vResults into vTranscript
put the item 3 of vResults into vAltText
put the item 4 of vResults into vTags
put the item 5 of vResults into vFilename
set the itemDel to comma
lock screen
put vName && "-" && "#" & vNum into fld "ComicName"
put replaceText(vTranscript,"/ ",return) into fld "Transcript"
put vAltText into fld "altText"
put vTags into fld "Tags"
if there is a file (comicFolder() & vFileName) then
set the filename of img "comic" to comicFolder() & vFileName
set the resizeQuality of img "comic" to "best"
set the originalRect of img "Comic" to the rect of img "Comic"
set the rect of img "Comic" to comicRect()
set the visible of img "comic" to true
set the visible of fld "NoComicImage" to false
else
set the filename of img "comic" to empty
set the visible of img "comic" to false
set the visible of fld "NoComicImage" to true
end if
unlock screen
else
put empty into fld "Transcript"
put empty into fld "Tags"
put empty into fld "ComicName"
put empty into fld "altText"
set the visible of img "Comic" to false
set the hilitedLine of fld "ComicList" to empty
end if
end selectComic
function comicRect
put the originalRect of img "Comic" into vComicRect
put the item 3 of vComicRect - the item 1 of vComicRect into vWidth
put the item 4 of vComicRect - the item 2 of vComicRect into vHeight
put the loc of grp "ComicBounds" into vLoc
subtract (the height of fld "altText" / 2) from the item 2 of vLoc
put the height of grp "ComicBounds" - 4 - the height of fld "altText" into vMaxHeight
filter fld "altText" without empty
if (the formattedHeight of fld "altText" > the height of fld "altText") then
set the vScrollBar of fld "altText" to true
put return after fld "altText"
else
if formattedHeight of fld "altText" < (the textHeight of fld "altText" * 2) then --If there was only one line in the altText, we want to
--move it down, allow the comic the extra space, and readjust the loc of the comic
add the textHeight of fld "altText" - 4 to vmaxHeight
add (the textHeight of fld "altText" / 2) - 2 to the item 2 of vLoc
put return before fld "altText"
end if
set the vScrollBar of fld "altText" to false
end if
put the width of grp "ComicBounds" - 4 into vMaxWidth
if (vHeight > vMaxHeight) or (vWidth > vMaxWidth) then
put min( vMaxHeight / vHeight, vMaxWidth / vWidth) into vRatio
put vHeight * vRatio into vHeight
put vWidth * vRatio into vWidth
end if
put the item 1 of vLoc - (vWidth div 2) into the item 1 of vNewRect
put the item 2 of vLoc - (vHeight div 2) into the item 2 of vNewRect
put the item 1 of vLoc + round(vWidth / 2) into the item 3 of vNewRect
put the item 2 of vLoc + round(vHeight / 2) into the item 4 of vNewRect
return vNewRect
end comicRect
on saveComic
openDB
put fld "tags" into vTags
put the selectedComic of this stack into vNum
revExecuteSQL DBID,"UPDATE xkcd_comics SET tags= :1 WHERE number= :2","vTags", "vNum"
end saveComic
function comicFolder
if the platform is "MacOS" then
put specialFolderPath("Desktop") into vFolder
replace "Desktop" with "Pictures/xkcd Comics/" in vFolder
else if the platform is "Win32" then
put specialFolderPath("0x0027") into vFolder
put "/xkcd Comics/" after vFolder
else
put the filename of stack "xkcd Review" into vFolder
set the itemDel to "/"
put "xkcd Comics/" into the last item of vFolder
end if
if there is not a folder vFolder then create folder vFolder
return vFolder
end comicFolder
on fixTags
openDB
put "%favorite%" into vSearch
put "SELECT number,tags FROM xkcd_comics WHERE tags LIKE :1" into sql
put revDataFromQuery(tab,return,DBID,sql,"vSearch") into vResult
set the itemDel to tab
repeat for each line x in vResult
replace "favorite" with "favorite <3" in the item 2 of x
put the item 2 of x into vTags
put the item 1 of x into vNum
revExecuteSQL DBID,"UPDATE xkcd_comics SET tags= :1 WHERE number= :2","vTags", "vNum"
end repeat
end fixTags
Pqon preOpenStack set the loc of this stack to the screenLoc -- try -- answer "Selecting comic" -- selectComic empty -- put empty into fld "SearchParams" -- searchComics empty -- catch vError -- answer vError -- end try end preOpenStack on openstack try selectComic empty put empty into fld "SearchParams" searchComics empty catch vError answer vError end try end openstack on closeStack saveComic end closeStack on resizeStack try set the resizeQuality of img "comic" to "Normal" set the rect of img "comic" to comicRect() end try pass resizeStack end resizeStack H cREVGeneral scriptChecksum އT 6ZR bookmarks handlerList -preOpenStack openstack closeStack resizeStacktempScript von preOpenStack
set the loc of this stack to the screenLoc
-- try
-- answer "Selecting comic"
-- selectComic empty
-- put empty into fld "SearchParams"
-- searchComics empty
-- catch vError
-- answer vError
-- end try
end preOpenStack
on openstack
try
selectComic empty
put empty into fld "SearchParams"
searchComics empty
catch vError
answer vError
end try
end openstack
on closeStack
saveComic
end closeStack
on resizeStack
try
set the resizeQuality of img "comic" to "Normal"
set the rect of img "comic" to comicRect()
end try
pass resizeStack
end resizeStack
prevHandler closeStackscriptSelection char 297 to 296script von preOpenStack
set the loc of this stack to the screenLoc
-- try
-- answer "Selecting comic"
-- selectComic empty
-- put empty into fld "SearchParams"
-- searchComics empty
-- catch vError
-- answer vError
-- end try
end preOpenStack
on openstack
try
selectComic empty
put empty into fld "SearchParams"
searchComics empty
catch vError
answer vError
end try
end openstack
on closeStack
saveComic
end closeStack
on resizeStack
try
set the resizeQuality of img "comic" to "Normal"
set the rect of img "comic" to comicRect()
end try
pass resizeStack
end resizeStack
cREVGeometryCacheIDs 1202703957992 10141203212615764 11241202708233624 10431202704456783 10191202704482003 10211204795027841 11491202703789757 10041204790717669 11361202704225848 10171202704873525 10251202704520259 10221202703913776 10081204842608618 11531156109604004 10091156109604005 10101156109604006 10111156109604007 10121202705223909 10281202703803798 10061202708694806 10361202705242743 10301202705320050 10311202704877268 10271202704200724 1016 cREVGeometrycache order 1202704456783 1202704482003 1202704520259 1202708233624 1202704877268 1202705242743 1202703957992 1204795027841 1202703803798 1202704225848 1202708694806 1203212615764 1202703789757total 24 d p } ComicList )p on selectionChanged put the hilitedText of me into vComic set the itemDel to tab put the item 1 of vComic into vComicNum if vComicNum is not empty then selectComic vComicNum end if end selectionChanged 2 cREVGeometry Master,movevDistance falseMaster,scalebottomDistance -189Master,expectedRect 12,50,184,462Master,scaleBottomObjectSide BottomMaster,movehDistance falseMaster trueMaster,scaleBottomObjectRef cardMaster,scalerightDistance Master,cardRanking 1Master,scaleBottomAbsolute trueMaster,scaleBottom trueMaster,scaletopDistance Master,scaleleftDistance cREVTable formattedview Choice 1 Choice 2 Choice 3currenthscroll 0currentxmouseloc 117currentymouseloc 18scrollbarwidth 16 cellyspacing 14rightfieldloc 182topfieldloc 28 leftfieldloc 12 cellxspacing 7currentview #n1 Barrel - Part 1
2 Petit Trees (sketch)
3 Island (sketch)
4 Landscape (sketch)
5 Blown apart
6 Irony
7 Girl sleeping (Sketch -- 11th grade Spanish class)
8 Red spiders
9 Serenity is coming out tomorrow
10 Pi Equals
11 Barrel - Part 2
12 Poisson
13 Canyon
14 Copyright
16 Monty Python -- Enough
17 What If
18 Snapple
19 George Clinton
20 Ferret
21 Kepler
22 Barrel - Part 3
23 T-shirts
24 Godel, Escher, Kurt Halsey
25 Barrel - Part 4
26 Fourier
27 Meat Cereals
28 Elefino
29 Hitler
30 Donner
31 Barrel - Part 5
32 Pillar
33 Self-reference
34 Flowers
35 Sheep
36 Scientists
37 Hyphen
38 Apple Jacks
39 Bowl
40 Light
41 Old Drawing
42 Geico
43 Red Spiders 2
44 Love
45 Schrodinger
46 Secrets
47 Counter-Red Spiders
48 Found
49 Want
50 Penny Arcade
51 Malaria
53 Hobby
54 Science
56 The Cure
57 Wait For Me
58 Why Do You Love Me?
59 Graduation
60 Super Bowl
61 Stacey's Dad
62 Valentine - Karnaugh
63 Valentine - Heart
64 Solar Plexus
65 Banter
66 Abusive Astronomy
67 Nerd Girls
68 Five Thirty
69 Pillow Talk
70 Guitar Hero
71 In the Trees
72 Classhole
73 Zeppelin
74 Su Doku
75 Curse Levels
78 Garfield
79 Iambic Pentameter
80 My Other Car
81 Attention, shopper
82 Frame
83 Katamari
84 National Language
85 Paths
86 Digital Rights Management
87 Velociraptors
88 Escher Bracelet
89 Gravitational Mass
90 Jacket
91 Pwned
92 Sunrise
93 Jeremy Irons
95 The Sierpinski Penis Game
96 Mail
97 A Simple Plan
98 Fall Apart
99 Binary Heart
100 Family Circus
101 Laser Scope
102 Back to the Future
103 Moral Relativity
104 Find You
105 Parallel Universe
106 Wright Brothers
107 Snakes on a Plane! 2
108 M.C. Hammer Slide
109 Spoiler Alert
110 Clark Gable
111 Firefox and Witchcraft - The Connection?
112 Baring My Heart
113 XKCD - Riemann-Zeta
114 Computational Linguists
115 Meerkat
116 City
117 Pong
118 50 Ways
119 Worst Band Name Ever
120 Dating Service
121 Balloon
122 Quirky Girls
123 Centrifugal Force
124 Blogofractal
125 Marketing Interview
126 Red Spiders Cometh
127 The Fast and the Furious
128 dPain over dt
129 Content Protection
130 Julia Stiles
131 Fans
132 Music Knowledge
133 The Raven
134 Myspace
135 Substitute
136 Science Fair
137 Dreams
138 Pointers
139 I Have Owned Two Electric Skateboards
140 Delicious
141 Parody Week: Achewood
142 Parody Week: Megatokyo
143 Parody Week: TFD and Natalie Dee
144 Parody Week: A Softer World
145 Parody Week: Dinosaur Comics
146 Join Myspace
148 Mispronouncing
149 Sandwich
150 Grownups
151 Mario
152 Hamster Ball
153 Cryptography
154 Beliefs
155 Search History
156 Commented
157 Filler Art
158 Six Months
159 Boombox
160 Penny Arcade Parody
161 Accident
162 Angular Momentum
163 Donald Knuth
164 Playing Devil's Advocate to Win
165 Turn Signals
166 Misusing Slang
168 Reverse Euphemisms
169 Words that End in GRY
170 Turn Back
171 String Theory
172 Skateboarding is Not a Crime
173 Movie Seating
174 That's What SHE Said
175 Automatic Doors
176 Before Sunrise
177 Alice and Bob
178 Not Really Into Pokemon
180 Canada
181 Interblag
182 Nash
184 Matrix Transform
185 Wikifriends
186 Console Lines
187 The Familiar
188 Reload
189 Exercise
190 IPoD
191 Lojban
192 Working for Google
193 The Perfect Sound
194 Penises
196 Command Line Fu
197 Ninja Turtles
198 Perspective
199 Right-Hand Rule
200 Bill Nye
201 Christmas GPS
202 YouTube
203 Hallucinations
205 Candy Button Paper
206 Reno Rhymes
207 What xkcd Means
208 Regular Expressions
209 Kayak
210 90's Flowchart
211 Hamster Ball Heist
212 Brain
214 The Problem with Wikipedia
217 e to the pi Minus pi
223 Valentine's Day
225 Open Source
228 Resonance
229 Graffiti
230 Hamiltonian
231 Cat Proximity
232 Chess Enlightenment
233 A New CAPTCHA Approach
234 Escape Artist
235 Kite
236 Collecting Double-Takes
237 Keyboards are Disgusting
238 Pet Peeve #114
239 Blagofaire
240 Dream Girl
241 Battle Room
242 The Difference
243 Appropriate Term
244 Tabletop Roleplaying
245 Floor Tiles
246 Labyrinth Puzzle
248 Hypotheticals
249 Chess Photo
250 Snopes
251 CD Tray Fight
252 Escalators
253 Highway Engineer Pranks
254 Comic Fragment
255 Subjectivity
256 Online Communities
257 Code Talkers
258 Conspiracy Theories
259 ClichÈd Exchanges
260 The Glass Necklace
261 Regarding Mussolini
262 IN UR REALITY
263 Certainty
264 Choices: Part 1
265 Choices: Part 2
266 Choices: Part 3
267 Choices: Part 4
268 Choices: Part 5
269 TCMP
270 Merlin
271 Powers of One
273 Electromagnetic Spectrum
274 With Apologies to The Who
275 Thoughts
276 Fixed Width
277 Long Light
278 Black Hat Support
279 Pickup Lines
280 Librarians
281 Online Package Tracking
282 Organic Fuel
283 Projection
288 Elevator
289 Alone
291 Dignified
293 RTFM
296 Tony Hawk
297 Lisp Cycles
298 Tesla Coil
300 Facebook
301 Limerick
302 Names
303 Compiling
304 Midnight Stories
305 Rule 34
307 Excessive Quotation
308 Interesting Life
309 Shopping Teams
310 Commitment
312 With Apologies to Robert Frost
316 Loud Sex
318 Nostalgia
319 Engineering Hubris
322 Pix Plz
323 Ballmer Peak
324 Tapping
325 A-Minus-Minus
326 Effect an Effect
327 Exploits of a Mom
328 Eggs
329 Turing Test
330 Indecision
331 Photoshops
332 Gyroscopes
333 Getting Out of Hand
334 Wasteland
335 Mattress
336 Priorities
338 Future
339 Classic
340 Fight
341 1337: Part 1
342 1337: Part 2
343 1337: Part 3
345 1337: Part 5
347 Brick Archway
348 Close to You
349 Success
350 Network
351 Trolling
352 Far Away
353 Python
354 Startling
355 Couple
356 Nerd Sniping
357 Flies
358 Loud Party
359 Rock Band
360 Writers Strike
361 Christmas Back Home
362 Blade Runner
363 Reset
364 Responsible Behavior
365 Slides
366 Your Mom
367 Fandom
368 Bass
370 Redwall
371 Compiler Complaint
372 To Be Wanted
373 The Data So Far
374 Journal
375 Pod Bay Doors
376 Bug
377 Journal 2
378 Real Programmers
379 Forgetting
380 Emoticon
currentvscroll 1247 viewablerows 334viewablecolumns 25cellformat falsenumbertabstops 1 celledit falsebottomfieldloc 426 cREVGeneral table falsescriptChecksum gUĤ+*,>PbreakPoints handlerList selectionChangedscriptSelection char 218 to 217revUniqueID 1202703803798 bookmarks tempScript prevHandler mouseUpscript {on selectionChanged
put the hilitedText of me into vComic
set the itemDel to tab
put the item 1 of vComic into vComicNum
if vComicNum is not empty then
selectComic vComicNum
end if
end selectionChanged
431 Delivery 430 Every Damn Morning 429 Fantasy 428 Starwatching 427 Bad Timing 426 Geohashing 425 Fortune Cookies 424 Security Holes 423 Finish Line 422 A Better Idea 421 Making Hash Browns 420 Jealousy 419 Forks and Spoons 418 Stove Ownership 417 The Man Who Fell Sideways 416 Zealous Autoconfig 415 Restraining Order 414 Mistranslations 413 New Pet 412 Startled 411 Techno 410 Math Paper '409 Electric Skateboard (Double Comic) 408 Overqualified 407 Cheap GPS 406 Venting 403 Convincing Pickup Line 402 1,000 Miles North 401 Large Hadron Collider 400 Important Life Lesson 399 Travelling Salesman Problem 398 Tap That Ass 397 Unscientific 396 The Ring 395 Morning 394 Kilobyte 393 Ultimate Game 392 Making Rules 391 Anti-Mindvirus 390 Nightmares 389 Keeping Time 388 Fuck Grapefruit 387 Advanced Technology 386 Duty Calls 385 How it Works 384 The Drake Equation 382 Trebuchet 380 Emoticon 379 Forgetting 378 Real Programmers 377 Journal 2 376 Bug 375 Pod Bay Doors 374 Journal 373 The Data So Far 372 To Be Wanted 371 Compiler Complaint 370 Redwall 369 Dangers 368 Bass 367 Fandom 366 Your Mom 365 Slides 364 Responsible Behavior 363 Reset 362 Blade Runner 361 Christmas Back Home 360 Writers Strike 359 Rock Band 358 Loud Party 356 Nerd Sniping 355 Couple 354 Startling 353 Python 352 Far Away 351 Trolling 350 Network 349 Success 348 Close to You 347 Brick Archway 346 Diet Coke + Mentos 345 1337: Part 5 344 1337: Part 4 342 1337: Part 2 341 1337: Part 1 340 Fight 339 Classic 338 Future 337 Post Office Showdown 336 Priorities 335 Mattress 333 Getting Out of Hand 332 Gyroscopes 331 Photoshops 330 Indecision 329 Turing Test 328 Eggs 327 Exploits of a Mom 326 Effect an Effect 325 A-Minus-Minus 324 Tapping 323 Ballmer Peak 322 Pix Plz 321 Thighs 320 28-Hour Day 319 Engineering Hubris 318 Nostalgia 317 That Lovin' Feelin' 316 Loud Sex 315 Braille 314 Dating Pools 313 Insomnia #312 With Apologies to Robert Frost 311 Action Movies 310 Commitment 309 Shopping Teams 308 Interesting Life 307 Excessive Quotation 306 Orphaned Projects 305 Rule 34 304 Midnight Stories 303 Compiling 302 Names 301 Limerick 300 Facebook 299 Aeris Dies 298 Tesla Coil 297 Lisp Cycles 296 Tony Hawk 295 DNE 294 Bookstore 293 RTFM 292 Goto 291 Dignified 290 Fucking Blue Shells 289 Alone 288 Elevator 287 Thank you 286 All Your Base 285 Wikipedian Protester 284 Tape Measure 283 Projection 282 Organic Fuel 281 Online Package Tracking 280 Librarians 279 Pickup Lines 278 Black Hat Support 277 Long Light 276 Fixed Width 275 Thoughts 274 With Apologies to The Who 273 Electromagnetic Spectrum 272 Linux User at Best Buy 271 Powers of One 270 Merlin 269 TCMP 268 Choices: Part 5 267 Choices: Part 4 266 Choices: Part 3 265 Choices: Part 2 264 Choices: Part 1 263 Certainty 262 IN UR REALITY 261 Regarding Mussolini 260 The Glass Necklace 259 Clichd Exchanges 258 Conspiracy Theories 257 Code Talkers 256 Online Communities 255 Subjectivity 254 Comic Fragment 253 Highway Engineer Pranks 252 Escalators 251 CD Tray Fight 250 Snopes 249 Chess Photo 248 Hypotheticals 247 Factoring the Time 246 Labyrinth Puzzle 245 Floor Tiles 244 Tabletop Roleplaying 243 Appropriate Term 242 The Difference 241 Battle Room 240 Dream Girl 239 Blagofaire 238 Pet Peeve #114 237 Keyboards are Disgusting 236 Collecting Double-Takes 235 Kite 234 Escape Artist 233 A New CAPTCHA Approach 232 Chess Enlightenment 231 Cat Proximity 230 Hamiltonian 229 Graffiti 228 Resonance 227 Color Codes 226 Swingset 225 Open Source 224 Lisp 223 Valentine's Day 222 Small Talk 221 Random Number 220 Philosophy 219 Blanket Fort 218 Nintendo Surgeon 217 e to the pi Minus pi 216 Romantic Drama Equation 215 Letting Go 214 The Problem with Wikipedia 213 Ghostbusters Marathon 212 Brain 211 Hamster Ball Heist 210 90's Flowchart 209 Kayak 208 Regular Expressions 207 What xkcd Means 206 Reno Rhymes 205 Candy Button Paper 204 America 203 Hallucinations 202 YouTube 201 Christmas GPS 200 Bill Nye 199 Right-Hand Rule 198 Perspective 197 Ninja Turtles 196 Command Line Fu 195 Map of the Internet 194 Penises 193 The Perfect Sound 192 Working for Google 191 Lojban 190 IPoD 189 Exercise 188 Reload 187 The Familiar 186 Console Lines 185 Wikifriends 184 Matrix Transform 183 Snacktime Rules 182 Nash 181 Interblag 180 Canada 179 e to the pi times i 178 Not Really Into Pokemon 177 Alice and Bob 176 Before Sunrise 175 Automatic Doors 174 That's What SHE Said 173 Movie Seating !172 Skateboarding is Not a Crime 171 String Theory 170 Turn Back 169 Words that End in GRY 168 Reverse Euphemisms 166 Misusing Slang 165 Turn Signals $164 Playing Devil's Advocate to Win 163 Donald Knuth 162 Angular Momentum 161 Accident 160 Penny Arcade Parody 159 Boombox 158 Six Months 157 Filler Art 156 Commented 155 Search History 154 Beliefs 153 Cryptography 152 Hamster Ball 151 Mario 150 Grownups 149 Sandwich 148 Mispronouncing 147 A Way So Familiar 146 Join Myspace !145 Parody Week: Dinosaur Comics 144 Parody Week: A Softer World %143 Parody Week: TFD and Natalie Dee 141 Parody Week: Achewood 140 Delicious *139 I Have Owned Two Electric Skateboards 138 Pointers 137 Dreams 136 Science Fair 135 Substitute 134 Myspace 133 The Raven 132 Music Knowledge 131 Fans 130 Julia Stiles 129 Content Protection 128 dPain over dt 127 The Fast and the Furious 126 Red Spiders Cometh 125 Marketing Interview 124 Blogofractal 123 Centrifugal Force 122 Quirky Girls 121 Balloon 120 Dating Service 119 Worst Band Name Ever 118 50 Ways 117 Pong 116 City 115 Meerkat 114 Computational Linguists 113 XKCD - Riemann-Zeta 112 Baring My Heart -111 Firefox and Witchcraft - The Connection? 110 Clark Gable 109 Spoiler Alert 108 M.C. Hammer Slide 107 Snakes on a Plane! 2 106 Wright Brothers 105 Parallel Universe 104 Find You 103 Moral Relativity 102 Back to the Future 101 Laser Scope 100 Family Circus 99 Binary Heart 98 Fall Apart 97 A Simple Plan 96 Mail 95 The Sierpinski Penis Game 94 Profile Creation Flowchart 93 Jeremy Irons 92 Sunrise 91 Pwned 90 Jacket 89 Gravitational Mass 88 Escher Bracelet 87 Velociraptors 86 Digital Rights Management 85 Paths 84 National Language 83 Katamari 82 Frame 81 Attention, shopper 80 My Other Car 79 Iambic Pentameter 78 Garfield 77 Bored with the Internet 76 Familiar 75 Curse Levels 74 Su Doku 73 Zeppelin 72 Classhole 71 In the Trees 70 Guitar Hero 69 Pillow Talk 68 Five Thirty 67 Nerd Girls 66 Abusive Astronomy 65 Banter 64 Solar Plexus 63 Valentine - Heart 62 Valentine - Karnaugh 61 Stacey's Dad 60 Super Bowl 59 Graduation 58 Why Do You Love Me? 57 Wait For Me 56 The Cure 55 Useless 54 Science 53 Hobby 52 Secret Worlds 51 Malaria 50 Penny Arcade 49 Want 48 Found 47 Counter-Red Spiders 46 Secrets 45 Schrodinger 44 Love 43 Red Spiders 2 42 Geico 41 Old Drawing 40 Light 39 Bowl 38 Apple Jacks 37 Hyphen 36 Scientists 35 Sheep 34 Flowers 33 Self-reference 32 Pillar 31 Barrel - Part 5 30 Donner 29 Hitler 28 Elefino 27 Meat Cereals 26 Fourier 25 Barrel - Part 4 24 Godel, Escher, Kurt Halsey 23 T-shirts 22 Barrel - Part 3 21 Kepler 20 Ferret 19 George Clinton 18 Snapple 17 What If 16 Monty Python -- Enough 15 Just Alerting You 14 Copyright 13 Canyon 12 Poisson 11 Barrel - Part 2 10 Pi Equals "9 Serenity is coming out tomorrow 8 Red spiders 57 Girl sleeping (Sketch -- 11th grade Spanish class) 6 Irony 5 Blown apart 4 Landscape (sketch) 3 Island (sketch) 1 Barrel - Part 1 ` 3 a filterWidget ion resizeControl _filterWidgetUpdateSize end resizeControl on revCacheGeometry p1 _filterWidgetUpdateSize end revCacheGeometry on _filterWidgetUpdateSize local tLockLoc lock screen if (the environment = "development") then put the lockLoc of me into tLockLoc set the lockLoc of me to TRUE if (the height of me <> 30) then set the height of me to 30 end if set the width of img "filterWidgetMiddle" to (the width of me - 46) set the width of fld "searchParams" to (the width of me - 46) set the left of img "filterWidgetLeft" to (the left of me) set the left of img "filterWidgetMiddle" to the right of img "filterWidgetLeft" set the left of img "filterWidgetRight" to the right of img "filterWidgetMiddle" set the left of fld "searchParams" to the right of img "filterWidgetLeft" set the locklocation of img "filterWidgetLeft" to true set the locklocation of img "filterWidgetMiddle" to true set the locklocation of img "filterWidgetRight" to true set the width of me to (the right of img "filterWidgetRight" - the left of me) set the lockLoc of me to tLockLoc end if end _filterWidgetUpdateSize 6 uFieldToFilter cGlxGeneral handlers AmouseUp
rawKeyUp
searchBoxFilter
checksum =?/qazcode 6local sMsgID
local sFieldToFilter # what field is to be filtered out
local sUnfilteredFieldText # the text in the field, unfiltered
local sSearchField # name of the field used to do the filtering
ON rawKeyUp # This handler grabs the raw keys as they're being entered and starts our filtering
IF (sFieldToFilter is EMPTY) THEN
put the id of the target into sSearchField
put the uFieldToFilter of me into sFieldToFilter
END IF
IF (sUnfilteredFieldText is EMPTY) THEN
put (the text of field sFieldToFilter) into sUnfilteredFieldText
END IF
IF ("searchBoxFilter" is in the pendingMessages) THEN cancel sMsgID
IF (field id sSearchField is EMPTY) THEN
set the text of fld sFieldToFilter to sUnfilteredFieldText
put EMPTY into sUnfilteredFieldText
ELSE
send "searchBoxFilter" to me in 1 millisecond
put the result into sMsgID
END IF
END rawKeyUp
ON searchBoxFilter # This handler does the actual filtering of the field
lock screen
lock messages
set the itemdelimiter to TAB
set the text of fld sFieldToFilter to sUnfilteredFieldText
filter fld sFieldToFilter with ("*" & the text of field id sSearchField & "*")
END searchBoxFilter
ON mouseUp # Pass MouseUp to the script in the "x" image
pass mouseUp
END mouseUp
dirty falsehandler_scroll 0varChecking false handler_line 1scroll 0object name searchWidget parent stack searchWidgetchunk immed stack searchWidget cREVGeneral scriptChecksum <''#yzhandlerList 6resizeControl revCacheGeometry _filterWidgetUpdateSizebreakPoints scriptSelection char 517 to 516 bookmarks revUniqueID 1202703913776prevHandler _filterWidgetUpdateSizetempScript scripton resizeControl
_filterWidgetUpdateSize
end resizeControl
on revCacheGeometry p1
_filterWidgetUpdateSize
end revCacheGeometry
on _filterWidgetUpdateSize
local tLockLoc
lock screen
if (the environment = "development") then
put the lockLoc of me into tLockLoc
set the lockLoc of me to TRUE
if (the height of me <> 30) then
set the height of me to 30
end if
set the width of img "filterWidgetMiddle" to (the width of me - 46)
set the width of fld "searchParams" to (the width of me - 46)
set the left of img "filterWidgetLeft" to (the left of me)
set the left of img "filterWidgetMiddle" to the right of img "filterWidgetLeft"
set the left of img "filterWidgetRight" to the right of img "filterWidgetMiddle"
set the left of fld "searchParams" to the right of img "filterWidgetLeft"
set the locklocation of img "filterWidgetLeft" to true
set the locklocation of img "filterWidgetMiddle" to true
set the locklocation of img "filterWidgetRight" to true
set the width of me to (the right of img "filterWidgetRight" - the left of me)
set the lockLoc of me to tLockLoc
end if
end _filterWidgetUpdateSize
filterWidgetLeft @ : WPNG IHDR +v gAMA OX2 tEXtSoftware Adobe ImageReadyqe<