My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
showStatusBar="false"
applicationComplete="onReady()">
<s:layout>
<s:VerticalLayout paddingLeft="10" paddingTop="10" paddingRight="10" paddingBottom="10"/>
</s:layout>
<fx:Script>
<![CDATA[
import com.probertson.data.SQLRunner;

import flash.utils.setTimeout;
protected var _log:String;
protected var _runner:SQLRunner;
protected var _lines:Array;
protected var _curLineIndex:uint=0;
public static const Q:String="SELECT c1Body FROM MessagesFT_content WHERE c0Subject LIKE '%Chat%' LIMIT :limit";
protected function onReady():void {
_runner=new SQLRunner(File.applicationDirectory.resolvePath('gmail.sqlite'));
}
protected function go():void {
btnCopy.enabled=false;
_curLineIndex=0;
ta.text='';
_log='';
_runner.execute(Q, {limit:ns.value}, onRes);
}
protected function onRes(res:SQLResult):void {
if (!res.data) {
ta.text='Error';
return;
}
_lines=res.data;
handleNextLine();
}
protected function handleNextLine():void {
var l:String=_lines[_curLineIndex].c1Body;
l=l.replace(/<blockquote.*?blockquote>/gsi, '');
l=l.replace(/<table.*?table>/gsi, '');
l=l.replace(/<\/blockquote>/g, '');
l=l.replace(/<div.*?>/g, '');
l=l.replace(/<\/div>/g, '\n');
l=l.replace(/<b.*?>/g, '');
l=l.replace(/<\/b>/g, '\n');
l=l.replace(/<a.*?>/g, '');
l=l.replace(/<\/a>/g, '');
l=l.replace(/<WBR>/g, '');
l=l.replace(/<span.*?>/g, '');
l=l.replace(/<\/span>/g, '');
l=l.replace(/^.*?\:\s/gm, '');
l=l.replace(/^.*?(A|P)M\s/gm, '');
l=l.replace(/<br.*?>/g, '\n');
l=l.replace(/<img.*?>/g, '\n');
logLine(l);
logSpace();
trace(_curLineIndex);
_curLineIndex++;
if (_curLineIndex>_lines.length-1) {
trace('Out.');
btnCopy.enabled=true;
return;
}
setTimeout(handleNextLine, 10);
}
protected function logLine(s:String):void {
_log+=s+'\n';
}
protected function logSpace():void {
logLine('\n\n');
}
]]>
</fx:Script>
<s:HGroup width="100%">
<s:NumericStepper id="ns" minimum="1" maximum="9999" stepSize="1" value="50"/>
<s:Button label="Go!" click="go()"/>
<mx:Spacer width="100%"/>
<s:Button label="Copy" click="System.setClipboard(_log)" id="btnCopy"/>
</s:HGroup>
<s:TextArea left="10" top="10" bottom="10" right="10" id="ta" width="100%" height="100%"/>
</s:WindowedApplication>

Change log

r113 by quentin.t on Jun 29, 2011   Diff
[No log message]
Go to: 
Project members, sign in to write a code review

Older revisions

All revisions of this file

File info

Size: 2713 bytes, 82 lines
Powered by Google Project Hosting