~ubuntu-branches/ubuntu/precise/dspam/precise

« back to all changes in this revision

Viewing changes to contrib/plugins/thunderbird/chrome/content/dspam.js

  • Committer: Bazaar Package Importer
  • Author(s): Julien Valroff, Julien Valroff, Thomas Preud'homme
  • Date: 2011-05-08 13:43:52 UTC
  • mfrom: (1.2.1 upstream) (8.2.2 experimental)
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: james.westby@ubuntu.com-20110508134352-dxjx9m6tx1cbzlhq
Tags: 3.9.1~rc1+git20110419.29261fb+dfsg-1
[ Julien Valroff ]
* New git snapshot
* Install all dspam_* tools setgid so that they can be used by standard
  users
* Add symbols file for libdspam7
* Upload to unstable

[ Thomas Preud'homme ]
* Fix permissions on dspam_stats and missing opt-{in,out} directories
  (Closes: #394443)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
var sendListener = {
 
2
 
 
3
onGetDraftFolderURI: function ( folderURI ) {},
 
4
onProgress: function ( msgID , progress , progressMax ) {},
 
5
onSendNotPerformed: function ( msgID , status ) {},
 
6
onStartSending: function ( msgID , msgSize ) {},
 
7
onStatus: function ( msgID , msg ) {},
 
8
 
 
9
onStopSending: function ( msgID , status , msg , returnFileSpec )
 
10
{
 
11
        DeleteJunkMail(this.action);
 
12
},
 
13
 
 
14
        action : 0
 
15
 
 
16
};
 
17
 
 
18
function MoveToFolder()
 
19
{
 
20
 
 
21
}
 
22
 
 
23
 
 
24
var fwdStatus = 0;
 
25
 
 
26
function dspamReportSpam(event) {
 
27
 
 
28
        var validDspamConfig = true;
 
29
        var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
 
30
 
 
31
        try {
 
32
                var spamaction = pref.getIntPref("dspam.spamaction");
 
33
        } catch(e) {
 
34
                spamaction = 0;
 
35
        }
 
36
 
 
37
        try {
 
38
                var spamaddress = pref.getCharPref("dspam.spamaddress");
 
39
        } catch(e) {
 
40
                validDspamConfig = false;
 
41
        }
 
42
 
 
43
        if (spamaction != 0) {
 
44
                try {
 
45
                        var spamfolder = RDF.GetResource(pref.getCharPref("dspam.spamfolder")).QueryInterface(Components.interfaces.nsIMsgFolder);
 
46
                } catch (e) {
 
47
                        validDspamConfig = false;
 
48
                }
 
49
                try {
 
50
                        var hamfolder = RDF.GetResource(pref.getCharPref("dspam.hamfolder")).QueryInterface(Components.interfaces.nsIMsgFolder);
 
51
                } catch (e) {
 
52
                        validDspamConfig = false;
 
53
                }
 
54
        }
 
55
 
 
56
        var folder = GetLoadedMsgFolder();
 
57
        var rootFolder = folder.rootFolder;
 
58
        var messageArray = GetSelectedMessages();
 
59
        var server;
 
60
        server = folder.server;
 
61
        var dbv = GetDBView();
 
62
 
 
63
        if (validDspamConfig == true) {
 
64
 
 
65
                var msgComposeService = Components.classes["@mozilla.org/messengercompose;1"].getService();
 
66
 
 
67
                msgComposeService = msgComposeService.QueryInterface(Components.interfaces.nsIMsgComposeService);
 
68
 
 
69
                messenger.SetWindow(window, msgWindow);
 
70
 
 
71
                if (messageArray && messageArray.length > 0) {
 
72
                        uri = "";
 
73
                        for (var i = 0; i < messageArray.length; ++i) {
 
74
                                var messageUri = messageArray[i];
 
75
 
 
76
                                var hdr = messenger.msgHdrFromURI(messageUri);
 
77
       
 
78
                                folder = hdr.folder;
 
79
                                if (folder) {
 
80
                                        server = folder.server;
 
81
                                }
 
82
       
 
83
                                var accountKey = hdr.accountKey;
 
84
                                if (accountKey.length > 0) {
 
85
                                        var account = accountManager.getAccount(accountKey);
 
86
                                        if (account)
 
87
                                                server = account.incomingServer;
 
88
                                }
 
89
 
 
90
                                var fwdStatus = true;
 
91
 
 
92
                                if (server) {
 
93
                                        try {
 
94
                                                msgComposeService.forwardMessage(spamaddress, hdr, msgWindow, server);
 
95
                                        } catch(e) {
 
96
                                                fwdStatus = false;
 
97
                                        }
 
98
 
 
99
                                        if ( fwdStatus ) {
 
100
                                                if (spamaction == 1) {
 
101
                                                        var out = new Object();
 
102
                                                        var trashFolder = rootFolder.getFoldersWithFlag(MSG_FOLDER_FLAG_TRASH, 1, out);
 
103
                                                        if (trashFolder) {
 
104
                                                                try {
 
105
                                                                        dbv.doCommandWithFolder(nsMsgViewCommandType.moveMessages, trashFolder);
 
106
                                                                } catch(e) {
 
107
                                                                        alert("Error while moving message to Trash Folder.");
 
108
                                                                }
 
109
                                                        } else
 
110
                                                                alert("Could not get Trash folder settings.\nMessage was not moved.");
 
111
                                                        }
 
112
 
 
113
                                                if ((spamaction == 2) && (spamfolder != hamfolder)) {
 
114
                                                        try {
 
115
                                                                        dbv.doCommandWithFolder(nsMsgViewCommandType.moveMessages, spamfolder);
 
116
                                                        } catch(e) {
 
117
                                                                alert("Error while moving message to Spam Folder.");
 
118
                                                        }
 
119
                                                }
 
120
                                        } else {
 
121
                                                alert("la la la.");
 
122
                                        }
 
123
                                } else {
 
124
                                        alert("Unknown Error. Please contact the plugin author.");
 
125
                                }
 
126
 
 
127
                        }
 
128
 
 
129
                } else
 
130
                        alert("You need to select at least one message.");
 
131
        } else {
 
132
                alert("Please check your SPAM reporting options.");
 
133
        }
 
134
 
 
135
}
 
136
 
 
137
 
 
138
function dspamReportHam(event) {
 
139
 
 
140
        var validDspamConfig = true;
 
141
        var pref = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
 
142
 
 
143
        try {
 
144
                var hamaction = pref.getIntPref("dspam.hamaction");
 
145
        } catch(e) {
 
146
                hamaction = 0;
 
147
        }
 
148
 
 
149
        try {
 
150
                var hamaddress = pref.getCharPref("dspam.hamaddress");
 
151
        } catch(e) {
 
152
                validDspamConfig = false;
 
153
        }
 
154
 
 
155
        if (hamaction != 0) {
 
156
                try {
 
157
                        var hamfolder = RDF.GetResource(pref.getCharPref("dspam.hamfolder")).QueryInterface(Components.interfaces.nsIMsgFolder);
 
158
                } catch (e) {
 
159
                        validDspamConfig = false;
 
160
                }
 
161
                try {
 
162
                        var spamfolder = RDF.GetResource(pref.getCharPref("dspam.spamfolder")).QueryInterface(Components.interfaces.nsIMsgFolder);
 
163
                } catch (e) {
 
164
                        validDspamConfig = false;
 
165
                }
 
166
        }
 
167
 
 
168
 
 
169
        var folder = GetLoadedMsgFolder();
 
170
        var messageArray = GetSelectedMessages();
 
171
        var server;
 
172
        server = folder.server;
 
173
 
 
174
        var dbv = GetDBView();
 
175
 
 
176
        if (validDspamConfig == true) {
 
177
 
 
178
                var msgComposeService = Components.classes["@mozilla.org/messengercompose;1"].getService();
 
179
 
 
180
                var count = 0;
 
181
 
 
182
                if (messageArray && messageArray.length > 0) {
 
183
                        for (var i = 0; i < messageArray.length; ++i) {
 
184
                                var messageService = messenger.messageServiceFromURI(messageArray[i]);
 
185
                                var messageStream = Components.classes["@mozilla.org/network/sync-stream-listener;1"].createInstance().QueryInterface(Components.interfaces.nsIInputStream);
 
186
                                var inputStream = Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance().QueryInterface(Components.interfaces.nsIScriptableInputStream);
 
187
                                inputStream.init(messageStream);
 
188
                                try {
 
189
                                        messageService.streamMessage(messageArray[i],messageStream, msgWindow, null, false, null);
 
190
                                } catch (ex) {
 
191
                                        alert("Unknown Error.");
 
192
                                }
 
193
 
 
194
                        }
 
195
                }
 
196
 
 
197
                msgComposeService = msgComposeService.QueryInterface(Components.interfaces.nsIMsgComposeService);
 
198
 
 
199
                messenger.SetWindow(window, msgWindow);
 
200
 
 
201
                if (messageArray && messageArray.length > 0) {
 
202
                        for (var i = 0; i < messageArray.length; ++i) {
 
203
                                var messageUri = messageArray[i];
 
204
                                var hdr = messenger.msgHdrFromURI(messageUri);
 
205
                                folder = hdr.folder;
 
206
                                if (folder) {
 
207
                                        server = folder.server;
 
208
                                }
 
209
       
 
210
                                var accountKey = hdr.accountKey;
 
211
                                if (accountKey.length > 0) {
 
212
                                        var account = accountManager.getAccount(accountKey);
 
213
                                        if (account)
 
214
                                                server = account.incomingServer;
 
215
                                }
 
216
 
 
217
                                if (server) {
 
218
                                        try {
 
219
                                                msgComposeService.forwardMessage(hamaddress, hdr, msgWindow, server);
 
220
                                        } catch(e) {
 
221
                                                alert("la la la.");
 
222
                                        }
 
223
 
 
224
                                        if ((spamfolder != hamfolder) && (hamaction == 1))
 
225
                                                try {
 
226
                                                        dbv.doCommandWithFolder(nsMsgViewCommandType.moveMessages, hamfolder);
 
227
                                                } catch(e) {
 
228
                                                        alert("Error while moving message to Ham Folder.");
 
229
                                                }
 
230
 
 
231
                                } else {
 
232
                                        alert("Unknown Error.");
 
233
                                }
 
234
        
 
235
                        }
 
236
                } else
 
237
                        alert("You need to select at least one message.");
 
238
        } else {
 
239
                alert("Please check your HAM reporting options.");
 
240
        }
 
241
 
 
242
}
 
243