Hello,
I updated this wiki page with more accurate information about
the GData (I named it like that :D) format :
http://www.amsn-project.net/wiki/index.php/Gmail
If someone is ready to take on the challenge of finding out how the timestamp
is written, please do so, it
would be nice to have that information ready for when I finish my exams... It's
really easy, I just don't have
much time for it right now...
Also, I'd like to know how you'd like me to implement the 'tell me'
functionality of the plugin... should I show
a popup window with that information (like the official google notifier), or
should I rather show a window with
a listbox of all new emails and the user clicks on the email to see more
information...
I would go with the notify (more userfriendly) but I'm afraid I won't be able
to give the full functionality to
the users (like seeing who initiated a conversation, what the labels are,
attachments, etc... ) easily...
I will also need to have a up/down buttons on the notify window so a user can
view the mail info one by one..
Any suggestions ? someone wants to implement the notify winodw ? Tom perhaps? I
know you love to play with
canvas (and I have near zero knowledge of how canvas work...)
Thanks,
KaKaRoTo
----- Forwarded message from [EMAIL PROTECTED] -----
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: [Amsn-commits] SF.net SVN: amsn: [7657]
trunk/amsn-extras/plugins/gnotify
Revision: 7657
http://svn.sourceforge.net/amsn/?rev=7657&view=rev
Author: kakaroto
Date: 2006-12-13 22:39:46 -0800 (Wed, 13 Dec 2006)
Log Message:
-----------
Updated with some comments and taking into account the 'new' and 'initiator'
keys of an unread mail author information.
Also fixed the timestamp parsing which is two separate keys with values instead
of a single 16 bytes header.
http://www.amsn-project.net/wiki/index.php/Gmail
Modified Paths:
--------------
trunk/amsn-extras/plugins/gnotify/gnotify.tcl
Property Changed:
----------------
trunk/amsn-extras/plugins/gnotify/
Property changes on: trunk/amsn-extras/plugins/gnotify
___________________________________________________________________
Name: svn:ignore
+ *
Modified: trunk/amsn-extras/plugins/gnotify/gnotify.tcl
===================================================================
--- trunk/amsn-extras/plugins/gnotify/gnotify.tcl 2006-12-13 21:17:15 UTC
(rev 7656)
+++ trunk/amsn-extras/plugins/gnotify/gnotify.tcl 2006-12-14 06:39:46 UTC
(rev 7657)
@@ -7,6 +7,8 @@
###################################################################
+# For more information on the format and protocol read this article :
+# http://www.amsn-project.net/wiki/index.php/Gmail
namespace eval ::gnotify {
variable config
variable configlist
@@ -404,13 +406,14 @@
puts "$att "
}
}
- # if {[llength $mail(tags)] > 0 } {
- # puts -nonewline "tags : "
- # foreach tag $mail(tags) {
- # puts -nonewline "$tag, "
- # }
- # }
+ if {[llength $mail(tags)] > 0 } {
+ puts -nonewline "tags : "
+ foreach tag $mail(tags) {
+ puts -nonewline "$tag, "
+ }
+ }
puts ""
+ #puts "Timestamp : $mail(timestamp)"
}
}
}
@@ -634,28 +637,37 @@
set start $data(offset)
set end [expr {$start + $size}]
- set info(author) [list email "" nick ""]
+ set info(author) [list errors 0 email "" nick ""]
+ set info(new) 0
+ set info(initiator) 0
set info(errors) 0
while {$data(offset) < $end } {
set key [ReadKey data]
switch -- $key {
10 {
+ # 0x0A Author info
set size [ReadSize data]
set offset $data(offset)
set info(author) [GetMailAuthor2 data
$size]
set data(offset) [expr {$offset +
$size}]
}
- 16 {
- # unknown
- GetMultiByte $var
+ 16 {
+ # 0x10 Has unread mail
+ # This key specifies whether an email
of this author in the thread is unread
+ if { [GetMultiByte $var] == 1} {
+ set info(new) 1
+ }
}
24 {
- # unknown
- GetMultiByte $var
+ # 0x18 Thread Initiator
+ # This key specifies whether this user
is the one who started the thread
+ if { [GetMultiByte $var] == 1} {
+ set info(initiator) 1
+ }
}
default {
- puts "Unknown author key : $key"
+ puts "Unknown author ($info(author))
key : $key"
incr info(errors)
}
}
@@ -678,11 +690,13 @@
set key [ReadKey data]
switch -- $key {
10 {
+ # 0x0A Email
set size [ReadSize data]
set email [DecodeString [GetBytes data
$size]]
set info(email) $email
}
18 {
+ # 0x12 Name
set size [ReadSize data]
set nick [DecodeString [GetBytes data
$size]]
set info(nick) $nick
@@ -702,9 +716,9 @@
set start $data(offset)
set end [expr {$start + $size}]
- set timestamp_size [GetMultiByte $var]
- set info(timestamp) [GetBytes data $timestamp_size]
+ set info(timestamp) ""
+ set info(timestamp2) ""
set info(attachments) [list]
set info(tags) [list]
set info(authors) [list]
@@ -713,41 +727,59 @@
set info(threads) 1
set info(errors) 0
+
+
while {$data(offset) < $end } {
set key [ReadKey data]
switch -- $key {
+ 16 {
+ # 0x10 unknown / timestamp
+ #puts "Unknown mail key 16 has value :
[GetMultiByte $var]"
+ set info(timestamp) [GetMultiByte $var]
+ }
+ 24 {
+ # 0x18 unknown / timestamp
+ #puts "Unknown mail key 24 has value :
[GetMultiByte $var]"
+ set info(timestamp2) [GetMultiByte
$var]
+ }
130 {
+ # 0x82 Tag
set size [ReadSize data]
set tag [GetBytes data $size]
lappend info(tags) $tag
}
146 {
- # from
+ # 0x92 from
set size [ReadSize data]
set offset $data(offset)
lappend info(authors) [GetMailAuthor
data $size]
set data(offset) [expr {$offset +
$size}]
}
152 {
- # unknown
+ # 0x98 unknown
+ #puts "Unknown mail key 152 has value :
[GetMultiByte $var]"
GetMultiByte $var
}
162 {
+ # 0xA2 Subject
set size [ReadSize data]
set subject [DecodeString [GetBytes
data $size]]
set info(subject) $subject
}
170 {
+ # 0xAA Body preview
set size [ReadSize data]
set body [DecodeString [GetBytes data
$size]]
set info(body) $body
}
178 {
+ # 0xB2 Attachment
set size [ReadSize data]
set attachment [DecodeString [GetBytes
data $size]]
lappend info(attachments) $attachment
}
184 {
+ # 0xB8 Number of threads
set info(threads) [GetMultiByte data]
}
default {
@@ -760,6 +792,8 @@
}
+ # For more information on the format and protocol read this article :
+ # http://www.amsn-project.net/wiki/index.php/Gmail
proc parseGData { data_bin } {
set data(bin) $data_bin
set data(len) [string length $data_bin]
@@ -774,12 +808,14 @@
set key [ReadKey data]
switch -- $key {
10 {
+ # 0x0A New mail Key
set size [ReadSize data]
set offset $data(offset)
lappend info(mails) [GetNewMail data
$size]
set data(offset) [expr {$offset +
$size}]
}
136 {
+ # 0x88 Number of mails Key
set info(nb_mails) [GetMultiByte data]
}
default {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Amsn-commits mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/amsn-commits
----- End forwarded message -----
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Amsn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amsn-devel