aMSN Forums

The Community => Plugins => Topic started by: Zaskar on December 31, 2006, 09:01:46 pm



Title: Winks pluggin, a little work
Post by: Zaskar on December 31, 2006, 09:01:46 pm
===================================================    
   Here is the last version: http://in.solit.us/archives/download/16486
===================================================

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Now, here begins the original first post:

Hi, I'm working in something like a winks plugin. At the moment, I can send some winks. That's what I do: I ask for a file (that file is the .cab file that must be extracted from the .mco file, that is a cab itself), then I prepare an msnobj to send (code stolen from protocol.tcl, but with some modifications), and finally cut it into many chuks and send each chunk with its header. Some winks work in that way (like kiss, frog or guitar smash), but many others don't. I'm trying to figure out why. But I see with a sniffer that when msn 7.0 send the kiss I receive 3 chunks, but sending in that way requieres about 15 chunks. Does anyone know why is that difference? What should I be sending instead of that file? You can see that the message for the kiss is hardcoded for the rigth click event as an example.
The code (very very dirty, be patience) is here. You will also need to add a line like:
   ::MSN::setClientCap winks
in load_config in config.tcl (how can I do this from the plugin?) and two pictures (pixmaps/winksbut_hover.png and winksbut.png).

Code:


namespace eval ::winks {
proc Init { dir } {
::plugins::RegisterPlugin "Winks"
::plugins::RegisterEvent "Winks" chatwindowbutton AddWinksButton
::skin::setPixmap butwinks winksbut.png pixmaps [file join $dir pixmaps]
::skin::setPixmap butwinks_hover winksbut_hover.png pixmaps [file join $dir pixmaps]
}


proc AddWinksButton { event evpar } {
upvar 2 $evpar newvar

set buttonbar $newvar(bottom)

set winksbut $buttonbar.winksbut
label $winksbut -image [::skin::loadPixmap butwinks] -relief flat -padx 0 \
-background [::skin::getKey buttonbarbg] -highlightthickness 0 -borderwidth 0 \
-highlightbackground [::skin::getKey buttonbarbg] -activebackground [::skin::getKey buttonbarbg]
pack $winksbut -side left -padx 0 -pady 0

set window $newvar(window_name)

bind $winksbut <<Button3>> "after 1 ::winks::send_via_queue $newvar(window_name)"
bind $winksbut <<Button1>> "after 1 ::winks::send_wink $newvar(window_name)"
bind $winksbut  <Enter> "$winksbut configure -image [::skin::loadPixmap butwinks_hover]"
bind $winksbut  <Leave> "$winksbut configure -image [::skin::loadPixmap butwinks]"
}


proc log {message} {
plugins_log Winks $message
}


proc send_wink {window_name} {

set chatid [::ChatWindow::Name $window_name]

set filename [chooseFileDialog]

set sbn [::MSN::SBFor $chatid]

set Creator [::config::getKey login]
set type 8

#MSNOBJECT

global msnobjcontext

if { [file exists $filename] == 0 } { return "" }
set fd [open $filename r]
fconfigure $fd -translation binary
set data [read $fd]
close $fd

set file $filename
set size [string length $data]
set sha1d [::base64::encode [binary format H* [::sha1::sha1 $data]]]
set sha1c [::base64::encode [binary format H* [::sha1::sha1 "Creator${Creator}Size${size}Type${type}Location${file}.tmpFriendlyAAA=SHA1D${sha1d}"]]]


# SEND CHUNCKS
set maxchars 1202

set sb [::MSN::SBFor $chatid]
if { $sb == 0 } {
return
}

set fd [open $file r]
fconfigure $fd -translation {binary binary}
set data [read $fd]
close $fd

set data [::base64::encode $data]
set data [string map { "\n" ""} $data]
set data "ID: 2\r\nData: <msnobj Creator=\"$Creator\" Size=\"$size\" Type=\"$type\" Location=\"[urlencode $file].tmp\" Friendly=\"AAA=\" SHA1D=\"$sha1d\" SHA1C=\"$sha1c\" stamp=\"$data\"/>\r\n\r\n"
set chunks [expr {int( [string length $data] / $maxchars) + 1 } ]


status_log "Wink data : $data\nchunks : $chunks\n"

for {set i 0 } { $i < $chunks } { incr i } {
set chunk [string range $data [expr $i * $maxchars] [expr ($i * $maxchars) + $maxchars - 1]]
set msg ""
if { $i == 0 } {
set msg "MIME-Version: 1.0\r\nContent-Type: text/x-msnmsgr-datacast\r\n"
if { $chunks == 1 } {
set msg "${msg}\r\n$chunk"
} else {
set msgid "[format %X [myRand 4369 65450]][format %X [myRand 4369 65450]]-[format %X [myRand 4369 65450]]-[format %X [myRand 4369 65450]]-[format %X [expr { int([expr {rand() * 1000000}])%65450 } ] + 4369]-[format %X [myRand 4369 65450]][format %X [myRand 4369 65450]][format %X [myRand 4369 65450]]"
set msg "${msg}Message-ID: \{$msgid\}\r\nChunks: $chunks\r\n\r\n$chunk"
}
} else {
set msg "${msg}Message-ID: \{$msgid\}\r\nChunk: $i\r\n\r\n$chunk"
}
set msglen [string length $msg]

::MSN::WriteSBNoNL $sbn "MSG" "U $msglen\r\n$msg"

}



#MINE
amsn::WinWrite $chatid "\n[timestamp] A wink was send to [::abook::getDisplayNick $chatid]." green

}

proc send_via_queue {window_name} {
set chatid [::ChatWindow::Name $window_name]
::MSN::ChatQueue $chatid [list ::winks::SendWink $window_name]
}
proc SendWink {window_name} {

#Find the SB
set chatid [::ChatWindow::Name $window_name]
::winks::log "\nStart sending winks to <[::abook::getDisplayNick $chatid]>\n"

::winks::SendPackets $chatid
}

proc SendPackets {chatid} {
set sbn [::MSN::SBFor $chatid]

#Write the packet

set msg  "MIME-Version: 1.0\r\nContent-Type: text/x-msnmsgr-datacast\r\nMessage-ID: {E9754E2A-DE52-4C43-9925-7321B478467B}\r\nChunks: 3\r\n\r\nID: 2\r\nData: <msnobj Creator=\"zaskar_@hotmail.com\" Size=\"10224\" Type=\"8\" Location=\"TFR2A.dat\" Friendly=\"QgBlAHMAbwAAAA==\" SHA1D=\"alxGH/FbmTzeLEdtRHmv6GBUzdw=\" SHA1C=\"KISfavcHuWaQdiqEXHauRljIHSc=\" stamp=\"MIIInQYJKoZIhvcNAQcCoIIIjjCCCIoCAQExCzAJBgUrDgMCGgUAMCwGCSqGSIb3DQEHAaAfBB1hbHhHSC9GYm1UemVMRWR0UkhtdjZHQlV6ZHc9UKCCBrQwggawMIIFmKADAgECAgoFFrAoAAEAAAAJMA0GCSqGSIb3DQEBBQUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1TTiBDb250ZW50IEF1dGhlbnRpY2F0aW9uIENBMB4XDTA1MDIyNTE4MDM0OFoXDTA1MDMxNTE4MTM0OFowUTESMBAGA1UEChMJTWljcm9zb2Z0MQwwCgYDVQQLEwNNU04xLTArBgNVBAMTJDZhMjRkMTEwLWM2YmQtNDc2Ni1iMGNkLTU4YTBlMzc5NDlhNzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0NIN35EKdW/q7ZaDI7IasI6m0T/ta19mxTBsyBA6C10NZ7TRM86QXw5WisYKBxS3jbupgo2D5hTHd4c7MStRM0efUgJDLTyzM7Kojem+FF16FYgEYaOeI2pSFZhP5I731B0k5jRwzMpQ6wlKg86diKv8PFUwOiOws41gfjCymvcCAwEAAaOCA+EwggPdMB0GA1UdDgQWBBTyHJ1dnGaT1pVQmP/YelVTNvYmMTAfBgNVHSUEGDAWBggrBgEFBQcDCAYKKwYBBAGCNzMBAzCCAksGA1UdIASCAkIwggI+MIICOgYJKwYBBAGCNxUvMIICKzBJBggrBgEFBQcCARY9aHR0cHM6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvc3NsL2Nwcy9NaWNyb3NvZnRNU05Db250ZW50Lmh0bTCCAdwGCCsGAQUFBwICMIIBzh6CAcoATQBpAGMAcgBvAH"
set msg_len [string length $msg]
::MSN::WriteSBNoNL $sbn "MSG" "U $msg_len\r\n$msg"

set msg  "Message-ID: {E9754E2A-DE52-4C43-9925-7321B478467B}\r\nChunk: 1\r\n\r\nMAbwBmAHQAIABkAG8AZQBzACAAbgBvAHQAIAB3AGEAcgByAGEAbgB0ACAAbwByACAAYwBsAGEAaQBtACAAdABoAGEAdAAgAHQAaABlACAAaQBuAGYAbwByAG0AYQB0AGkAbwBuACAAZABpAHMAcABsAGEAeQBlAGQAIABpAG4AIAB0AGgAaQBzACAAYwBlAHIAdABpAGYAaQBjAGEAdABlACAAaQBzACAAYwB1AHIAcgBlAG4AdAAgAG8AcgAgAGEAYwBjAHUAcgBhAHQAZQAsACAAbgBvAHIAIABkAG8AZQBzACAAaQB0ACAAbQBhAGsAZQAgAGEAbgB5ACAAZgBvAHIAbQBhAGwAIABzAHQAYQB0AGUAbQBlAG4AdABzACAAYQBiAG8AdQB0ACAAdABoAGUAIABxAHUAYQBsAGkAdAB5ACAAbwByACAAcwBhAGYAZQB0AHkAIABvAGYAIABkAGEAdABhACAAcwBpAGcAbgBlAGQAIAB3AGkAdABoACAAdABoAGUAIABjAG8AcgByAGUAcwBwAG8AbgBkAGkAbgBnACAAcAByAGkAdgBhAHQAZQAgAGsAZQB5AC4AIDALBgNVHQ8EBAMCB4AwgaEGA1UdIwSBmTCBloAUdeBjdZAOPzN4/ah2f6tTCLPcC+qhcqRwMG4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xGDAWBgNVBAMTD01TTiBDb250ZW50IFBDQYIKYQlx2AABAAAABTBLBgNVHR8ERDBCMECgPqA8hjpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NU05Db250ZW50Q0EuY3JsME4GCCsGAQUFBwEBBEIwQDA+BggrBgEFBQcwAoYyaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0L01TTkNvbnRlbnRDQS5jcnQwDQYJKoZIhvcNAQEFBQADggEBAHDQBEIIaOolQ2dE9BH/5LHdW9r+j2kW5n77eXxVimhSVKrFSPzTSjAdtSt0Co+88nXpcJABZq+v1sIVQLFh79hJyyXes1tokNE4aqdpsI6/Eqzrfs5LtTxPmGqxPTP5EaEKQTlC"
set msg_len [string length $msg]
::MSN::WriteSBNoNL $sbn "MSG" "U $msg_len\r\n$msg"


set msg  "Message-ID: {E9754E2A-DE52-4C43-9925-7321B478467B}\r\nChunk: 2\r\n\r\nX1S7j2hosLAumG6SvrCNWpqNDXk34ZOzMfJkxBAHK85QTzX7vEgQWkCCygS88VkqXO78L2bFk5vw/vxhqfSBskEmn35U3apsEfzJTm4QPpE+WveskYLZUkg3PTMEpS+53+ZnvAk40rbzJhhdO8lfFCL4RNU9igYa8TiRznuxQ7Fq+PclPGUVa7onZafyGy1zMbIgKWiWX7A5TqIxggGQMIIBjAIBATCBijB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NU04gQ29udGVudCBBdXRoZW50aWNhdGlvbiBDQQIKBRawKAABAAAACTAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDUwMzA3MjAxMjI2WjAjBgkqhkiG9w0BCQQxFgQUCSImtwu6i2GnKmxSZ2lqK5bOXEgwDQYJKoZIhvcNAQEBBQAEgYCfqODRDkr0yl3y0BJtVSw/i3lbscq6IGlIu91qmxd15tus8aMmCn31u+Gr/LjOa5u9GowtkNGtsCbp9o0F4yvAQLPHNGkK4YboTvqpXxsn9oUwnwXx3OoUzF2LSSIl4FxxZbrpXln1yFCbMFkUZI72QwyNHwLOCHQ4NTioI1WaGA==\"/>\r\n\r\n"
set msg_len [string length $msg]
::MSN::WriteSBNoNL $sbn "MSG" "U $msg_len\r\n$msg"

amsn::WinWrite $chatid "\n[timestamp] A kiss was send to [::abook::getDisplayNick $chatid]." green

return

}

proc SendButtonPressed { window } {
global HOME
set filename [chooseFileDialog]
if { $filename != "" } {
if { [info exists ::env(TEMP) ] } {
if {[catch {::picture::Convert $filename [file join $::env(TEMP) "inktosend.gif"]} res]} {
msg_box $res
return
}
::amsn::InkSend $window [file join $::env(TEMP) "inktosend.gif"]
} else {
if {[catch {::picture::Convert $filename [file join "/tmp" "inktosend.gif"]} res]} {
msg_box $res
return
}
::amsn::InkSend $window [file join /tmp "inktosend.gif"]
}
}
}
}




Code:

<?xml version="1.0"?>
<plugin>
<name>Winks</name>
<author>Pablo Novara and others ;) (some code taken from Nudge plugin, some from amsn's protocol, ...)</author>
<description>Winks!!!!!.</description>
<amsn_version>0.95</amsn_version>
<plugin_version>0.1</plugin_version>
<plugin_file>winks.tcl</plugin_file>
<plugin_namespace>winks</plugin_namespace>
<init_procedure>Init</init_procedure>
</plugin>


Again, it's really very dirty, there's missing many things (some of them easy to code, others I don't know) some menu for the button (something like bigsmileys menu with the pngs that comes in the cab file), it should check that the other client supports winks before sending, should receive winks (see if any msnobj is type 8, extract the file and play the swf with some external configurable player), etc; but that's my first day of working on it, and I'll wait for ideas or suggestions, or anything.

Another question: Where can I upload periodically a zip file for testing instead of pasting so many code here?

P.S.: Happy New Year for everyone!!!


Title: Winks pluggin, a little work
Post by: Kalinda on January 01, 2007, 03:48:15 am
Ooo; cool! Thanks! Of course, I lack the understanding to use it as is.. buut.. I believe it belongs in the SVN, you need to be a delveoper to access it. Perhaps you could upload it someplace like sendspace or yousendit? Or if you have web space...

I suppose I could host it for you, since I have webspace. Upload it to one of the above and I'll upload it to my server. Unless you can somehow get it into the SVN.. Use kate_baggins@yahoo.ca for yousendit.com

Happy New Year to you, too! Thanks for this!


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 01, 2007, 11:30:13 am
here's some ideas http://www.amsn-project.net/forums/viewtopic.php?p=13643#13643
good job :)


Title: Winks pluggin, a little work
Post by: Zaskar on January 01, 2007, 07:39:38 pm
Now I can "receive" some winks. The code I have sees if there's any wink message, strips the wink's cab from the msnobj and write that content into a file. This file should be open with some tools like cabextract and gnash for example (I'll wotk on this later). But again the same trouble: when you send the winks that comes with msn7 they don't send the cab file, they send something instead that I still don't know what it is (the magic command "file" says just data). If someone knows something else about that will be welcome... That's the new code:

Code:


proc Init { dir } {
...
::plugins::RegisterEvent Winks chatwindowbutton AddWinksButton
::plugins::RegisterEvent Winks DataCastPacketReceived received
...
}


proc received { event evpar } {
upvar 2 $evpar args
upvar 2 $args(chatid) chatid
upvar 2 $args(nick) nick
upvar 2 $args(msg) msg

set header "[$msg getHeader Content-Type]"
set ID "[$msg getField ID]"

if {$header == "text/x-msnmsgr-datacast" && $ID == "2"} {

amsn::WinWrite $chatid "\n[timestamp] A wink was received from [::abook::getDisplayNick $chatid]. \n" green


#get the msnobj
set data [$msg getBody]

# extract the stamp field from the msnobj
set stamp [split $data " "]
set idx [lsearch $stamp "stamp=*"]
set stamp [lindex $stamp $idx]
set stamp [string range $stamp 7 end-7]

#amsn::WinWrite $chatid "\n STAMP: $stamp \n" green

set data [::base64::decode $stamp]

set filename "/wink/2/booga"
set fileId [open $filename "w"]
fconfigure $fileId -translation binary
puts -nonewline $fileId $data
close $fileId

}

}


Is there any programmer reading that??? I'm learning tcl on the way, so it's not the best code, but works for the moment.


Title: Winks pluggin, a little work
Post by: Zaskar on January 02, 2007, 12:45:45 am
Ok, here's what I found till now (I'm writting everything here because I don't know if someone else is working in something like this):

I have many .mco files, that are really .cab files that contains two files inside: One is another .cab (usually named TFXXX.cab) that contains the little tumbnail (little image, png), a content.xml with some properties from the .swf (name, size, version, etc) and the .swf. The other one is a content.xml that containt the cab name, a stamp field, a other things, like a field saying if the content is or not public. Note that there are two content.xml. The first one is inside the .mco gile, the second one is inside the .cab file.

For sending a wink, we should send a message with an msnobj preceded by a line "ID: 2" and the word "Data: ". The msnobj shold say "8" in the "type" field, and include the wink name encoded with base64 int the "friendly" field, the .cab file name in the "file" field and at the end an extra field called "stamp" that contains the stamp field that we see in the first "content.xml"... I'm experimenting with it now.
But, if we put in the stamp file, instead of that, the whole .cab file encoded with base64 and the other side client knows the wink, it works. The trouble is that in that way we send many more chunks thant in the first one.

For receiving winks, we intercept any msnobj, see if the type field says 8, extract the stamp, decode with base64 and then: if that's the cab file, extract content.xml and the swf and reproduce with some external player. If not, that's when we receive the true stamp field (the most common way), I still don't know what to do.


Googling for wink's protocol, I read that the stamp is like a signature for the wink. When the client get the message, looks for the wink in its cache, and if it's not there, ask for it (the cab file).

About the code, my plugin at this moment can send winks in the long (not good) way; there some bugs for sending them in the correct one, but I'm working on it, and when reciving it just tells you the wink's name and if it contain the whole cab, put it into a file.


That's all what... I'll continue reading and doing tests. If there's someone who have a better idea about how it works or how it should be done will be welcome.


Title: Winks pluggin, a little work
Post by: Zaskar on January 02, 2007, 08:15:59 am
Here's my little progress:
For sending: that code will ask for a file, that is the .mco file. It will decompress it in a temp folder (replace "/wink/tmp" for something better") using cabextract and read the content.xml file for makin the msnobj. Then the msnobj will be sent and if the other client knows the wink (that is, the wink is one of the standards or is in chache) it will play it. If the other client doesn't know the wink, will send an invite message asking for it (the TFxxx.cab). I still don't know how to response the invite, can anyone put a little light on it? (I'm reading protocol.tcl and msnp2p.tcl).
For receiving: it gets the msnobject, strips the wink name and show a message. It should use the sha1d to compare with the winks in cache (there's no wink's cache yet) and if it's not there ask for the cab file using an invite message (that doesn't work yet). Again, any suggestion?

About setting the clientcap, its solved. About using an external player, I've test many winks with gnash and they work ok.


Code:

namespace eval ::winks {
proc Init { dir } {
::MSN::setClientCap winks
::plugins::RegisterPlugin Winks
::plugins::RegisterEvent Winks chatwindowbutton AddWinksButton
::plugins::RegisterEvent Winks DataCastPacketReceived received
::plugins::RegisterEvent Winks PacketReceived received
::skin::setPixmap butwinks winksbut.png pixmaps [file join $dir pixmaps]
::skin::setPixmap butwinks_hover winksbut_hover.png pixmaps [file join $dir pixmaps]
}


proc AddWinksButton { event evpar } {
upvar 2 $evpar newvar

set buttonbar $newvar(bottom)

set winksbut $buttonbar.winksbut
label $winksbut -image [::skin::loadPixmap butwinks] -relief flat -padx 0 \
-background [::skin::getKey buttonbarbg] -highlightthickness 0 -borderwidth 0 \
-highlightbackground [::skin::getKey buttonbarbg] -activebackground [::skin::getKey buttonbarbg]
pack $winksbut -side left -padx 0 -pady 0

set window $newvar(window_name)

bind $winksbut <<Button1>> "after 1 ::winks::send_wink $newvar(window_name)"
bind $winksbut  <Enter> "$winksbut configure -image [::skin::loadPixmap butwinks_hover]"
bind $winksbut  <Leave> "$winksbut configure -image [::skin::loadPixmap butwinks]"
}


proc received { event evpar } {
upvar 2 $evpar args
upvar 2 $args(chatid) chatid
upvar 2 $args(nick) nick
upvar 2 $args(msg) msg


set header "[$msg getHeader Content-Type]"
set ID "[$msg getField ID]"

if {$header == "text/x-msnmsgr-datacast" && $ID == "2"} {

#get the msnobj
set data [$msg getBody]
set lista [split $data " "]

# extract the winkname field from the msnobj
set idx [lsearch $lista "Friendly=*"]
set winkname [lindex $lista $idx]
set winkname [string range $winkname 10 end-1]
set winkname [string map {"\x00" ""} [base64::decode $winkname] ]
#set winkname [urldecode $winkname]

# notify in chatwindow
::ChatWindow::MakeFor $chatid
amsn::WinWrite $chatid "\n" green
amsn::WinWriteIcon $chatid greyline 3
amsn::WinWrite $chatid "\n[timestamp] Received wink: \"$winkname\".\n" green
amsn::WinWriteIcon $chatid greyline 3


# extract the stamp field from the msnobj
set idx [lsearch $lista "stamp=*"]
set stamp [lindex $lista $idx]
set stamp [string range $stamp 7 end-7]
set stamp [::base64::decode $stamp]

# extract the sha1d
set idx [lsearch $lista "sha1d=*"]
set sha1d [lindex $lista $idx]
set lista [split $sha1d "\""]
set sha1d [lindex $lista 1]

# extract creator's email
set idx [lsearch $lista "Creator=*"]
set user [lindex $lista $idx]
set lista [split $user "\""]
set user [lindex $lista 1]

#create_dir [file join $HOME winks]

set data [string range $data 13 end-4]

amsn::WinWrite $chatid "\nDATA:$data\n" green

# ask for the cab file?????
::MSNP2P::RequestObjectEx $chatid $user $data "wink"

amsn::WinWrite $chatid "\nAsked for something!\n" green

# write stamp to a file
# set filename "/wink/2/booga"
# set fileId [open $filename "w"]
# fconfigure $fileId -translation binary
# puts -nonewline $fileId $data
# close $fileId

}

}


proc send_wink {window_name} {

set chatid [::ChatWindow::Name $window_name]


set winks_dir "/wink/tmp"
set filename [chooseFileDialog]
set winkname [string map { ".MCO" "" } $filename]

exec "cabextract" "$filename" "-d" "$winks_dir" "-q"
set filename "${winks_dir}/content.xml"


# -----------------------------
#  open and pharse content.xml
# -----------------------------

# read file
if { [file exists $filename] == 0 } {
amsn::WinWrite $chatid "\nCan't open content.xml" red
return ""
}
set fd1 [open $filename r]
set data [read $fd1]
close $fd1

# separate fields
set tmp_list [split $data " "]

# get field "file"
set tmp_idx [lsearch $tmp_list "file=*"]
set tmp_item [lindex $tmp_list $tmp_idx]
set tmp_list_2 [split $tmp_item "\""]
set cabfile [lindex $tmp_list_2 1]

# get field "stamp"
set tmp_idx [lsearch $tmp_list "stamp=*"]
set tmp_item [lindex $tmp_list $tmp_idx]
set tmp_list_2 [split $tmp_item "\""]
set stamp [lindex $tmp_list_2 1]

# ---------------
#  read cab file
# ---------------

# read file
set filename [string map { "content.xml" "" } $filename]
set filename "$filename$cabfile"
if { [file exists $filename] == 0 } {
return ""
amsn::WinWrite $chatid "\nCan't open cab file." red
}
set fd2 [open $filename r]
fconfigure $fd2 -translation binary
set data [read $fd2]
close $fd2


# ------------------
#  build the msnobj
# ------------------

set sbn [::MSN::SBFor $chatid]
set Creator [::config::getKey login]
set type 8
set size [string length $data]

set location $cabfile
set location [urlencode $filename]
# set winkname $???
set friendly [::base64::encode $winkname]

  set sha1d [::base64::encode [binary format H* [::sha1::sha1 $data]]]
set sha1c [::base64::encode [binary format H* [::sha1::sha1 "Creator${Creator}Size${size}Type${type}Location${location}.tmpFriendly${friendly}=SHA1D${sha1d}"]]]


# -------------
#  send chunks
# -------------

set maxchars 1202

set sb [::MSN::SBFor $chatid]
if { $sb == 0 } { return }

set data "ID: 2\r\nData: <msnobj Creator=\"$Creator\" Size=\"$size\" Type=\"$type\" Location=\"$location\" Friendly=\"$friendly\" SHA1D=\"$sha1d\" SHA1C=\"$sha1c\" stamp=\"$stamp\"/>\r\n"

set chunks [expr {int( [string length $data] / $maxchars) + 1 } ]

status_log "Wink data : $data\nchunks : $chunks\n"

for {set i 0 } { $i < $chunks } { incr i } {
set chunk [string range $data [expr $i * $maxchars] [expr ($i * $maxchars) + $maxchars - 1]]
set msg ""
if { $i == 0 } {
set msg "MIME-Version: 1.0\r\nContent-Type: text/x-msnmsgr-datacast\r\n"
if { $chunks == 1 } {
set msg "${msg}\r\n$chunk"
} else {
set msgid "[format %X [myRand 4369 65450]][format %X [myRand 4369 65450]]-[format %X [myRand 4369 65450]]-[format %X [myRand 4369 65450]]-[format %X [expr { int([expr {rand() * 1000000}])%65450 } ] + 4369]-[format %X [myRand 4369 65450]][format %X [myRand 4369 65450]][format %X [myRand 4369 65450]]"
set msg "${msg}Message-ID: \{$msgid\}\r\nChunks: $chunks\r\n\r\n$chunk"
}
} else {
set msg "${msg}Message-ID: \{$msgid\}\r\nChunk: $i\r\n\r\n$chunk"
}
set msglen [string length $msg]

::MSN::WriteSBNoNL $sbn "MSG" "U $msglen\r\n$msg"

}

# -----------------------
#  notify in chat window
# -----------------------

amsn::WinWrite $chatid "\n" green
amsn::WinWriteIcon $chatid greyline 3
amsn::WinWrite $chatid "\n[timestamp] Sent wink: \"$winkname\".\n" green
amsn::WinWriteIcon $chatid greyline 3


}

}


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 02, 2007, 11:13:42 am
wow, you're working hard on it! :)


Title: Winks pluggin, a little work
Post by: kakaroto on January 02, 2007, 06:48:04 pm
Hello, hi there :)
Happy to see someone working on winks again. GrdScarabe was working on them but then he got busy and never finished his plugin. I don't know where he is now :(
sorry if I write a little bit harsh, I don't have much time.
1 - thx for doing this and I hope you'll finish it soon.
2 - you seem to have some reverse engineering skill,s that's cool, how do you like that? :)
3 - did you take the time to look at kmess code to see how it's done ?
4 - you could post a zip archive with the winks as .cab files in them, instead of pasting the code here and have no winks to test with
5 - you should use amsn's API a bit more (I know, no docs, you'll have to search for the functions), I think there is already one to create an msnobj, and the most important thing about it is that, when you call create_msnobj, what it does is that, once it generates the msnobj, it will automatically add it to a map table and associate a file with it, so whenever the other user requests that msnobj, amsn will automatically handle it and send the appropriate file.
6 - I see you used :  
Code:

         # ask for the cab file?????
         ::MSNP2P::RequestObjectEx $chatid $user $data "wink"

that's a good API to use, but by specifying "wink", amsn won't recognize that, so when we receive the data, it will not know where to store it, so that could be a problem. if you specify something like "voiceclip" or "bicon" (I think), you'll see the file appear in the voicelips/cache/ or dispalypics/cache/ directories. with "wink", it will be stored nowhere.. hoping it won't cause a bug either... just to let you know...
7 - how it probably works is that, you send the x-msnmsgr-datacast message with the ID and stamp. the stamp is probably some way for M$ to uniquely identify each winks. So you should see if you already received a file with that stamp (looking for a file in winks/${stamp}.cab for example), you use that file, if not, then you request it. I didn't test or anything, but I suppose it's the 'normal' way, you just need to request the msnobj with the msnp2p invite schema...
take a look at how to send a voice clip :
Code:

proc SendVoiceClip {chatid file } {
set sbn [::MSN::SBFor $chatid]
set msnobj [create_msnobj [::config::getKey login] 11 $file]

set msg "MIME-Version: 1.0\r\nContent-Type: text/x-msnmsgr-datacast\r\n\r\nID: 3\r\nData: $msnobj\r\n\r\n"
set msg_len [string length $msg]

#Send the packet
::MSN::WriteSBNoNL $sbn "MSG" "U $msg_len\r\n$msg"

# Let the magic do the rest... (the INVITE will be sent by the other client requesting the msnobj
# created with [create_msnobj] which also links the msnobj to the filename which will be automatically sent)
}

as you can see in msnp2p.tcl, this piece of code explains it all for you. You should probably do the exact same in your plugin. just create the msnobj correctly, send the datacast, and leave the rest to amsn's internals.

8 - you said :
Quote
You will also need to add a line like:
::MSN::setClientCap winks
in load_config in config.tcl (how can I do this from the plugin?) and two pictures (pixmaps/winksbut_hover.png and winksbut.png).

easy to do.. you just need to call that function from the Init proc of your plugin, and call it with the extra 0 argument to unset it in the DeInit proc, this way that setting will change according to who has the plugin loaded and whenever the user loads/unloads the plugin, not only when the config is being read.

I think that's it.. can't remember anything else.
Note that I'm a bit busy and didn't get time to read the whole post, or the code, so if I say something wrong, sorry about that.


Title: Winks pluggin, a little work
Post by: Zaskar on January 03, 2007, 07:53:45 pm
Hi kakaroto. Thanks for your answer. Finally someone say something.

1) I've just come to post my news and I've just seen your message, so that code doesn't consider what you said. I'll read that now I'll what can be improved.

2) I didn't knew that someone else have been working on winks. I've started all again., my mistake.

3) I've read the kmess code very quickly, and I didn't found anything to obvious. I'll watch it more carefully in these days, I hope.

4) It would be great that someone else test the plugin. Please tell me where to upload it or who should I send it to. I have the code, and some winks (some of them are the standard ones) to test that I've found in the web. I don't know if I can distribute the non standard ones, but they are easy to find googling. Consider that it's not finished yet.

5) The state of the plugin is the following:
   a) There's a menu now (like bigsmiley's one) that let you choose the wink to send by its thumbnail (and you can play it locally as a preview with right click).
   b) You can add a new wink (right click in the wink icon) from an mco file (messenger content object or shomething like this, its just a cab).
   c) You can "send" winks only if the other client knows it.
   d) You can receive the wink message and if you have that wink it will be played, if not, you'll see only its name.
   e) The winks are stored in a folder named "winks" in the $HOME folder (example: /home/zaskar/.amsn/zaskar__hotmail_com/winks). There I make a new folder for every wink called as the cab file, that contains the cab file and its content extracted (three files: .xml, .swf and .png). There's also an index.xml in the winks folder that keeps the names, the stamps, the cab paths, the thumbnail paths, the swf paths, and the sha1ds (that we use to recognize a wink when it comes); and a tmp folder where we extract the temp data (usually the mco's  content.xml).
   g) The config options are three: the flash player (defaul: gnash), the cab extractor (default: cabextract) and a close_on_leave bool that prevent the menu bug in beryl/compiz managers.


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 03, 2007, 08:07:14 pm
http://in.solit.us/ is nice to host files
for a quicker alternative http://www.box.net/lite

bye


Title: Winks pluggin, a little work
Post by: Zaskar on January 03, 2007, 08:26:04 pm
Many thanks kakaroto!!!! I didn't knew that amsn managed in that way msnobjects, now I can send (almost) any wink!!!

About using the api, I had to modify the createmsnobj because I needed to add the stamp field, and modify the friendly field. That's why I say that it's not a clean code at all, but first I want to get it working, then we'll think about cleaning.

About getting the cab file from the other client, I think I can use RequestObject with type "filetransfer" so I can put the cab where I want (and get a cool progress window). Where should I use the filename, I've tried to modify RequestObject and set it in the sessionList parameter, but something goes wrong. I first get an error that says:

can not find channel named "0"
    while executing
"fconfigure $fd -translation {binary binary}"

then, if I ignore that error, the file transfer begin and stop forever in 98%. Any suggestion about amsn internals?

The way it works is by adding those lines

            } elseif {$type == "wink" } {
               create_dir [file join $HOME voiceclips]
               create_dir [file join $HOME voiceclips cache]
               set fd [open "[file join $HOME winks $filename $filename]" w]
            }

and those others

               } elseif { [lindex [SessionList get $cSid] 7] == "wink" } {
                  ::winks::ReceivedWink $chatid $file

in MSNP2P::ReadData just after the voiceclips ones.


Title: Winks pluggin, a little work
Post by: Zaskar on January 04, 2007, 05:12:13 am
Great news... It's working!!!!. It can send and receive any winks (test needed, but worked for me)...
There's a menu, some configuration for the flash player (tests made with gnash)..., still depends on cabextract (but there are versions for many platforms and is very small), you can add winks, you can keep the winks you receive, etc...

The only problem is that receiving new winks works with the modified protocol.tcl as I said in previous message (thanks again kakaroto for the voiceclip example, some lines of code worths thousands words). How can I solve it??? ¿Any developer over there?

I'll wait for an answer to upload the first beta release... If no one says anything I'll have to upload the protocol.tcl too, at least for testing.

Oh, another little think... If I want to send the wink to contact who has closed the connection (closed the window, or time out), how can open the connection first??? I've tried with chatTo, but it first send the wink and then open the connection, not good.

And a final note: I've just downloaded the beta version of the official standalone flashplayer for linux, looks good (http://labs.adobe.com/downloads/flashplayer9.html)


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 04, 2007, 08:24:51 am
Quote from: "Zaskar"
The only problem is that receiving new winks works with the modified protocol.tcl as I said in previous message (thanks again kakaroto for the voiceclip example, some lines of code worths thousands words). How can I solve it??? ¿Any developer over there?


not really a dev, but are that changes *really* needed? btw
a) you can use tcl rewriting capabilities to rewrite the function right from the plugin itself (see emotes plugin)
b) you can send them a patch diff with svn diff

Quote
h, another little think... If I want to send the wink to contact who has closed the connection (closed the window, or time out), how can open the connection first??? I've tried with chatTo, but it first send the wink and then open the connection, not good.

try seeing what they did for voice clips

Quote
And a final note: I've just downloaded the beta version of the official standalone flashplayer for linux, looks good (http://labs.adobe.com/downloads/flashplayer9.html)


yep :) gflashplayer is the standalone


Title: Winks pluggin, a little work
Post by: Phil on January 04, 2007, 03:46:38 pm
These changes are indeed needed : that's not to Zaskar to implement such things...
Moreover, I would say that Winks support shouldn't be in a plugin (at least the receive part)
The only trouble that remain is that your modifications aren't clear...
Could you provide us a patch against the last SVN version ?
(You can do that with a "svn di" command)


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 04, 2007, 04:00:29 pm
well really it could be a matter of taste; if you want the client to be completely modular you may want to have plugins for everything, so that user can disable what he doesn't need (even the file transfert, which was born as a plugin too)... btw, that's up to you ;)

anyway, great ;)


Title: Winks pluggin, a little work
Post by: Trip on January 04, 2007, 04:05:29 pm
Very Very Verrry Great work! I love the Programmer of the Source ! Ok but how i can install it? Because is dont know how i get it working.... I've read the Topic but Understand not everything.... Did somebody can build a Binary?


Title: Winks pluggin, a little work
Post by: Zaskar on January 04, 2007, 05:12:44 pm
I'm not in my PC now and I don't have diff here. But I've opened the msnp2p.tcl (not protocol, my mistake in previous message) with the web svn browser, and I can tell you where to add these lines:

between lines 956 and 957 add:

Code:

   } elseif { [lindex [SessionList get $cSid] 7] == "wink" } {
      ::winks::ReceivedWink $chatid $file


those are a group of ifs that decide what to do when the file is complete...


And between lines 994 and 995 add:

Code:

   } elseif {$type == "wink" } {
      set fd [open "[file join $HOME winks $filename $filename]" w]


those lines says where to write the file when starting to receive it if its a wink. The folder already exists because the plugin creates it when receive te first message.


There's no trouble if winks are a plugins, because those lines inside the ifs (especially the first one) will never be reached if the plugin is not present because noone else will ask for a wink file, so I think they don't alter anything else.
About the rest of the code, I think it's better in a plugin by now because its still to dirty to be in amsn, and I'm sure will find some bugs... I'll work on cleaning later.

NoWhereMan: about replacing some procs with plugins ones, I've already read the example, but those procs are big ones, it's not imaginable.


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 04, 2007, 05:14:26 pm
yes, i see ;)


Title: Winks pluggin, a little work
Post by: kakaroto on January 04, 2007, 09:10:53 pm
hello again,
sorry I'm slow to answer..
first, great work for Zaskar! About your changes to msnp2p.tcl, I knew you'd come to that conclusion, I also had to add the voiceclips cases in there, and about create_msnobj, you forgot to tell us what's your diff.. really, the best solution is to do an 'svn update' then an 'svn diff' and give us the output of the diff here.
I like the idea of the index.xml file in the winks directory, it's the best way to do it, and it should really be done that way even for DPs or smileys.. unfortunately we didn't think of it at the time we implemented those feats.
This is definitely work that should go inside of a plugin, not part of the core because it's an eye candy feature that we don't want to bloat amsn with. BUT the changes to msnp2p.tcl are definitely things that should go in the core in order in order to allow plugins to work with winks. BUT your changes are not perfect because if the plugin is unloaded, then we'll get a crash. instead of calling ::winks::ReceivedWink instead we would have a ::plugins::FireEvent WinkReceived and your plugin would need to register on such an event. Could you make those changes before sending the diff ?
Also, about how to open the SB first, you need to look again at how voicelcips are done, it's easy :
Code:
::MSN::ChatQueue $chatid [list ::MSNP2P::SendVoiceClip $chatid $filename_siren]

In other words, all you need to do is call ::MSN::ChatQueue $chatid $command
and then amsn will request the SB, open it, and once it's opened, call your command.
btw, how do you map the filename to the stamp and msnobj, etc.. once you receive a wink with only the filename as argument ?


Title: Winks pluggin, a little work
Post by: Zaskar on January 04, 2007, 09:31:47 pm
I've realised about the ChatQueue. Thanks anyway. The first version is finished!!!. The changes that I said in last message are the only ones. I have my CreateMsnobj and RequestObject versions inside the winks's namespace to avoid more changes. So that's the whole diff:

msnp2p.tcl:
Code:

956c956,957
<
---
>                                       } elseif { [lindex [SessionList get $cSid] 7] == "wink" } {
>                                               ::winks::ReceivedWink $chatid $filename
993a995,996
>                               } elseif {$type == "wink" } {
>                                       set fd [open "[file join $HOME winks $filename $filename]" w]


The plugin is in: http://in.solit.us/archives/download/7547

How to use: When you receive a wink, you first see the name, some seconds later when the wink was transfered its played. The wink stays in your winks list and the next time you receive it is played inmediatly. To add a new one from an mco file right click the winks menu buton. In the menu, left click sends it, middle click edits or deletes, and right clicks plays a preview. Remember that you need cabextract and some flash player (by default gnash). I don't know if it's necesary to restart amsn after activating.

I'll wait for your answers.


Title: Winks pluggin, a little work
Post by: Trip on January 04, 2007, 09:59:31 pm
Great work but..... If i try to send a wink threw the aMSN Client the MSN Messenger 8 said:

"Linux" Liebhaber can't see this type of wink with the version of Messenger that they're using.

???


Title: Winks pluggin, a little work
Post by: Trip on January 04, 2007, 10:19:10 pm
Ohhh sry now it works...i had to restart amsn 0.97


Title: Winks pluggin, a little work
Post by: snipe2004 on January 04, 2007, 11:05:59 pm
Hep Zaskar,

Thanks for your plugin !! The idea is great and thanks for the time you spent on it :) :)


Title: Winks pluggin, a little work
Post by: vivia on January 04, 2007, 11:13:39 pm
Zaskar: First of all, CONGRATULATIONS :)

As kakaroto said, the proper way would be to fire a new event WinkReceived that you will register for. Once you do it this way, your diff will be committed and your plugin will probably go to SVN :)


Title: Winks pluggin, a little work
Post by: Zaskar on January 05, 2007, 12:29:06 am
Sorry vivia, I don't understand what should I do instead what I did. (It's obvious, but English is for me a foreign language, sorry if I don't get it at the first try).


Title: Winks pluggin, a little work
Post by: vivia on January 05, 2007, 12:53:23 am
Instead of:
Code:
>                                       } elseif { [lindex [SessionList get $cSid] 7] == "wink" } {
>                                               ::winks::ReceivedWink $chatid $filename


do this:
Code:
>                                       } elseif { [lindex [SessionList get $cSid] 7] == "wink" } {
>                                               ::plugins::FireEvent WinkReceived $chatid $filename


then in your plugin:
Code:
::plugins::RegisterEvent Winks WinkReceived ReceivedWink
...
proc ReceivedWink { event evpar } {
upvar 2 $evpar args
upvar etc etc etc
}


Title: Winks pluggin, a little work
Post by: Zaskar on January 05, 2007, 02:07:07 am
Ok, thanks... I'll do this... I've miss that part in kakaroto's post... but where should upload the new file? Should I send it to the plugins section, to the svn (can I get acces there?)?, to http://in.solit.us again? There should be also a little explanation somewhere about getting cabextract, and a flash player and configuring it for the diferents platforms... I can take linux and windows, but I don't know anything about freebsd (I think there are ports of cabextract and gnash) or macs.


Title: Winks pluggin, a little work
Post by: Trip on January 05, 2007, 02:25:39 am
Hi everybody!

Ok ths is a veryyyy great Plugin! And i want to say thank you to the Programmer of this tool.....

But i have found many Bugs inside the Programm.... Ok i try to explain it... If you dont Understand what i will write please tell me that...I try to write it again in better English or in German.....

Ok now i will start....
I tryed to send a Wink from the MSN Messenger 8.0 to the AMSN 0.97b (SVN from today)..... The Plugin tells me, that ive got an Unknown Wink, and it will displayed in a short time.... But after a while AMSN give me an Errormassage like every other Bug.... (The Famous Text send error report blablabla....) And i i try to send a Wink from AMSN Back to MSN 8...I could click on the Boutten in the chat windows..... But nothing happend.... And a the place where i clicked on the wink boutton i got a static white field, what dont close und is top of the window....
So i think it is a Bug too....

But i want to know if it is possible to use the "Real" Flash 9 Beta from the Adobe Site.....? Becuase is works better with my System (Kubuntu 6.06) ? How is the Code called?

Thank you for Reading! And have an Nice day!

Trip


Title: Winks pluggin, a little work
Post by: vivia on January 05, 2007, 02:47:18 am
Zaskar: upload the new plugin to in.solit.us and paste the diff here, like the last time, it was perfect. Thanx for your good job!

The instructions can be placed in a separate README in the plugin, and I think it would be good to add the same info to the userwiki. I guess tomhennigan can take care of the Mac part of it.

Trip: saying us that you got an error is useless without the error message. On the bug report screen that you get, choose Details and you will see the real message. Paste that here. Also, are you sure you have properly configured cabextract and gnash for the plugin?


Title: Winks pluggin, a little work
Post by: Zaskar on January 05, 2007, 04:00:42 am
Did you patched msnp2p.tcl?... the modifications nedeed there aren't yet in svn.


Title: Winks pluggin, a little work
Post by: Fenix-TX on January 05, 2007, 11:27:10 am
Quote from: "Zaskar"
Did you patched msnp2p.tcl?... the modifications nedeed there aren't yet in svn.

Quote from: "vivia"
Zaskar: upload the new plugin to in.solit.us and paste the diff here, like the last time, it was perfect. Thanx for your good job!


Zaskar, vivia said that you upload again the plugin and add the new diff. That diff will be patched on svn when you put the new diff here, with your changes.

PS Good work Zaskar!


Title: Winks pluggin, a little work
Post by: Zaskar on January 05, 2007, 12:12:22 pm
Fenix-TX: I know, that question was for trip, who said that the plugin didn't worked for him.


Title: Winks pluggin, a little work
Post by: Fenix-TX on January 05, 2007, 12:40:47 pm
Quote from: "Zaskar"
Fenix-TX: I know, that question was for trip, who said that the plugin didn't worked for him.


Ohps! Sorry, well i see that Trap say that, but he replies himself, saying that he had not restart amsn...


Title: Winks pluggin, a little work
Post by: kakaroto on January 05, 2007, 05:03:06 pm
Hi Zaskar,
Can you please read correctly our posts before answering. Vivia said that you need to modify your plugin and to use events!
no, msnp2p.tcl is not yet patched on SVN, that's because vivia asked you to send the new diff with the PostEvent being called. You do understand that with your current patch, if someone sends us a wink and that your plugin is not loaded, then we'll get a bug like
Quote
"::winks::ReceivedWink" command does not exist
.
Anyways, I just committed some changes.. I want you to work with THAT code from SVN version 7719. Here's the diff :
Code:

Index: msnp2p.tcl
===================================================================
--- msnp2p.tcl  (revision 7718)
+++ msnp2p.tcl  (working copy)
@@ -954,6 +954,12 @@
                                                        status_log "VOICE: file <$file> does not exist" red
                                                }
                                               
+                                       } elseif { [lindex [SessionList get $cSid] 7] == "wink" } {
+                                               # Winks support is not in the core, all we can do is support it in the msnp2p code
+                                               # and launch an event for an appropriate plugin to manage it.
+                                               set evPar(chatid) chatid
+                                               set evPar(filename) [file join $HOME winks cache ${filename}.mco]
+                                               ::plugins::PostEvent WinkReceived evPar
                                        } elseif { [lindex [SessionList get $cSid] 7] == "filetransfer" } {
                                                # Display message that file transfer is finished...
                                                status_log "MSNP2P | $cSid -> File transfer finished!\n"
@@ -991,6 +997,8 @@
                                        create_dir [file join $HOME voiceclips]
                                        create_dir [file join $HOME voiceclips cache]
                                        set fd [open "[file join $HOME voiceclips cache ${filename}.wav]" w]
+                               } elseif {$type == "wink" }  {
+                                       set fd [open "[file join $HOME winks cache ${filename}.mco]" w]
                                }
 
                                fconfigure $fd -translation {binary binary}
Index: protocol.tcl
===================================================================
--- protocol.tcl        (revision 7718)
+++ protocol.tcl        (working copy)
@@ -6414,7 +6414,7 @@
 
 }
 
-proc create_msnobj { Creator type filename } {
+proc create_msnobj { Creator type filename {friendly "AAA="} {stamp ""}} {
        global msnobjcontext
 
        if { [file exists $filename] == 0 } { return "" }
@@ -6429,10 +6429,16 @@
 
        set sha1d [::base64::encode [binary format H* [::sha1::sha1 $data]]]
 
-       set sha1c [::base64::encode [binary format H* [::sha1::sha1 "Creator${Creator}Size${size}Type${type}Location${file}.tmpFriendlyAAA=SHA1D${sha1d}"]]]
+       set sha1c [::base64::encode [binary format H* [::sha1::sha1 "Creator${Creator}Size${size}Type${type}Location${file}.tmpFriendly${friendly}SHA1D${sha1d}"]]]
 
-       set msnobj "<msnobj Creator=\"$Creator\" Size=\"$size\" Type=\"$type\" Location=\"[urlencode $file].tmp\" Friendly=\"AAA=\" SHA1D=\"$sha1d\" SHA1C=\"$sha1c\"/>"
+       set msnobj "<msnobj Creator=\"$Creator\" Size=\"$size\" Type=\"$type\" Location=\"[urlencode $file].tmp\" Friendly=\"${friendly}\" SHA1D=\"$sha1d\" SHA1C=\"$sha1c\""
 
+       if { $stamp == "" } {
+               append msnobj "/>"
+       } else {
+               append msnobj " stamp=\"$stamp\"/>"
+       }
+
        set msnobjcontext($msnobj) $filename
 
        return $msnobj


I want you to explicitely use THAT code and make your plugin work with THAT code. your plugin needs to be modified.
First, you must NOT rewrite any of the current procs into your own plugin, what if we ever change the way it works now, huh ? for example in create_msnobj, what if we suddenly change the msnobjcontext into a namespace variable instead of a global variable, then your plugin won't work anymore. So you have to always use our functions, not rewrite them just because you need a little change.
Also note that you rewrote RequestObject in order to specify a filename.. THIS IS WRONG! you must let amsn use the filename it has set internally, you shouldn't override that! once the wink is received you'll get a WinkReceived event being fired with the filename being in there, you should use that and don't rename the file!
The "Location" field of the msnobj is not important at all, it's only the filename of the temp file from the other user's machine, which means we can very easily get many different users with different winks which have the same Location. This is why you should just ignore it, it's only informational, and you shouldn't use that to store the wink into. I also noticed that you request the msnobj without the stamp field (very hacky way to do it btw), why is that ? I would be surprised if you said that it won't work with the stamp in the msnobj.
Also, why did you write the file to $HOME/winks/$cfile/$cfile" ? why twice $cfile ? this is wrong.
I've been looking very briefly at your code, and I know it was hacky, but you can't say that the plugin is finished with code as hacky as it is right now. Please clean it up as much as you can before releasing the plugin.
Amongst other things to clean, I noticed you used "$HOME/winks" in some places for example. NEVER do something like that, what would happen on windows where the separator is the other way around, huh? you must do [file join $HOME winks] instead.
Also, you say you can specify which program to use to extract the cab file. it's false, you can only specify "the path to cabextrat" because you use cabextract specific options to extract the file, if we put the path to 7zip for example, it will just say that it doesn't recognize the options. Also, you use many texts in there without translations. I suggest you translate the text.
Please clean your code, remove the CreateObject and RequestObject from your plugin and use the latest SVN version to make the plugin work against it.
I'll have to review your code later as this seems to be a mess even though it's working.
thx


Title: Winks pluggin, a little work
Post by: Zaskar on January 05, 2007, 05:03:10 pm
Thanks kakaroto... I've already made the changes for the new event... I was working on it, it was confused because the post said "fireEvent" and it should be "PostEvent"... Anyway, the changes I said before where just for testing, and if you don't have the plugin enabled and someone sends a wink, noone ask for the cab file and so that code is never reached. About being finished and cleaned, I always said that it was not. I said that (for me) it works, but it's not ready at all. I'll do the changes you say now.

About the cabextract, yes, the first idea was to use any extractor but then I had to use some specific arguments and it was not general anymore. I was testing in winxp and I saw that cabextract can only be use to extract a file when we are working in the file's path, if we don't, we get "permission denied", so I've found a WinXp tool "extrac32" and now there's and option to use it instead cabextract. I started to make a readme file and I changed "cab extractor" for "cabextract path", unless you specify to use extrac32 (in that case we don't need the path). In my xp the handmade paths worked, but anyway I'll use [file join] now.

Another trouble was that it was able to send winks between an msn and an amsn, but not between two amsn, it's fixed now.
There are also some imperceptible little improves when receiving a new wink to avoid deal with incomplete data in winks list,. I've added also some ifs to be sure when we extract from an mco.
About the way I separate the fields, it doesn't work when you have an space in one of them, so I've fixed that too.

About the winks_list, now the key is the sha1d and not the wink name, and I'll use that to create the folders, so no problem if to different winks have the same file name.

The last thing.. I've read in some pages that exec command doesn't exist in macs? Is that true? In that case, how can I call the extractor or the player???

I know that the code isn't goot. I'm learning tcl, amsn internals, and part of the messenger protocol while I'm doing it, so please be patience.


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 05, 2007, 05:31:53 pm
zaskar I suggest you to add a third option beside cabextract and extrac32, "Other", where user can specify a command line like

myextractor -xyzf $fname -p $path
(where $fname will contain the cab name and $path the path to winks cache)
so that you can specify your own.

I'd follow for the vars the same naming conventions (now I don't remember them) used in amsn prefs dialog where you choose the browser and mail client

Same would be for the flash player :)

btw, even though sure it's hacky (and I haven't tried yet) it's anyway a good job ;)

bye :)


Title: Winks pluggin, a little work
Post by: Zaskar on January 05, 2007, 05:49:10 pm
Ok NoWhereMan, it will be the best way.


Title: Winks pluggin, a little work
Post by: kakaroto on January 05, 2007, 06:06:56 pm
Hello again, NWM idea is good, Zaskar, you can look at how we can do something like that by looking at the code of proc play_sound.
I'll be waiting for an improved version... great work so far, keep it up! :)


Title: Winks pluggin, a little work
Post by: Zaskar on January 05, 2007, 06:15:02 pm
About getting the file. I'm now doing this: I don't force any filename, then in ReceivedWink event I get the temp filename from evPar(filename) and I copy that file to the location I want (inside the wink folder and called as the original one).

sha1d has other characters like '/' or '=' so I can't use it directly to name the wink folder. How can I encode it to get a valid name? or what should I use instead?


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 05, 2007, 06:34:39 pm
md5 ?


Title: Winks pluggin, a little work
Post by: Zaskar on January 05, 2007, 07:05:58 pm
I don't know exactly how does upvar works, but when you set the filename for the event, you don't give a filename name, you give the value as the final parameter. Now I can't use it from my plugin. It reaches the part when I first used it and abort the proc without showing errors or anything else.


Title: Winks pluggin, a little work
Post by: kakaroto on January 05, 2007, 07:13:41 pm
Hey Zaskar, I said don't move (nor copy) the file, once you receive it from amsn, use that filename amsn gives you, don't change it! it's already going to be in $HOME/winks/cache/ and it's going to have a unique filename depending on the data and it will have an .mco extension. I told you, don't change it, don't touch the filename, just use it as is!
We know the SHA1D might have non valid characters and that's why amsn already takes cares of giving you a totally unique and valid filename depending on the data. Why would you want to change that ?
about the filename upvar event variable, read the docs and see how to use it, we pass the variable name as parameter so you can upvar it and modify it. Please read the docs or see how other plugins do this, before asking those questions.


Title: Winks pluggin, a little work
Post by: Zaskar on January 05, 2007, 07:43:06 pm
Ok. I wont move that file, but now I'll have separated parts of the wink in cache and the specific wink folder. I have the idea that cache was something temporal and that I can clear it without major troubles (if I need it I ask for it again like display pics), but if you clear that cache you will loose some winks that are still in menu but can't be sent. In other words: the file in the cache is the cab that cames inside the mco, no the mco, and this is the file that must be sent in the msnobject, but I also need to have the thumbnail and the swf uncompressed to show the menu and play it locally, so that's why I need both thinks.

About upvar, I've made a quick search in google before asking and I didn't found any example other than using a variable name, so I asked. I found an example in another plugin and now it works (but I still don't know why, I'll see later).


Title: Winks pluggin, a little work
Post by: kakaroto on January 05, 2007, 08:07:43 pm
if you look at how custom emoticons and how displaypictures are, it's the same, the cache/ is the directory for storing the files from the other users, while the directory itself is for your own files. so if you add a wink, it will be in $HOME/winks/ but if you download a wink from another user, then it will be in $HOME/winks/cache Also, the menu to select the wink should show the winks from $HOME/winks not from $HOME/winks/cache. About the wink, it should always be the .mco, not the .swf or whatever. Only keep the mco file, when you need the thumbnail or swf, you could temporarly extract the wink to a directory and keep those files there (or purge the content once you don't need the files, or on the DeInit proc. Also note that this should work when you receive multiple winks at the same time, so the filenames shouldn't be hardcoded, it must be unique depending on the wink, for example :
Code:
set d [filenoext [file basename $filename]]
$cabextract $filename -d $temp/wink-extract-[pid]/$d/

I would also suggest to do it in /tmp instead of $HOME. Other plugins use this method for storing temp files, look at that code (inkdraw for example) to see how to get the temp directory (/tmp for linux, and c:\documents and settings\....\temp for windows, it's all in one environment variable)

About the upvar, I told you to read the how to create plugins in the wiki, it's the first place you should have read...


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 05, 2007, 08:14:23 pm
Quote from: "Kakaroto"
About the upvar, I told you to read the how to create plugins in the wiki, it's the first place you should have read...


this is something about the plugin interface which took a bit for me too to figure out, and that they should explain better IMO (if my explanation is correct - I hope so - I would suggest the dev to put it in the dev wiki)

they pass you through the event call the NAME OF A VAR, stored in another var; through upvar you can get the actual VALUE stored in that var they pass you; in fact, this is used to emulate a pass-by-reference call

see:

set test_var 11
set this_is_a_var 100 ;# $this_is_a_var == 100
set varname this_is_a_var ;# $varname == "this_is_a_var"

myevent $varname ;# I know you don't fire events this way, but it's the same

-------------------
how upvar works

upvar SCOPE OUTER_VAR_NAME LOCAL_VAR_NAME

SCOPE is an integer which identifies from which level of the callstack take a variable name, which name is "OUTER_VAR_NAME", and do a reference to its content in a local variable called "LOCAL_VAR_NAME"

then what you'll do in your event proc:

proc myevent { $local_var } {  ;# in our example $local_var is now == "this_is_a_var"

     upvar 2 $local_var mylocalvar ; # $mylocalvar == 100
     status_log "current value of $local_var is $mylocalvar"
 
}


of course you're not limited to the var name you have in $local_var

with upvar 2 test_var local_test ;# you are putting in $local_test a reference to of $test_var of the outer scope which was 11


I hope I was clear (and I hope I was correct, I didn't test, and I'm pretty new with tcl, too.

more on upvar: http://wiki.tcl.tk/1508

Quote from: "kakaroto"
Also, the menu to select the wink should show the winks from $HOME/winks not from $HOME/winks/cache.


I don't think this is how the original client works; despite the behavior you have with emoticons, when you receive a new wink you should be able to resend it back... :/


Title: Winks pluggin, a little work
Post by: kakaroto on January 05, 2007, 10:11:25 pm
Hi,
Thx NWM for the explanation, you're totally right in everything you said about upvar. I'd only like to add that we do this so that, in your proc, if you do a :
set mylocalvar 10
then even in that function which is outside of your proc's scope, the value of 'mylocalvar' is getting changed. As you said, emulating the pass by reference behavior.

About winks, are you sure ? I would doubt something like that!!! because first, they didn't do it for DPs or custom smileys, so why do it for winks, secondly because people will BUY winks, and because of that, you can't just pay 5 or 10$ for a wink and everyone you send it to is going to have it for free... it's the P2P, napster/kazaa/bittorrent ideal, but it's way too far from being Micro$oft's  ideal... so I'm pretty sure you can't reuse a wink you received, only the default ones.
(note that M$ went all the way to the trouble of signing each wink with a certificate and will only accept and play correctly signed winks by microsoft, just to make sure you can't "create your own winks" without paying them, so the 'steal wink' feature is sure not going to be part of their specs...
I do think the cache/ dir should contian other users' winks and not your own and you should not play those unless you browse to add a wink and choose one from there.


Title: Winks pluggin, a little work
Post by: Zaskar on January 06, 2007, 12:51:43 am
Ok, but the fact is that in this version of the plugin, every wink that the other clients sends you also became your wink. (I've did it in that way because it was the easy for me and for testing, it's not the best, but I'll improve the interface later, first I want to fix and clean...). That's why I copy the file out of cache. About MCO, maybe there's a little confusion.

The MCO is itself a cab, but it has inside another cab (with cab extension) and a content.xml (this one has the stamp). That cab is the one we send as an msnobj, no the mco, so we never keep the mco. That cab has inside the thumbnail, the animation, and another content.xml. In the wink folder I want to keep the cab in both forms: compressed and uncompress. The first one to send, the second to play and draw the menu. None of them is for me temporal.

There's one trouble about the transfer of the msn object. If don't delete the stamp field from the data berore doing the RequestMsnobjEx it doesn't work, but in that case if there's another amsn in the otherside, the msnobject that is asked for is not the same that it registered, so it's not sent. Now I register both object versions for testing, but I'll see how to fix soon.

Anyway, here's the new code. I don't force the file name, I don't modify/move it.  Again, it's cleaner than the last one, but not even near finished. There's still LOT of work to do, but its an advance.

http://in.solit.us/archives/show/7626


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 06, 2007, 08:31:17 am
Quote from: "kakaroto"
it's the P2P, napster/kazaa/bittorrent ideal, but it's way too far from being Micro$oft's  ideal... so I'm pretty sure you can't reuse a wink you received, only the default ones.


well this doesn't mean this plugin should behave in the same way  :twisted:   :P hmm, but it wouldn't be something ...ahem... good :/


Title: Winks pluggin, a little work
Post by: Fenix-TX on January 06, 2007, 01:05:31 pm
With the plugin, i have this problem:
Quote

Hi! Today i've download the new SVN and now, the number of contacts on a group, when i connect is 0 in all groups, but there are contacts.

See the screenshot:



(http://webs.ono.com/jesusvpct/captura14.png)


Title: Winks pluggin, a little work
Post by: kakaroto on January 07, 2007, 04:37:18 am
@Fenix,
are you using the latest SVN version? and are you 100% sure it comes from this plugin ?
btw, nice skin, which one is it ?

@NWM
yes, of course we should *allow* someone to 'steal' a wink, but not do it without asking, + you said "in the official client" :p

@Zaskar
ok, I understand you a bit better now, but now I have other questions :
1 - why an .mco ? if we send the cab inside the mco then it means the cab is the wink, so where does the mco come from ? we send a cab file that's it and that's what we receive, so why mco containing another cab ????? you also said that we never keep the mco, so where is it coming from ? is it the file format you receive from microsoft when you buy a wink ?
2 - you should definitely, at 100% not automatically add a received wink, you should allow the users to right click and add it automatically, but that's it, imagine someone sends you 100 winks on purpose, then you'll have so many that you won't be able to see your own winks anymore, this is wrong, a software should never take decisions on its own, so the plugin should never automatically add received winks on purpose (unless there's an option for it in the configuration of the plugin, in which case that option should be disabled by default)
3 - I understood this stamp/msnobj problem and you're right, you should create 2 msnobjs one with and one without the stamp, that's perfect, about how to remove the stamp to send the invite, I would suggest you use the [xml2list] and [list2xml] calls to do this cleanly

Keep up the good work! I can't wait to see this in the final stage! :)


Title: Winks pluggin, a little work
Post by: Zaskar on January 07, 2007, 05:08:00 am
1) When you search for a wink (for example in google), you find that you download an mco and some tool to install it. The file we send is a cab, but the mco also contains an context.xml with some extra information. (The information I use is for example the stamp, it's in the mco but not in the cab). I thinks that it is the file you get when you buy/download a wink.
2) Of course, that was never the final idea, there will be some option like in custom smileys, just give me some time, that was easy to start testing. I'll rewrite the interface (maybe the menu behavior and the message you see when sending or receiving one).
3) But one of those objects is never requested. It stays some where like a memory leak? I don't know if that's good. I'll try to find out why amsn doesn't send the invite if I include the stamp (may be the fact that in that case the invite should be divided in three packets has something to do).

I've uploaded today a new version. It fixes some minor bugs (like the wink name encoding for the friendly field, add a catch to avoid errors if the thumbnail cant be loaded, avoid the need of the & in the flash player arguments, etc) and the readme fixed (I don't know what happened with the first one). It's in:

http://in.solit.us/archives/show/7647


Title: Winks pluggin, a little work
Post by: kakaroto on January 07, 2007, 07:48:12 am
Hi,
1) ok, good. This means finding the stamp field will be difficult, we need to save those stamps at all costs, without the proper stamp, we can't send the wink. The stamp is actually a base64 encoded M$ certificate for authorizing the use of that wink, if it's wrong, then the user won't see the wink.
3) no, don't worry, it's not a memory leak, it's memory being used, that's all. a memory leak is when memory is always being created without being deleted, in this case, if you send the wink twice, the memory won't go up, + it's so small,y ou don't need to worry about it. so yes, you should absolutely create two msnobj. the reason why the file doesn't get sent if the stamp is not included for amsn is because the msnobj is different so amsn doesn't recognize it, that's all.


Title: Winks pluggin, a little work
Post by: Fenix-TX on January 07, 2007, 01:20:01 pm
Quote from: "kakaroto"
@Fenix,
are you using the latest SVN version? and are you 100% sure it comes from this plugin ?
btw, nice skin, which one is it ?


Yes, i've the latest svn, if i use amsn with wink plugin i have that problem, but if i disable the plugin, and open amsn again, i don't have that problem.

That's skin it's emerald 2.0 but i made some changes ;) (i hope that Gus doesn't have any objection for that, and it's only on my computer)

EDIT
Well, with latest winks is working fine now.  I don't have that problem with groups on my contact list.

EDIT2
I want to say that i'm using klash to reproduce winks. Klash is the standalone KDE-based player (gnash).


Title: Winks pluggin, a little work
Post by: GuS-Arg on January 16, 2007, 10:48:51 pm
Quote
That's skin it's emerald 2.0 but i made some changes ;) (i hope that Gus doesn't have any objection for that, and it's only on my computer)


Indeed.. looks better... i was planing to use one bluish color as background image on the Groups names.

Thats nice Fenix ;)


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 17, 2007, 09:46:31 am
how's this plugin going? :)


Title: Winks pluggin, a little work
Post by: Fenix-TX on January 17, 2007, 11:26:49 am
Quote from: "GuS-Arg"
Quote
That's skin it's emerald 2.0 but i made some changes ;) (i hope that Gus doesn't have any objection for that, and it's only on my computer)


Indeed.. looks better... i was planing to use one bluish color as background image on the Groups names.

Thats nice Fenix ;)


Thanks Gus! I'll wait to your version :). I love you work it's very nice.


Title: Winks pluggin, a little work
Post by: square87 on January 17, 2007, 12:21:47 pm
I can send but I cannot see :(
then...
if I click on a wink with right click i get:
Code:
wrong # args: should be "::winks::PlayWink wfile wname"
    while executing
"::winks::PlayWink "/home/A/.amsn/MYMSN/winks/01effcdf56a3512ad7f9514c771c41b8/eyeball.swf" Occhio saltellante"
    (command bound to event)


if i do from Konsole
$gnash /home/A/.amsn/MYMSN/winks/01effcdf56a3512ad7f9514c771c41b8/eyeball.swf
it works!


Title: Winks pluggin, a little work
Post by: vivia on January 17, 2007, 01:13:37 pm
the problem is with a whitespace on wname . Zaskar: how is development going?


Title: Winks pluggin, a little work
Post by: ekz on January 17, 2007, 05:33:34 pm
Quote from: "square87"
I can send but I cannot see :(
then...
if I click on a wink with right click i get:
Code:
wrong # args: should be "::winks::PlayWink wfile wname"
    while executing
"::winks::PlayWink "/home/A/.amsn/MYMSN/winks/01effcdf56a3512ad7f9514c771c41b8/eyeball.swf" Occhio saltellante"
    (command bound to event)


if i do from Konsole
$gnash /home/A/.amsn/MYMSN/winks/01effcdf56a3512ad7f9514c771c41b8/eyeball.swf
it works!


I use "firefox" as swf player command (without arguments )

SAludos


Title: Winks pluggin, a little work
Post by: kakaroto on January 17, 2007, 06:00:43 pm
"Occhio saltellante"  having a space is interpreted as 2 arguments because it's bound to an event... but still, I can't figure out how "Occhio saltellante" can be a "$wname"..


Title: Winks pluggin, a little work
Post by: Zaskar on January 20, 2007, 07:06:42 am
I'm not in my home these days, so I don't have my pc and my amsn to continue the developing. I'll be back soon, you'll get some news next week. What do you think that should be the next step?


Title: Winks pluggin, a little work
Post by: vivia on January 20, 2007, 01:29:57 pm
Fix the bug reported bu ekz, stop "stealing" received winks automatically, and IIRC you also had other items in your TODO for the plugin, right?.... Anyway, for the millionth time, thanx :)


Title: Winks pluggin, a little work
Post by: Kalinda on January 20, 2007, 07:02:06 pm
Well.. I downloaded and installed it.. and it's pretty awesome :) I can send and receive winks just fine, although sometimes it takes a bit of time to play them.

How can I change the player used from gnash to Flash 9? And on that note, does anyone know where I can acquire the Flash 9 standalone player? All I can find is the plugin. Gnash doesn't play back some winks properly, probably because they need Flash 9.

Also, maybe later on it would be a good idea to include the .mco files for the default winks with the plugin itself? That way we don't have to receive them from others first. Unless the .mco's are too big? Sorry if this has already been addressed, didn't read through the whole thread, just skimmed bits of it.

Good work, though!


Title: Winks pluggin, a little work
Post by: zerock on January 20, 2007, 07:16:16 pm
it probably  needs some work on mac..

i get this:

[14:14:42] Received wink: "Kiss"...  Unknown wink, waiting for it...!

Can't open content.xml


Title: Winks pluggin, a little work
Post by: Fenix-TX on January 20, 2007, 07:45:18 pm
Kalinda, try this link: http://download.macromedia.com/pub/flashplayer/updaters/9/flash_player_9_linux_dev.tar.gz


Title: Winks pluggin, a little work
Post by: kakaroto on January 21, 2007, 10:05:12 am
kalinda, because of licensing issues it will probably be impossible to ship licensed Micro$oft winks with the plugin, so the 'workaround' is to receive them first.


Title: Winks pluggin, a little work
Post by: Zaskar on January 21, 2007, 11:21:22 pm
The bug reported by ekz is fixed now, the $wink(name) was not between "", so when the name contains a space there was a trouble.

About stop stealing winsk, that's what I'm going to do now: When a new wink cames and I get the cab file, I'll extract the swf and I'll keep only this file (I'll delete the cab after extracting). This file will be in cache folder named as its sha1d encoded with md5, so when a new wink arrives, I encode the sha1d, I see if the file exists and in that case play it inmediatly, in other case ask for the file. In that way, we keep in chache only the swf, and not all the other wink information, so we can play it locally, but we can't resend that wink to anyone, we can't steal them. If we find later that there's some way to find out if a wink can be copied or not, I'll add the steal option for those ones, but rigth now I don't know. I thought that it was a field in the stamp called public that says "Y" or "N", but testing with the official client, it never lets me steal the wink. Is that ok?


Title: Winks pluggin, a little work
Post by: Zaskar on January 22, 2007, 03:31:21 am
Here's the new zip:

http://in.solit.us/archives/show/9011


Title: Winks pluggin, a little work
Post by: kakaroto on January 22, 2007, 04:58:58 am
no, you can steal the wink, we just don't want it to steal automatically. All you need is the to save the stamp with the wink cab file....


Title: Winks pluggin, a little work
Post by: ilsikulo on January 24, 2007, 06:01:41 pm
Hello
congratulations for the work!
I have installed the plugin in my amsn 0.97b plugin directory, I have loaded it. But I have a problem! When I send winks is all ok, but when I receive a new Wink there's a problem.....In the log window of amsn (CTRL+S) i receive that message
...
[17:53:19] cabextract output: /home/fabio/.amsn/ilsikulo_****_**/winks/tmp/content.xml: Permission denied

Why??....
In other cases, when I receive a Wink, I can  show it, but the plugin is not able to insert that wink I have received in the wink menu!
I use linux Ubuntu Dapper, and I have reconfigured the files permission.... chmod -R a+xwr ..../tmp/ but nothig!!!.......
Can help me??.....Thanks


Title: Winks pluggin, a little work
Post by: MaT_UC on January 24, 2007, 06:28:55 pm
Quote from: "zerock"
it probably  needs some work on mac..

i get this:

[14:14:42] Received wink: "Kiss"...  Unknown wink, waiting for it...!

Can't open content.xml

Zerock be sure you followed all Tom instructions , it works great for meXD


Title: Winks pluggin, a little work
Post by: Zaskar on January 25, 2007, 07:02:48 pm
Hi again. There are some news for that plugin. I've made a new cache structure. The file received remains there (so we can use it to move the wink from cache to our customs winks), but also is decompressed to a folder into the cache one to get the thumbnail and the animation faster. When you send or receive a wink, now you'll see its thumbnail next to its name. If you left click the thumbnail you can play it again, or add it to yor winks menu (steal, if this one was in cache). When stealing a wink, I just move the file and the folder from cache to winks and modify the indexs (now there is one in cache folder too). I've also fixed some little bugs or "almost bugs" that I've found over there. It needs a lot of testing still, so the zip file is here:

http://in.solit.us/archives/show/9469


Title: Winks pluggin, a little work
Post by: BoneFill on January 25, 2007, 10:42:08 pm
Hi there, great job :) there's only one problem with it when you use it on Mac while opening the winks after you receive one because of a space in the path. I'm on Mac so I don't know if it's a Mac only issue.

When you receive a Wink the log says:

Eval: exec open /Users/ME/Library/Application Support/amsn/ME_hotmail_com/winks/11460b3760cb652c2b31fbd2cc71dd5d/wpw006db01.swf

Now if copy/paste/edit to:

exec open /Users/ME/Library/Application\ Support/amsn/ME_hotmail_com/winks/11460b3760cb652c2b31fbd2cc71dd5d/wpw006db01.swf

Now it works.

It's weird because it can read anything in that path but can't execute.


Title: Winks pluggin, a little work
Post by: Trappski on January 25, 2007, 11:00:39 pm
Quote from: "BoneFill"
Hi there, great job :) there's only one problem with it when you use it on Mac while opening the winks after you receive one because of a space in the path. I'm on Mac so I don't know if it's a Mac only issue.

When you receive a Wink the log says:

Eval: exec open /Users/ME/Library/Application Support/amsn/ME_hotmail_com/winks/11460b3760cb652c2b31fbd2cc71dd5d/wpw006db01.swf

Now if copy/paste/edit to:

exec open /Users/ME/Library/Application\ Support/amsn/ME_hotmail_com/winks/11460b3760cb652c2b31fbd2cc71dd5d/wpw006db01.swf

Now it works.

It's weird because it can read anything in that path but can't execute.


the later part is a correct path in UNIX whilst the top one is wrong... the "\ " is an escape sequence that is replaced with the space chracter.  If the escape sequence is not there the above path will be interpreted simply as "/Users/ME/Library/Application " and then it thinks that's it.


Title: Winks pluggin, a little work
Post by: Zaskar on January 25, 2007, 11:50:30 pm
Here's another version. It includes language support (I've only written English and Spanish, help nedeed for others), an option for not playing the wink automatically when it's received and may be the fix for the problem with spaces in paths.

http://in.solit.us/archives/show/9493


Title: Winks pluggin, a little work
Post by: ilsikulo on January 25, 2007, 11:54:15 pm
Hello Zaskar
very thanks for the reply!........I HAVE RISOLVED MY PROBLEM!!!....... :D  :D  :D  :D .YOU PLUGIN IS FANTASTIC!!
..........good work....I hope you will finish your great work!
Good amsn to all........and excuse me for my low english......   :?


Title: Winks pluggin, a little work
Post by: BoneFill on January 26, 2007, 12:54:36 am
Works great now!

Thnx! :D


Title: Winks pluggin, a little work
Post by: snipe2004 on January 26, 2007, 12:56:56 am
Hi Zaskar!
Great work you made there !!!
Thanks a lot !

Here's the langfr file I made, feel free to add it - or not ;)

Code:
amsn_lang_version 2
winks_show_add_new_wink_in_menu Afficher \"Ajouter un wink\" dans le Menu Wink.
winks_close_menu_on_mouse_leave Fermer le Menu Wink lorsque la souris ne s'y trouve plus (Désactiver si Beryl/Compiz est activé).
winks_cabextract_command Commande CabExtract:
winks_use_extrac32 Utiliser extrac32 (pour WinXP) au lieu de cabextract.
winks_swf_player_command Commande du lecteur SWF:
winks_swf_player_arguments Arguments du lecteur SWF:
winks_add_new_wink Ajouter un Wink
winks_introduce_new_wink_name Renommer le Wink:
winks_cant_open_content_xml Ne peux ouvrir le contenu
winks_received_wink Wink reçu:
winks_unknown_wink_waiting_for_it Téléchargement du Wink...
winks_wink_transfer_complete Téléchargement terminé:
winks_play_animation Jouer l'animation
winks_add_to_winks_menu Ajouter au Menu Wink
winks_sending_wink Wink en cours d'envoi...
winks_sent_wink Wink envoyé:
winks_wink_added Wink ajouté!
winks_the_wink_is_already_in_winks_menu Le Wink est déjà présent dans votre Menu Wink!
winks_play_wink_inmediatly_when_recived Jouer le Wink immédiatement à la réception.


I can't test it for now, as I have no .mco to use - but I got encoding troubles, as usual here. Don't think this will happen to anyone else.


Title: Winks pluggin, a little work
Post by: Zaskar on January 26, 2007, 01:12:07 am
Thanks a lot for the translation. I'll add it in the next zip and your name to the readme.txt.


Title: Winks pluggin, a little work
Post by: snipe2004 on January 26, 2007, 03:23:01 pm
Don't worry about my name lol :D That's nothing.
I tested it quickly here (always those m******* encoding troubles :@ ), and I noticed something:
When you've no Wink, the langen writes: "Add a Wink", and the frame is perfectly adapted for this size.
But in my langfr, it's written "Ajouter un Wink", and it appears like this : "outer un Wink" because it seems the frame has a certain size that won't change with the text.
Could you perhaps change that in some way, so that any text would fit in perfectly ? It'll be useful for all the different translations :)

Thanks !


Title: Winks pluggin, a little work
Post by: Zaskar on January 26, 2007, 03:59:23 pm
Ok, thanks... Now theres a min width for the menu (5 thumbnails, should be enough). But I've found another thing. It doesn't delete the files when you remove a wink, so if you want to add it again you get an error. I'll remove the files and add some checks before moving from cache to winks menu. I'll upload this fixes later.

Any other translation over there?


Title: Winks pluggin, a little work
Post by: Fabioamd87 on January 26, 2007, 05:17:05 pm
is possible to set the window of the wink centered on the start of the animation?


Title: Winks pluggin, a little work
Post by: Zaskar on January 26, 2007, 05:28:23 pm
I don't know if the plugin can do anything, I think it depends on the way the windows manager place new windows, or in last place if there's any flash player option/argument to center itself.


Title: Winks pluggin, a little work
Post by: Trappski on January 26, 2007, 05:28:38 pm
Quote from: "Zaskar"
Ok, thanks... Now theres a min width for the menu (5 thumbnails, should be enough). But I've found another thing. It doesn't delete the files when you remove a wink, so if you want to add it again you get an error. I'll remove the files and add some checks before moving from cache to winks menu. I'll upload this fixes later.

Any other translation over there?


I quickly made a Swedish translation...
Code:

#langsv
amsn_lang_version 2
winks_show_add_new_wink_in_menu Visa \"Lägg till ny Blinkning\" I blink-menyn.
winks_close_menu_on_mouse_leave Stäng blink-menyn då musen lämnar (använd ej för beryl/compiz)
winks_cabextract_command CabExtract kommando:
winks_use_extrac32 Använd extrac32 (använd för WinXP) istället för cabExtract.
winks_swf_player_command Swf-spelar kommandon:
winks_swf_player_arguments Swf-spelar argument:
winks_add_new_wink Lägg till ny blinkning...
winks_introduce_new_wink_name Nytt namn på blinkning:
winks_cant_open_content_xml Kan inte öppna
winks_received_wink Tog emot Blinkning
winks_unknown_wink_waiting_for_it Okänd blinkning, väntar på den...
winks_wink_transfer_complete Överföring av blinkning klar:
winks_play_animation Spela animation...
winks_add_to_winks_menu Lägg till i blink-menyn
winks_sending_wink Skickar blinkning...
winks_sent_wink Skickad blinkning:
winks_wink_added Blinkning tillagd
winks_the_wink_is_already_in_winks_menu Blinkningen finns redan!
winks_play_wink_inmediatly_when_recived Spela blinkning direkt efter nedladdning.


Title: Winks pluggin, a little work
Post by: Zaskar on January 26, 2007, 05:39:30 pm
Thanks a lot again.


Title: Winks pluggin, a little work
Post by: WM-666 on January 26, 2007, 06:29:26 pm
The Dutch translation (Holland and Belgium)
langnl (langbe ?)

Code:
amsn_lang_version 2
winks_show_add_new_wink_in_menu Toon \"Nieuwe wink toevoegen\" in winks menu.
winks_close_menu_on_mouse_leave Sluit winks-menu bij muis verlaten (Uitzetten voor beryl/compiz).
winks_cabextract_command CabExtract command:
winks_use_extrac32 Gebruik extrac32 (voor WinXP) in plaats van cabextract.
winks_swf_player_command Swf speler commando:
winks_swf_player_arguments Swf speler argumenten:
winks_add_new_wink Wink toevoegen...
winks_introduce_new_wink_name Nieuwe Wink Naam:
winks_cant_open_content_xml Kan niet openen
winks_received_wink Ontvangen wink:
winks_unknown_wink_waiting_for_it Onbekende wink, wacht even...
winks_wink_transfer_complete Wink Transfer compleet:
winks_play_animation Speel animatie...
winks_add_to_winks_menu Voeg toe aan winks menu
winks_sending_wink Wink aan 't versturen...
winks_sent_wink Wink gestuurd:
winks_wink_added Wink toegevoegd!
winks_the_wink_is_already_in_winks_menu Wink staat al in winks menu!
winks_play_wink_inmediatly_when_recived Speel de wink onmiddellijk af na ontvangen.


Title: Winks pluggin, a little work
Post by: Zaskar on January 26, 2007, 07:24:05 pm
Here's the new one. Now includes Swedish and French languages ;), displays a wink menu big enough to show the "add new wink" button, and you can delete winks correctly (in fact, the will go back to cache).

http://in.solit.us/archives/download/9549


Title: Winks pluggin, a little work
Post by: Zaskar on January 26, 2007, 07:25:41 pm
WM-666: we posted at the same time, so I didn't see your message. I'll add it in the next zip, thanks.


Title: Winks pluggin, a little work
Post by: Trappski on January 26, 2007, 11:10:52 pm
i just need to ask to see if i get this right...
Quote
You can receive the wink message and if you have that wink it will be played, if not, you'll see only its name.

If you get a Wink that you did not have before. you can not view that just snatch it from the sender?

As i have now i do recieve the wink and i can add it and send it but not view it. but that is the correct behaviour? or do i miss a player argument somwhere? (using the Swiff Player)


Title: Winks pluggin, a little work
Post by: Kalinda on January 27, 2007, 12:24:40 am
Okay, just to report; it sure does work better with Flash 9 :) Also, I've found that telling the Flash 9 window to always appear on top solves any problems with it being under the other windows. So that's probably the closest we'll get to the way it looks in MSN, at least until gnash reaches Flash 9 and someone modifies the source and makes some crazy Flash thing for aMSN out of it that'll make it look the way it does in MSN...


Title: Winks pluggin, a little work
Post by: Zaskar on January 27, 2007, 12:26:47 am
If you receive an unknown wink (that is not in your menu and not in your cache), you'll see its name and some seconds later, when the wink transfer is complete, you'll be notified and able to play it or to add it to your winks menu. Do you see the wink thumbnail when the transfer is complete? If you see the thumbnail but you can't play it, then it should be something related to the flash player. If you don't see the thumbnail, it may be something related to cabextract. Or, in both cases, a bug in the plugin... If you press Ctrl+S in the main amsn window you can see a new window with some debug information. If you post what you see there when a new wink arrives or is played, it will be very helpfull to find out the problem. You can also post yout plugin configuration (flash player, arguments, cabextractor?).


Title: Winks pluggin, a little work
Post by: kakaroto on January 27, 2007, 02:29:38 am
Hello Zaskar, I had time again to test your plugin and I must say it is really GREAT!
I'm really surprised at how fast the development went. I didn't take a look at the code yet, but I'm sure it still needs a lot of cleaning :p

I just noticed a few things again, so here they are :
1 - after I loaded the plugin, I couldn't send winks from WLM because the clientid was wrong, you DID change it, but in order for the other clients to receive the change, the status must be changed (the client id is sent to the other clients when you change the status), so the best way to do this is to simply change the status to the current status. I don't remember the exact command, but something similar to
Code:
::MSN::ChangeStatus [::MSN::MyStatusIs]
should do the trick on loading and unloading of the plugin, can you take a look at that ?
2 - I noticed you said and you did move the folders from the cache directory to the winks directory when we add a wink.. don't you think you should 'copy' it instead ? the cache directory is only for the winks you receive, so it should keep all the winks in there and when you receive a wink, you should only check in the cache directory if it's there.. I know, it might be a waste of time, but at least it's clearer (always think of how 'another' winks plugin would react).
3 - sorry to say that, but I HATE the way you display the winks, I mean, it's "ok', but it's not really standard.. when we receive a custom smiley, we don't put a message "received custom smiley, please wait". I suggest you just ask for the wink, and not show any message, and once the wink is received, then you should post a message with the timestamp, and "$nick winks" instead of '$nick says', and the image and the friendly name under it, kind of like WML does. This will make it so much easier for the user to see and understand what he just received.
4 - an important one, your plugin works with the default winks, but winks taken from 'packs' don't work 100%, they do, but the friendly name doesn't. It also has some more info in the msnobj, like the partnerid, contenttype and contentid, and shit like that that we don't care about and we don't need. but what's important is that the friendly name is empty. and I saw you were good enough to use the filename instead of the friendlyname if it was empty. but here's the think, you should actually go get the friendly name from inside the content.xml. Here's a content.xml for a 'pack' wink :
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<package xmlns="http://messenger.msn.com/messengercontent/1.0" version="1.0" type="wink" xmlns:wink="http://messenger.msn.com/winks/1.0" wink:version="1.0" wink:name="Heart" partnerid="AG137768">
 <item contentid="W3084512" contenttype="M" type="animation" mimetype="application/x-shockwave-flash" file="3084512f.swf" wink:sizex="640" wink:sizey="480" />
 <item type="thumbnail" mimetype="image/png" file="3084512f.png" />
</package>

and here's the protocol when we receive one :
Code:
Data: <msnobj Creator="gklzyffe@hotmail.com" Size="42704" Type="8" Location="TFR1723.dat" Friendly="AAA=" SHA1D="HFcvuUC4rKjW70kftU5hYtFdHFY=" SHA1C="wDooCBrik7gRHxics7BDObhporQ=" contenttype="M" contentid="W3084512" packid="137768" pg="IMUSCA" stamp="MIIIngYJKoZIhvcNA....." />

5 - you should maybe have a queue and wait until a wink is finished playing before playing the next one, but this is also sometimes annoying, so maybe, if you decide to implement it, have it as an option. Totally optional.
6 - I tried adding a wink and used the .mco from the cached directory, it failed. it couldn't open some_number/content.xml, but it created a directory under winks/some_number but it contained only the swf file. But the content.xml file was extracted in the cache directory, not in winks/some_number.
7 - I also noticed that in some cases extrac32.exe takes 100% CPU, freezes amsn and everything and seems to be stuck in an infinite loop. I *think* it happens when you try to extract a file over an already existing file, so if you try to add twice the same wink, it will probably freeze amsn. This happens if I try it with your plugin or if I launch extrac32.exe manually from the command line. I don't know where you found the command line arguments to extrac32.exe but maybe you can tell it "overwrite all", but beware that the files extracted with extrac32.exe seem to have the 'read only' flag.
8 - maybe you can make extrac32.exe invisible when it extracts.. now if shows a progress bar, usually it's very fast since winks are small files, but sometimes it might appear...
9- I tried adding a bouncy ball wink mco, it failed (see problem 6), then I RESTARTED amsn, and I tried to add a wink and I chose a .exe, and a .dll, and any other files which was meant to make it fail, it always complained : "couldn't open bouncy_ball.swf" which is weird, since bouncy ball is unrelated to those files, and I restarted amsn.. maybe the index.xml gets corrupted when adding a wink fails ?

I'm also wondering, when you do a 'add wink', how do you get the stamp ? does it work if you send a wink without a stamp ?

Apart from that, seriously, the wink give a great user experience. only problem remains the flash player and cabextract that need to be installed first, but that's not really an issue. maybe for the cab player add a 'browse' button to the frame...
congratulations on this great plugin, I'll be following this thread and as soon as you say it's final and stable, I'll upload it to SVN and put it in the website.
Keep it up!


EDIT : P.S: I just saw your readme.txt file, it's great to have it detailed like that. and btw, you say in it :
Quote
6) I found a bug! / I need more help!

   You always can ask for help or reports the problems you find in amsn's forums: http://www.amsn-project.net/forums/

Could you change that to the URL of this specific thread? I don't want people to post everywhere on the forum. Or you could just put the link to the plugins forum. thx


Title: Winks pluggin, a little work
Post by: Zaskar on January 27, 2007, 05:07:40 am
About adding new winks from the .mco. That's why I explained the difference between the .mco and the cab that is inside the mco. The file we get from the other client is the cab, not the mco; so you can't use the cache files to add then manually. To be more correct, the cache files should end in .cab, not .mco, that was confusing.
When you add from an mco, the mco contains the cab and the content with the stamp (there's another content in the cab with the filename for the thumbnail and the animation, but the stamp is not there). When you get the wink from the other client, I keep the stamp and the friendly name in an incomplete array in winks_cache, and I complete the rest of the information when transfer is finished.
When you add a wink that was in cache, it will desapear from cache and move to your winks list. When you receive a wink, it will first search in that list, second in cache, and then, if it's not found, will ask for. If you delete a wink from the menu, it goes back to the cache, that's just to avoid duplicating files.

About the way of presenting the wink, and the warn that one cames but is unknown, I'll add an option to the plugin configuration, because sometimes if your network is busy or slow, you have to wait a bit more to see the wink and then when you get it it's out of context with the actual chat, so I prefer to be warned in the moment it first arrives, but that can be customizable (uncheck for default?). It's not like the custom smileys that is replaced in a past message in the chat window. Anyway, but the official client has this delay too.

About the timestamp and the wink received message, no problem, I agree.

I'll also change the readme address to this one. Anyway, I'll read your post more carefully tomorrow and I'll try to fix those things.

Oh, one last... if you used the very first versions of the plugin, it would be a good idea to delete the wink folder and start collecting them again, many things has changed.


Title: Winks pluggin, a little work
Post by: kakaroto on January 27, 2007, 05:21:49 am
ok, thanks Zaskar. I understand, you're right, I completely forgot about the .mco/.cab thing... I wonder if we should change the filename of received winks to .cab instead of .mco.. what do you think ? I don't think it will affect you because you use $filename, right ?
I suggest you check if the filename ends with .mco before trying anything with it, you don't know how cabextract or extrac32.exe will react for an unknown file type.
About receiving the wink and show a message if not downloaded, I understand your point and I agree, but I would disagree on adding an option. I don't think adding an option would be a good idea because it's actually a useless customization. I think we should find a solution in the middle that everyone will like. What I propose is to do it the same way as for custom emoticons. With custom emoticons, we don't go back and replace the smileys, instead, we replace them right away, but we replace them with an empty image ([image create photo -name emoticon_$id -width 19 -height 19]). The image is there, but it's blank, and when we receive the smiley, we just create the image with the same name. In Tk, when you create an image with a name of an image that already exists, it overwrites that old image and updates all references to it, so it just looks like the emoticon got inserted in the old text.
The idea would be to have, when we receive a wink, something like this :
Quote

[22:00:00] KaKaRoTo winks :
[______]
[ image ]
[______]
Wink Friendly name

You would create this as soon as the wink is received. Since you get the friendly name from the start, you can already show it, the only thing remaining is the thumbnail and the swf. Those two can wait, so you can put an empty image there, and once you receive the wink, you recreate the image and it will automatically get updated.
You could even have a "wait" or a progress bar or an animated logo instead of the blank wink image, this way users will see it's loading, will see the friendly name, but without any huge annoying text saying "please wait" etc... and once it's downloaded, the image just updates itself and everyone's happy :)
What do you think ? do you like the suggestion ?


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 27, 2007, 11:26:06 am
another suggestion: adding the ability not to show the wink :D

I mean, as you do it for the voice clip, add play, save links and don't play it automatically... this is useful as someone may find winks an annoyance, and this way they can choose to either see the full animation or just be notified with the small preview-img; "save" button will "steal" the wink.

How about this? :)

btw, I can see this may be an annoyance _for Zaskar_ to implement :D so he can do that when he wants (if he wants ;)), but it would be nice :)


Title: Winks pluggin, a little work
Post by: Zaskar on January 27, 2007, 01:22:30 pm
NoWhereMan: There's already an option for that in the last zip. "Play wink immediately when received."? If you uncheck this, you'll see the thumbnail, but the animation won't be played untill you click on it. Is what you suggest? Or something else?


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 27, 2007, 01:25:43 pm
Quote from: "Zaskar"
NoWhereMan: There's already an option for that in the last zip. "Play wink immediately when received."? If you uncheck this, you'll see the thumbnail, but the animation won't be played untill you click on it. Is what you suggest? Or something else?


well sort of ;)


Title: Winks pluggin, a little work
Post by: Fabioamd87 on January 27, 2007, 01:50:21 pm
is possible to change the mode of visualization of the winks?
i mean, when you receive a wink should be like a file tranfer a link to play it and another to save, like this idea?


Title: Winks pluggin, a little work
Post by: NoWhereMan on January 27, 2007, 01:54:06 pm
Quote from: "Fabioamd87"
is possible to change the mode of visualization of the winks?
i mean, when you receive a wink should be like a file tranfer a link to play it and another to save, like this idea?


that's what I've just said :lol:


Title: Winks pluggin, a little work
Post by: Trappski on January 27, 2007, 02:12:58 pm
Quote from: "Zaskar"
If you receive an unknown wink (that is not in your menu and not in your cache), you'll see its name and some seconds later, when the wink transfer is complete, you'll be notified and able to play it or to add it to your winks menu. Do you see the wink thumbnail when the transfer is complete? If you see the thumbnail but you can't play it, then it should be something related to the flash player. If you don't see the thumbnail, it may be something related to cabextract. Or, in both cases, a bug in the plugin... If you press Ctrl+S in the main amsn window you can see a new window with some debug information. If you post what you see there when a new wink arrives or is played, it will be very helpfull to find out the problem. You can also post yout plugin configuration (flash player, arguments, cabextractor?).



I got this error
Eval: exec ""C:\Program\Swiff Player\SWFPlayer.exe"" "C:/Documents and Settings/Trappski/amsn/mtg_mephisto_hotmail_com/winks/cache/d24f906503bec7ce71df620f1d62d5a3/silly_face.swf" &
[14:01:20]
Output: extra characters after close-quote


And I just fixed it.
I changed changed "C:\Program\Swiff Player\SWFPlayer.exe" (the quotes were included) into C:\\Program\\Swiff\ Player\\SWFPlayer.exe

Now it works perfectly...


Title: Winks pluggin, a little work
Post by: Trip on January 27, 2007, 02:38:29 pm
Hi erverybody!

I will translate the Plugin into German! ;-) Nice work!

Edit:

The Translation into German is finished! But i have Problems with the German "Umlauten" (for example: Ä Ü Ö and ß)
And i dont know how i can fix it.... But here is the Translation!

Quote
amsn_lang_version 2
winks_show_add_new_wink_in_menu Zeige \"Wink hinzufügen\" im Menü zeigen.
winks_close_menu_on_mouse_leave Schließe Winks Menü beim Schließen (für beryl/compiz).
winks_cabextract_command CabExtract Befehl:
winks_use_extrac32 Benutze extrac32 (bei WinXP setzen) instead cabextract.
winks_swf_player_command Swf Spieler Befehl:
winks_swf_player_arguments Swf Spieler Argumente:
winks_add_new_wink Wink hinzufügen
winks_introduce_new_wink_name Neue Wink Bezeichnung:
winks_cant_open_content_xml Kann nicht öffnen
winks_received_wink Empfangender Wink:
winks_unknown_wink_waiting_for_it Unbekannter Wink, warte auf es...
winks_wink_transfer_complete Wink transfer komplett:
winks_play_animation Animation abspielen...
winks_add_to_winks_menu Ins Wink Menü intregieren
winks_sending_wink Sende Wink...
winks_sent_wink Wink senden:
winks_wink_added Wink hinzugefügt!
winks_the_wink_is_already_in_winks_menu Der Wink befindet sich schon im Wink Menü!
winks_play_wink_inmediatly_when_recived Wink sofort nach Empfang abspielen.
winks_wink_deleted Der Wink wurde gelöscht.
winks_wink_renamed Der Wink wurde umbenannt.


Title: Winks pluggin, a little work
Post by: Zaskar on January 27, 2007, 04:29:12 pm
How is the German filename for the translation? langXX?


Title: Winks pluggin, a little work
Post by: Trappski on January 27, 2007, 04:43:09 pm
Quote from: "Zaskar"
How the german filename for the translation? langXX?

it should be  langde


Title: Winks pluggin, a little work
Post by: Trip on January 27, 2007, 05:52:39 pm
Hi!

Please dont forget that this version has Problems with the "Umlaute".... But you will see this only in the Pref. Menu! The rest works very good!


Title: Winks pluggin, a little work
Post by: Zaskar on January 27, 2007, 06:36:06 pm
Hi again. Here's the new stuff:

http://in.solit.us/archives/download/9574

Kakaroto:
1 - Changing status... Done (I've added a catch for this line, otherwise I get an error when it's loaded at amsn startup).
3 - Changing the way the unknown wink is displayed... Partially done? You'll see an image that says "please wait..." (we could draw something better later) until the real thumbnail is received.
4/9? - .cab/.moc... yes, we should change the filename of received winks to .cab instead of .mco. The open file dialog now is constrained to the mco extension.
5 - Playing queque... I exec the flash player with an extra "&" for avoiding amsn to "hang" while the wink is being played, so I can't use a queque (or ata least I don't know how).
7 - extrac32 hangs... I've noticed that only once in my firsts test, I still don't know where it comes from.
8 - hidding extrac32... I didn't found any documentation about the use of extrac32, only one example on google.
P.S.: README now links to the plugins forum, and this topic too.

About being final and stable. I think now it's almost stable, (but may be only for me). Final? I don't think it will be final, there's always something to workaround. I'll try to clean the code again soon, but we are still doing lot of modifications on it. About the langen file and the Readme.txt, my English is not perfect, so if you see something wrong please tell me.

Trip: "Umlaute"? I don't know exactly what you mean or what should I change? Is only a character encoding trouble or something else?

There's one more thing missing. How can I know if the other client supports winks? (Kakaroto, do you remember some api?, there must be one over there).


Title: Winks pluggin, a little work
Post by: Trappski on January 27, 2007, 06:54:36 pm
I added the three new lines in the swedish language file and here are two corrections for the langen

The two fixes in langen
Code:

Line 5: winks_use_extrac32 Use extrac32 (set for WinXP) instead of cabextract.
Line 20: winks_play_wink_inmediatly_when_recived Play wink immediately when received.


The three new lines added to langsv:
Code:

Line 21: winks_wink_deleted Blinkningen har blivit borttagen.
Line 22: winks_wink_renamed Blinkningen har bytt namn.
Line 23: winks_cant_add_now_wait_thumbnail Vänta på tumnagelbild innan du lägger till.


Title: Winks pluggin, a little work
Post by: Trip on January 27, 2007, 07:40:33 pm
Hi! Ive fixed some Language "Bugs" und the "Umlaute" Problem...Now the transaltion ist final!

Quote
amsn_lang_version 2
winks_show_add_new_wink_in_menu \"Wink hinzufuegen\" im Menue zeigen.
winks_close_menu_on_mouse_leave Schließe Winks Menue beim Schließen (fuer beryl/compiz).
winks_cabextract_command CabExtract Befehl:
winks_use_extrac32 Benutze extrac32 (bei WinXP setzen) instead cabextract.
winks_swf_player_command Swf Spieler Befehl:
winks_swf_player_arguments Swf Spieler Argumente:
winks_add_new_wink Wink hinzufuegen
winks_introduce_new_wink_name Neue Wink Bezeichnung:
winks_cant_open_content_xml Kann nicht öffnen
winks_received_wink Empfangender Wink:
winks_unknown_wink_waiting_for_it Unbekannter Wink, warte auf es...
winks_wink_transfer_complete Wink transfer komplett:
winks_play_animation Animation abspielen...
winks_add_to_winks_menu Ins Wink Menü integrieren
winks_sending_wink Sende Wink...
winks_sent_wink Wink senden:
winks_wink_added Wink hinzugefuegt!
winks_the_wink_is_already_in_winks_menu Der Wink befindet sich schon im Wink Menue!
winks_play_wink_inmediatly_when_recived Wink sofort nach Empfang abspielen.
winks_wink_deleted Der Wink wurde geloescht.
winks_wink_renamed Der Wink wurde umbenannt.


Title: Winks pluggin, a little work
Post by: Fenix-TX on January 27, 2007, 07:41:00 pm
Hi! When i receive a wink and i click to add, i have a bug error:

Code:

incomplete operator "="
in expression " "$wink(img)" = "---unknown-wink---" "
    (parsing expression " "$wink(img)" = "---un...")
    invoked from within
"if { "$wink(img)" = "---unknown-wink---" } {
tk_messageBox -message "[trans winks_cant_add_now_wait_thumbnail]" -parent [::ChatWindow::For $chati..."
    (procedure "::winks::AddWinkFromCache" line 20)
    invoked from within
"::winks::AddWinkFromCache jesusvxxx@sadamsnuser.com 6AmD4adD2hjzivq1LjTDtnYgrx4="
    invoked from within
".container_0.msg_0.f.out.scroll.text.copy_wink_998326562a545b8ea007db019af27572 invoke active"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list $w invoke active]"
    (procedure "tk::MenuInvoke" line 50)
    invoked from within
"tk::MenuInvoke .container_0.msg_0.f.out.scroll.text.copy_wink_998326562a545b8ea007db019af27572 1"
    (command bound to event)


Title: Winks pluggin, a little work
Post by: Zaskar on January 27, 2007, 10:13:10 pm
* fixed the aspect ratio for the winks menu.
* updated some languages files.
* added the missing '=' in AddWinkFromCache
* Changed the message for received wink to "[timestamp] [display name] winks: [Thumbanil] "wink_name".".

http://in.solit.us/archives/download/9581


Title: Great Implementation Zaskar
Post by: corvusd on January 28, 2007, 12:18:51 pm
The last version Winks-20070127 don't show the botton y the windows chat.

My version the amsn is a svn-7850.
My Os Linux-Ubuntu-Breezy, my TCL/TK 8.5.

I'm hope help with this info.

Thank a lot.

Greetings Corvusd.

Sorry for my My English.


Title: Re: Great Implementation Zaskar
Post by: square87 on January 28, 2007, 08:17:25 pm
Hello.
I had the same error of Fenix-TX, then i updated to Winks-20070127 and i have the same problem of Corvusd.
In particular:
- The winks button isn't shown in chatwindow.
- If i receive a wink i see: [17:21:52] Mark winks_yourcontact_winks  "Hello hello".
- I cannot see winks.

I have r7855, with tcl/tk 8.5 beta 5


Title: Winks pluggin, a little work
Post by: Zaskar on January 28, 2007, 09:10:15 pm
You don't see the winks menu button in your chat windows? Or you don't see the thumbnail when you receive one? I don't understand the error and/or I can't reproduce it. Here it works for me. Anyway, there where some little changes, so here's the file again:

http://in.solit.us/archives/download/9627


Title: Winks pluggin, a little work
Post by: kakaroto on January 28, 2007, 09:28:15 pm
Quote
Kakaroto:
1 - Changing status... Done (I've added a catch for this line, otherwise I get an error when it's loaded at amsn startup).
3 - Changing the way the unknown wink is displayed... Partially done? You'll see an image that says "please wait..." (we could draw something better later) until the real thumbnail is received.
4/9? - .cab/.moc... yes, we should change the filename of received winks to .cab instead of .mco. The open file dialog now is constrained to the mco extension.
5 - Playing queque... I exec the flash player with an extra "&" for avoiding amsn to "hang" while the wink is being played, so I can't use a queque (or ata least I don't know how).
7 - extrac32 hangs... I've noticed that only once in my firsts test, I still don't know where it comes from.
8 - hidding extrac32... I didn't found any documentation about the use of extrac32, only one example on google.
P.S.: README now links to the plugins forum, and this topic too.

About being final and stable. I think now it's almost stable, (but may be only for me). Final? I don't think it will be final, there's always something to workaround. I'll try to clean the code again soon, but we are still doing lot of modifications on it. About the langen file and the Readme.txt, my English is not perfect, so if you see something wrong please tell me.

Trip: "Umlaute"? I don't know exactly what you mean or what should I change? Is only a character encoding trouble or something else?

There's one more thing missing. How can I know if the other client supports winks? (Kakaroto, do you remember some api?, there must be one over there).

Hello, I'm back,
1 - good :) and yes, I didn't think of it, plugins are loaded before the protocol functions are loaded, so a catch is necessary. You should maybe also do a check if the current status is != "FLN" because you don't want to change status if you're not connected...
3 - cool, I'm happy you liked the suggestion, I'll try the plugin later and tell you what I think.
4 - if the Friendlyname is empty, you should get the name of the wink from the content.xml, the <package> tag, the "wink:name" attribute.
5 - it is possible iirc, I think if you pipe it, like
Code:
set fd [open "| $flashplayer $file"]
, then you can have a fileevent on the $fd and when the file is at [eof], then it means the process finished. with the "|" it means you execute a command and pipe the stdout to the file descriptor. read the man pages for 'exec' and 'open' to understand how it works (note, I never used it so I'm not even sure what I said it right).
7 - I really think it hangs when the file already exists, maybe you should check if a file exists before and if yes, delete it before calling extrac32.exe
8 - it's ok, it's not important.

about stable, some people are still complaining here. when noone has big issues, I'll upload it, I'll wait for your next version and test it.
Trip, the umlaute, is probably caused by bad file encoding.

Quote
cab/.moc... yes, we should change the filename of received winks to .cab instead of .mco. The open file dialog now is constrained to the mco extension.

I'll take care of it.

Quote
There's one more thing missing. How can I know if the other client supports winks? (Kakaroto, do you remember some api?, there must be one over there)

you can know this using the client id of the other contact, you can do :
Code:
if { [expr {[::abook::getContactData $email clientid] & 0x008000}] != 0 } {
   set supports_winks 1
}  else {
   set supports_winks 0
}


Title: Winks pluggin, a little work
Post by: square87 on January 28, 2007, 10:12:05 pm
I downloaded the new plugin revision.
I don't see the winks menu button in my chat windows and i don't see winks that i receive.

EDIT

I see a small dot instead of icon of _winks menu button__.

(http://upload5.postimage.org/401882/5.jpg) (http://upload5.postimage.org/401882/photo_hosting.html)


Title: Winks pluggin, a little work
Post by: Zaskar on January 28, 2007, 10:18:55 pm
Ctrl+S, what does Status Log says?


Title: Winks pluggin, a little work
Post by: Fenix-TX on January 28, 2007, 10:56:59 pm
There is a problem with the zip file, i can't open lang and pixmaps folders. I think that the zip file is corrupted.

EDIT There is a problem with permissions in fact and not a corrupted file. I had to set a correctly permissions to enter on those folders...


Title: Winks pluggin, a little work
Post by: Zaskar on January 29, 2007, 01:22:44 am
Here's another zip:

http://in.solit.us/archives/download/9639

Little changes:
* fixed extrac32 use... I found its help and added the "/Y" to force replacement, now it should not hang anymore
* now it checks if the other client support winks... if not, shows a message
* now it checks the status in Init (see if it's =! "HDN" && =! "FLN"), that "if" replaces the catch

About the wink name, the winks I use to test doesn't have their names in their content.xml.

Note to "translators": there are a few new lines since the first langen file... (and many missing languages).


Title: Winks pluggin, a little work
Post by: square87 on January 29, 2007, 09:13:42 am
So...
Winks play with:
gnash, arguments: -s 2 -1        (with & it doesn't work)
firefox, arguments: -s 2 -1 &    (without & it doesn't work)


Title: Winks pluggin, a little work
Post by: snipe2004 on January 29, 2007, 11:12:27 am
Zaskar, here's the new langfr file :
Code:
amsn_lang_version 2
winks_show_add_new_wink_in_menu Afficher \"Ajouter un wink\" dans le menu.
winks_close_menu_on_mouse_leave Fermer le menu lorsque la souris ne s'y trouve plus (Désactiver si vous utilisez Beryl/Compiz).
winks_cabextract_command Commande de CabExtract:
winks_use_extrac32 Utiliser Extrac32 (pour WinXP) à la place de CabExtract.
winks_swf_player_command Commandes du lecteur SWF:
winks_swf_player_arguments Arguments du lecteur SWF:
winks_add_new_wink Ajouter un wink
winks_introduce_new_wink_name Renommer le wink:
winks_cant_open_content_xml Ouverture impossible!
winks_received_wink Wink reçu:
winks_unknown_wink_waiting_for_it Transfert en cours...
winks_wink_transfer_complete Transfert terminé:
winks_play_animation Jouer l'animation...
winks_add_to_winks_menu Ajouter au menu
winks_sending_wink Envoi du wink...
winks_sent_wink Wink envoyé:
winks_wink_added Wink ajouté!
winks_the_wink_is_already_in_winks_menu Le Wink est déjà disponible dans le menu!
winks_play_wink_immediatly_when_recived Jouer le wink immédiatement à la réception.
winks_wink_deleted Wink supprimé.
winks_wink_renamed Wink renommé.
winks_cant_add_now_wait_thumbnail Patientez jusqu'au moment où vous voyez l'aperçu du wink pour l'ajouter.
winks_cant_play_now_wait_thumbnail Patientez jusqu'au moment où vous voyez l'aperçu du wink pour le jouer.
winks_yourcontact_winks vous envoye le wink:
winks_yourcontact_amsn_client_doesnt_supports_winks utilise un client ne disposant pas de cette fonctionnalité.


And a little typo in the langen:
Code:
winks_play_wink_immediatly_when_recived Play wink immediately when received.


Notice that lang de/es/fr/sv files seems to be corrupted... I can't open them here, and reDL - re unzip your .zip file three times.

But I'ld like to thank you once more for all the work you do on this great plugin :)
Thanks :P

And PS: don't wanna start another communitarian fight here, but in Belgium we got three languages : dutch, french, and german. I think a langbe file (whatever language would be used in it) is an error. We Belgian are used to choose french, dutch or german as language ;)

EDIT: succeeded to open the "corrupted" files using a terminal and gedit... don't know why I can't do it in graphical mode, but amsn can't also read them, so no real problem...


Title: Winks pluggin, a little work
Post by: Fenix-TX on January 29, 2007, 11:49:10 am
Quote from: "snipe2004"

EDIT: succeeded to open the "corrupted" files using a terminal and gedit... don't know why I can't do it in graphical mode, but amsn can't also read them, so no real problem...


Quote from: "Fenix-TX"

EDIT There is a problem with permissions in fact and not a corrupted file. I had to set a correctly permissions to enter on those folders...


The problem with permissions is the reason. With KDE i have to edit advanced permissions and mark this option (i don't know which is in English):

(http://upload5.postimage.org/407660/captura20.jpg) (http://upload5.postimage.org/407660/photo_hosting.html)


Title: Winks pluggin, a little work
Post by: Zaskar on January 29, 2007, 01:37:54 pm
square87: I can use firefox as the swf player without arguments. In gnash, "-1" is for playng the wink only once (otherwise gnash won't close after playing) and "-s 2" is to show them scaled, twice the original size... it's optional. The & shouldn't be used anymore, the plugin adds it internally at the end always, it is to avoid amsn waiting the player to end.

About langbe, what do the others think? Should I remove this file? or change to other language?

About permissions, I thought that zip files didn't remember permisions, but I may be wrong. You can do "chmod -R 777 *" in the winks folder to give all the files all the permissions, I'll do it before uploading the next zip. Anyway, they should be readable at least to the user that put them there, do you unzip with one user and run amsn with a different one?


Title: Winks pluggin, a little work
Post by: Trappski on January 29, 2007, 02:17:48 pm
new langsv

Code:

amsn_lang_version 2
winks_show_add_new_wink_in_menu Visa \"Lägg till ny Blinkning\" I blink-menyn.
winks_close_menu_on_mouse_leave Stäng blink-menyn då musen lämnar (använd ej för beryl/compiz)
winks_cabextract_command CabExtract kommando:
winks_use_extrac32 Använd extrac32 (använd för WinXP) istället för cabExtract.
winks_swf_player_command Swf-spelar kommandon:
winks_swf_player_arguments Swf-spelar argument:
winks_add_new_wink Lägg till ny blinkning...
winks_introduce_new_wink_name Nytt namn på blinkning:
winks_cant_open_content_xml Kan inte öppna
winks_received_wink Tog emot Blinkning
winks_unknown_wink_waiting_for_it Okänd blinkning, väntar på den...
winks_wink_transfer_complete Överföring av blinkning klar:
winks_play_animation Spela animation...
winks_add_to_winks_menu Lägg till i blink-menyn
winks_sending_wink Skickar blinkning...
winks_sent_wink Skickad blinkning:
winks_wink_added Blinkning tillagd
winks_the_wink_is_already_in_winks_menu Blinkningen finns redan!
winks_play_wink_inmediatly_when_recived Spela blinkning direkt efter nedladdning.
winks_wink_deleted Blinkningen borttagen.
winks_wink_renamed Blinkningen omdöpt.
winks_cant_add_now_wait_thumbnail Vänligen vänta på minityrbilden av blinkningen innan du lägger till den.
winks_cant_play_now_wait_thumbnail Vänligen vänta på minityrbilden av blinkningen innan du spelar den.
winks_yourcontact_winks Blinkningar:
winks_yourcontact_amsn_client_doesnt_supports_winks använder en klient som inte stödjer blinkningar.


btw... i don't use this language myself so someone please tell if there is something that looks stupid in the translation.
Swedish + Technical stuff  just does not work well together  :P


Title: Winks pluggin, a little work
Post by: Fenix-TX on January 29, 2007, 02:51:17 pm
Hi! i've made a better spanish translation:

Code:

amsn_lang_version 2
winks_show_add_new_wink_in_menu Mostrar \"Añadir Guiño\" en el menú de guiños.
winks_close_menu_on_mouse_leave Cerrar el menú al sacar el ratón (desmarcar si usas beryl/compiz).
winks_cabextract_command Comando cabextract:
winks_use_extrac32 Usar extrac32 en lugar de cabextract (marcar si usas WIN XP).
winks_swf_player_command Comando del reproductor flash:
winks_swf_player_arguments Argumentos para el reproductor flash:
winks_add_new_wink Añadir un nuevo guiño...
winks_introduce_new_wink_name Nombre del guiño nuevo:
winks_cant_open No se pudo abrir
winks_received_wink Se recibió el guiño:
winks_unknown_wink_waiting_for_it Guiño desconocido, esperando...
winks_wink_transfer_complete Transferencia del guiño finalizada:
winks_play_animation Reproducir animación...
winks_add_to_winks_menu Añadir al menú de guiños
winks_sending_wink Enviando guiño...
winks_sent_wink Guiño enviado:
winks_wink_added Guiño añadido.
winks_the_wink_is_already_in_winks_menu El guiño ya se encuentra en el menú.
winks_play_wink_immediatly_when_recived Reproducir el guiño inmediatamente cuando se recibe.
winks_wink_deleted Se ha eliminado el guiño.
winks_wink_renamed Se ha renombrado el guiño.
winks_cant_add_now_wait_thumbnail Por favor, espera a que aparezca la imagen del guiño para añadirlo.
winks_cant_play_now_wait_thumbnail Por favor, espera a que aparezca la imagen del guiño para reproducirlo.
winks_yourcontact_winks le ha enviado un guiño:
winks_yourcontact_amsn_client_doesnt_supports_winks está utilizando un cliente messenger que no es compatible con los guiños.


UPDATED AGAIN


Title: Winks pluggin, a little work
Post by: lunaparadox on January 30, 2007, 03:06:39 pm
Hey nice job. I've been testing on Linux. The plug in works as expected in mepis  on Slackware I'm able to save winks sent to me but unable to save winks that I downloaded. when saving downloaded winks I get the following error winks_cant_open "content.xml".
I can use Firefox to play the winks in flash but am unable to get the stand alone version of flash player to work. I was able to get swift player to work from swift-tools.net.
Again thanks for all the hard work and I hope this helps.


Title: Winks pluggin, a little work
Post by: Zaskar on January 30, 2007, 03:29:17 pm
I've tested the "add new wink..." and it works for me. I use mco files (I think this is "the" format for downloaded winks), I don't know if you can get winks in any other format, what files are you using?... About the gflashplayer, I'm also an Slackware user (but my slackware is very changed) and I don't have any trouble to run it, you can get it in http://labs.adobe.com/downloads/flashplayer9.html or compile gnash. Is there a swift player for linux??? I thougth it was only for win32.


Title: Winks pluggin, a little work
Post by: Zaskar on January 30, 2007, 03:34:59 pm
Here's another zip. There's nothing new, only some langs corrections.

http://in.solit.us/archives/download/9714


Title: Winks pluggin, a little work
Post by: lunaparadox on January 30, 2007, 04:36:58 pm
http://www.swift-tools.net/ is the link to swiftplayer for linux. mco is the files I'm using allso. like I said in mepis it works flawlessly. just can't seem to get it to work in slack probably somthing with my config. new slack install version 11.


Title: Winks pluggin, a little work
Post by: kakaroto on January 30, 2007, 06:42:15 pm
Hi Zaskar,
In revision 7863, aMSN now saves the winks as .cab files, as you requested. Would you mind making sure your plugin works correctly with these changes ?
thanks.
and great work, keep it up :)


Title: Winks pluggin, a little work
Post by: Zaskar on January 30, 2007, 07:24:28 pm
It works ok.


Title: Winks pluggin, a little work
Post by: lucianolev on February 08, 2007, 12:37:06 am
Hi!
First of all, as I'm new here, I want to thank all aMSN developers for such wonderful msn client.

As regards this plugin, I got some problems:

1. When somebody sends me a winks, they are not added to the winks menu.
2. Is there a way to use adobe flash 9 directly without firefox being open? Isn't a standalone application available?
3. Could you please package the plugin with tar.gz so as to preserve normal permissions on linux?

Thanx a lot to all of you again.

See you.

PS: Using latest SVN by the way.


Title: Winks pluggin, a little work
Post by: majinsoftware on February 08, 2007, 01:18:24 am
I just use the flash player that came with macro media flash and enter the location to it in the plugins config

Heres the rar of it http://www.filefactory.com/file/15c9f8/

make sure you use dubble slash other wise it doesn't work. ("C://flash.exe")

You can use gnash for linux.

But all this has been said a few times in this topic.

To add it to your wink menu right click on the icon on the screen and it should give you some options.


Title: Winks pluggin, a little work
Post by: kakaroto on February 08, 2007, 05:41:36 am
Hi lucianolev,
1 - read the forum, it is the expected behavior, you need to click on the wink and press the add wink item.
2 - read the README file, it's not there for nothing! (also said in this forum thread)
3 - true, could be done, but it's not yet released officially, when it will be in the website, yes, otherwise, just do the simple permission trick.

@majinsoftware, because of his third question, you should guess he's on linux, + he asked for .tar.gz, so why give a link to .rar :p anyways, thx for the help :)


@Zaskar, when is the next version going to be available? how about adding an option for "automatically steal winks" and you still didn't fix the problem with non-default winks showing no name (I pasted the content.xml file of one of those winks, the name is in there...). I think you should also add a newline after the "$nick winks". And the name of the wink should be under the thumbnail, and you should have a "Play \"$name\"" instead, which, when clicked, will make it play.


Title: Winks pluggin, a little work
Post by: Zaskar on February 08, 2007, 06:37:13 am
I didn't made a new version, because I didn't knew what to do.
About the wink name, my examples doesn't have it, so it's not a rule that the name is in the wink, so I think I can't use it. When you receive a wink with no name, it takes the file name (I know that this name is almost equal to nothing, it just for not leaving it empty), and when you add one from an mco, it ask you to introduce the name you want. And at any time you can modify it clicking the wink in the winks menu with the middle mouse button.
A little thing I'll do is autoreplace simple slash \ with double ones \\ in the flash player and cabextract paths.
About the way the wink is notified, ok, I can change it.
Do you prefer a .tar.gz? I always prefer using tgzs, but as I saw that most of the amsn's plugins where zipped, I've uploaded a zip file.


Title: Winks pluggin, a little work
Post by: majinsoftware on February 08, 2007, 01:02:25 pm
Heres some pixel maps that go better with the Emerald-2.0 skin.

Just replace the current ones in winks folders pixmaps.



http://www.wikiupload.com/download_page.php?id=74582


Title: Winks pluggin, a little work
Post by: Simple me on February 08, 2007, 09:33:54 pm
Quote from: "majinsoftware"
Heres some pixel maps that go better with the Emerald-2.0 skin.

Just replace the current ones in winks folders pixmaps.



http://www.wikiupload.com/download_page.php?id=74582


Don't know where your link is going but for me it doesn't go to the pics that match emerald but if we are contributing pics i might as well enter the ones i am using with emerald. Maybe the could be added or not it's up to the developer.
normal one (http://img361.imageshack.us/img361/3528/winksbutoe2.png)

hovered one(http://img361.imageshack.us/img361/8061/41639467ao6.png)

greetz,

Michel

[/img]


Title: Winks pluggin, a little work
Post by: TheSpunkyLobster on February 09, 2007, 02:20:38 pm
Hey newbie to linux here :)

I've installed the plugin and it kind of works :) I installed flash player 9 as directed and that seems to be also set up fine, but I'm not sure what I should be putting in the command box of the wink config to launch it.

Any help appreciated :)


Title: Winks pluggin, a little work
Post by: Zaskar on February 09, 2007, 02:59:49 pm
If you downloaded the player from adobe labs (FP9_standalone_beta_112006.tar.gz)  read this:

      It depends on where did you put the player b¡nary (that is the file inside the "flash-player-standalone-9.X.XX.XX" folder in the tgz). You can try launching it from a console, just typing "gflashplayer" and if it's loaded, you can write just "gflashplayer" in the  "Swf player command" field. If it does not launch, it means that the file is not in the "executable path". You have two options: One is to copy the file to some directory in the "executable path" (you can do "echo $PATH" to see the list; ej to "/usr/bin"); the other is to write the full path in the "Swf player command" field (ej: /home/zaskar/flash-player-standalone-9.0.21.78/gflashplayer). The field "Swf player arguments" should be empty for "flash player 9".

If you where warned that flashplayer 9 is not anymore in adobe labs and where redirected to adobe.com (I've realized today about this change in the adobe's web), the file you get there has the browser plugin, but not the standalone player. Does anybody knows where can we download the linux standalone player now?


Title: Linux flash standalone player
Post by: StrassBoy on February 09, 2007, 03:12:17 pm
Hi,

Debugger and standalone players :

http://www.adobe.com/support/flashplayer/downloads.html

For Linux : http://download.macromedia.com/pub/flashplayer/updaters/9/flash_player_9_linux_dev.tar.gz


Best regards,

Stany.


Title: Winks pluggin, a little work
Post by: Zaskar on February 09, 2007, 03:12:27 pm
I've found it. It's now on http://www.adobe.com/support/flashplayer/downloads.html . The specific file is: http://download.macromedia.com/pub/flashplayer/updaters/9/flash_player_9_linux_dev.tar.gz

You have to download this file and extract it somewhere. There you'll find a folder called standalone with two more folders inside: release and debug. Both of them contain another .tar.gz inside with the player binary. So, what you have to do is to extract "flashplayer" from "<somewhere>/flash_player_9_linux_dev/standalone/release/flashplayer.tar.gz". This is the standalone player we need. Note that it was renamed from "gflashplayer" to "flashplayer". So, again, you can copy this file to /usr/bin and write only flashplayer in the "Swf player command" field, or you can introduce the full path.


Title: langit
Post by: [S]haDoW on February 09, 2007, 04:40:12 pm
Good work ;)
This is italian translation:
Code:

amsn_lang_version 2
winks_show_add_new_wink_in_menu Mostra \"Aggiungi nuova animoticon\" nel relativo menù.
winks_close_menu_on_mouse_leave Chiudi il menù quando il mouse lascia l'area (disattivare per beryl/compiz).
winks_cabextract_command Comando estrazione Cab:
winks_use_extrac32 Usare extrac32 (per WinXp) per l'estrazione cab.
winks_swf_player_command Comando riproduttore Swf:
winks_swf_player_arguments Argomenti del riproduttore Swf:
winks_add_new_wink Aggiungi nuova animoticon...
winks_introduce_new_wink_name Nuovo nome animoticon:
winks_cant_open Impossibile aprire
winks_received_wink Animoticon ricevuta:
winks_unknown_wink_waiting_for_it Animoticon sconosciuta, attendere...
winks_wink_transfer_complete Trasferimento animoticon completato:
winks_play_animation Riproduci animazione...
winks_add_to_winks_menu Aggiungi al menù delle animoticon
winks_sending_wink Animoticon in trasmissione...
winks_sent_wink Animoticon trasmessa:
winks_wink_added Animoticon aggiunta!
winks_the_wink_is_already_in_winks_menu Animoticon già presente!
winks_play_wink_immediatly_when_recived Riproduci immediatamente l'animoticon al suo ricevimento.
winks_wink_deleted L'animoticon è stata cancellata.
winks_wink_renamed L'animoticon è stata rinominata.
winks_cant_add_now_wait_thumbnail Attendere finchè non si visualizza l'immagine da aggiungere.
winks_cant_play_now_wait_thumbnail Attendere finchè non si visualizza l'immagine per la riproduzione.
winks_yourcontact_winks animoticon:
winks_yourcontact_amsn_client_doesnt_supports_winks sta usando un client msn che non supporta le animoticon.


Suggestion: for rename/delete wink why don't use right button mouse ( now is center button mouse ) like menu smyle in amsn?


Title: Winks pluggin, a little work
Post by: TheSpunkyLobster on February 09, 2007, 04:57:05 pm
Awesome stuff thanks! Got it working fine now :)

Next 2 questions, see your going to love me! :)

Is the lack of sound something to do with my config or is that just how it is at the momment?

Secondly, is there any way to make the flashplayer window open on top of any other open windows?


Title: Winks pluggin, a little work
Post by: Zaskar on February 09, 2007, 05:18:23 pm
haDoW: Thanks, it will be in the next zip.
TheSpunkyLobster: The lack of sounds is cause by your swf player (or may be your os settings). The window focus policy depends on your window manager.

But I've fount something big today. gnash has an argument that let me plays the wink in any window, so may be we can play the wink in chat window, like in msn. I'm working on it now. The troubles are: the wink size (I'll have to reread all the content.xmls, the background (it's not transparent, so it doesn't look very good), and how to redraw the chat widow after the wink is played. The official flash player claims to have that option in its help, but it has no effect yet.


Title: Winks pluggin, a little work
Post by: NoWhereMan on February 09, 2007, 05:28:30 pm
Quote from: "Zaskar"
haDoW: Thanks, it will be in the next zip.
TheSpunkyLobster: The lack of sounds is cause by your swf player (or may be your os settings). The window focus policy depends on your window manager.

But I've fount something big today. gnash has an argument that let me plays the wink in any window, so may be we can play the wink in chat window, like in msn.


 :shock: cool!


Title: Winks pluggin, a little work
Post by: Fabioamd87 on February 09, 2007, 05:32:38 pm
wow :D


Title: Winks pluggin, a little work
Post by: TheSpunkyLobster on February 09, 2007, 05:43:30 pm
Quote from: "Zaskar"
haDoW: Thanks, it will be in the next zip.
TheSpunkyLobster: The lack of sounds is cause by your swf player (or may be your os settings). The window focus policy depends on your window manager.


Ok cool thanks for the reply :) As a pretty much complete newbie, any advice on where to start looking to sort the sound issues out if it's the player. I followed instructions in a previous post to extract the player, but not sure how I'd configure it. Using Adobe Flash Player.


Title: Winks pluggin, a little work
Post by: TheSpunkyLobster on February 09, 2007, 05:56:50 pm
And on reflection the sound now seems to be working fine :)


Title: Winks pluggin, a little work
Post by: [S]haDoW on February 09, 2007, 08:21:00 pm
I don't know if this is already reported..in this case sorry ;)..

There is a bug for a multi-conversion when try send a wink:

Code:

can't use empty string as operand of "&"
    while executing
"expr {[::abook::getContactData $chatid clientid] & 0x008000}"
    (procedure "::winks::SendWink" line 9)
    invoked from within
"::winks::SendWink .container_7.msg_8 AzBXDxf+Tcdvcans2TCRnoXh/jg="
    ("eval" body line 1)
    invoked from within
"eval $command"
    (procedure "ProcessQueue" line 37)
    invoked from within
"ProcessQueue $chatid"
    (procedure "::MSN::ChatQueue" line 10)
    invoked from within
"::MSN::ChatQueue ::MSN::SB33 [list ::winks::SendWink .container_7.msg_8 AzBXDxf+Tcdvcans2TCRnoXh/jg=]"
    (command bound to event)


Commented this part:
Code:

if { [expr {[::abook::getContactData $chatid clientid] & 0x008000}] == 0 } {
amsn::WinWrite $chatid "\n[::abook::getDisplayNick $chatid] [trans winks_yourcontact_amsn_client_doesnt_supports_winks] " green
return
}

the client don't check the support for the winks.. but send correctly the winks to other clients..
There was this equal problem with nudge on multi-conversion, resolved with:
Code:

set theysupport 0

set users [::MSN::usersInChat $chatid]

foreach chatid2 $users {
if {[::Nudge::check_clientid $chatid2]} {
#This is what the official client does...
#sends nudge to a multi-convo even when
#not everyone supports it
set theysupport 1
break
}
}


Bye


Title: Winks pluggin, a little work
Post by: Zaskar on February 09, 2007, 09:49:49 pm
Here's a new version... Many changes can bring many bugs, so test and write ;).

http://in.solit.us/archives/download/10967

* Added an option to play the wink animation inside the chat window, similar to the oficial client, but without transparent background. This option only works for gnash (as I've said before, the argument for doing this in adobe flash player has no effect, at least on the linux version). The bad thing is that in that way, we have to wait for the wink to finish before amsn returns to life (if I play it in background like before, I can't know when to hide the wink canvas and show the text again). This option is disable by default. Please check if you have the latest gnash version, because there are some arguments related to the size that were not present in older versions (I don't know how older).
* Now if you use only one "\" in any of the paths, it should internally add the second one (not tested yet).
* The default way to notify the wink is the one Kakaroto suggested. The old one is available from the configuration dialog.
* Fix the bug in multi-conversations (thanks haDoW).
* Added italian translation (thanks haDoW again).
* Inverted functions for right and middle mouse button in winks menu. Now middle is preview, right is edit/remove. Do mac users have a middle button? (I've never used a mac).
* Updated url for downloading flash player for linux in readme. (Still missing documentation about the new feature).
* If we recive a wink with no name, the way it find a name for it has changed. It first looks in the content.xml, and if it's not there, it uses the swf filename without the extension, it's usually more friendly than the cab name, as we don't have the cab and it's content when an unknown one arrives, it twill show no name the first time.

TODO: Update readme.txt, continue the research about gnash and embed playing, test everything in Win32 (I have XP, does someone over there have Vista?), clean the code again, listen to your complains and try to fix something.


Title: Winks pluggin, a little work
Post by: [S]haDoW on February 09, 2007, 11:03:45 pm
Update of langit with 3 missing keys:
Code:

winks_play_embed Riproduci animoticon dentro la finestra di chat (solo per gnash).
winks_notify_in_one_line Notifica la ricezione dell'animoticon in una linea.
wink_play Riproduci


What's the version of gnash you use?
I use gnash 0.7.2 ( there are the argument -j -k -x ) on linux gentoo but when i play the wink into chat window .. amsn freeze ( but i hear the sound of wink ) until the wink finish.


Title: Winks pluggin, a little work
Post by: Zaskar on February 09, 2007, 11:13:49 pm
I use gnash .7.1. If you do "gnash --help", the arguments "-j" and "-k" doesn't appear, but the do work. The freeze (of the rest of amsn while the wink is played) is somenthing I still can't avoid, but the wink should be showed. I'm guessing, but I didn't test it with tabbed windows, may be thats the problem... I'll test tomorrow. Thanks for the translation.


Title: Winks pluggin, a little work
Post by: Fenix-TX on February 09, 2007, 11:18:39 pm
Quote from: "Zaskar"
I use gnash .7.1. If you do "gnash --help", the arguments "-j" and "-k" doesn't appear, but the do work. The freeze (of the rest of amsn while the wink is played) is somenthing I still can't avoid, but the wink should be showed. I'm guessing, but I didn't test it with tabbed windows, may be thats the problem... I'll test tomorrow. Thanks for the translation.


Can you use my spanish translation? It's better than the default.


Title: Winks pluggin, a little work
Post by: Fabioamd87 on February 09, 2007, 11:57:23 pm
in multi chat windows, the plugin dont say who sent the wink


Title: Winks pluggin, a little work
Post by: Trappski on February 10, 2007, 12:13:10 am
Updated Swedish languagefile(langsv)
Code:

amsn_lang_version 2
winks_show_add_new_wink_in_menu Visa \"Lägg till ny Blinkning\" I blink-menyn.
winks_close_menu_on_mouse_leave Stäng blink-menyn då musen lämnar (använd ej för beryl/compiz)
winks_cabextract_command CabExtract kommando:
winks_use_extrac32 Använd extrac32 (använd för WinXP) istället för cabExtract.
winks_swf_player_command Swf-spelar kommandon:
winks_swf_player_arguments Swf-spelar argument:
winks_add_new_wink Lägg till ny blinkning...
winks_introduce_new_wink_name Nytt namn på blinkning:
winks_cant_open Kan inte öppna
winks_received_wink Tog emot Blinkning
winks_unknown_wink_waiting_for_it Okänd blinkning, väntar på den...
winks_wink_transfer_complete Överföring av blinkning klar:
winks_play_animation Spela animation...
winks_add_to_winks_menu Lägg till i blink-menyn
winks_sending_wink Skickar blinkning...
winks_sent_wink Skickad blinkning:
winks_wink_added Blinkning tillagd
winks_the_wink_is_already_in_winks_menu Blinkningen finns redan!
winks_play_wink_inmediatly_when_recived Spela blinkning direkt efter nedladdning.
winks_wink_deleted Blinkningen borttagen.
winks_wink_renamed Blinkningen omdöpt.
winks_cant_add_now_wait_thumbnail Vänligen vänta på minityrbilden av blinkningen innan du lägger till den.
winks_cant_play_now_wait_thumbnail Vänligen vänta på minityrbilden av blinkningen innan du spelar den.
winks_yourcontact_winks Blinkningar:
winks_yourcontact_amsn_client_doesnt_supports_winks använder en klient som inte stödjer blinkningar.
winks_play_embed Spela upp blinkning i konversationsfönstret(Endast för gnash).
winks_notify_in_one_line Meddela mottagen blinkning på en rad.
wink_play Spela upp


Title: Winks pluggin, a little work
Post by: Zaskar on February 10, 2007, 04:16:31 am
http://in.solit.us/archives/download/10984

* fixed the gnash hang when the chat window isn't yet open.
* updated langes, langit and langsv.


Title: Winks pluggin, a little work
Post by: lucianolev on February 10, 2007, 06:23:20 am
Thanks a lot!

Everything works perfectly.

 8)


Title: Winks pluggin, a little work
Post by: Zaskar on February 10, 2007, 07:29:57 am
Troubles: I've updated gnash to 7.2 and then playing inside chatwindow stop working because gnash 7.2 doesn't read the window-id argument after the -x, so I went back to gnash 7.1 (also, it has fewer dependencies). And about the win32 gnash version, it doesn't work at all for me, did anyone try that?

I've also realized that if you receive an unknown wink that doesn't contain its size in its content.xml and you try to play it inside the chatwindow you'll get an error. There is a wrong variable name in ReceivedWink, but it's already fixed for the next version.


Title: Winks pluggin, a little work
Post by: kakaroto on February 10, 2007, 08:05:12 am
Hello there,
I'm back, sorry for the delay,
Zaskar, I see you followed my post where I pasted the xml file for a wink with the name in the xml, thanks for taking care of it. If you need, PM me your email address, I can add you and send you those winks I got!
It's great news about the gnash being able to play embeded, it's really great! :)
About the file path you changed \ into \\, I think it would be safe to just change \ into / Tcl supports the / as the delimiter for directories.. but it should still work either way.
The plugin looks great so far! If I can suggest 2 new things (sorry to give you that much work!) :
1 - you could have in the config a frame with a combobox where you can choose your player, with a list, like gnash 7.1, gnash 7.2, flash, swfplayer, etc.. this way the user don't need to specify the command line arguments anymore, it makes it safer too.  just a suggestion!
2 - I just took a quick look again at your code, and I noticed something... you used [split $data " "] and [lsearch "attribute=*"] to read all the xmls.. that's baaddddddddddddd, and I'm sorry, I know it's entirely my fault for not letting you know before that there is an  API you can use for xml parsing, which is a lot easier to use and safer (we have problems before with all those lsearch, we used that method before too...) here's how :
you get an xml, let's say it's content.xml :
Code:

set xml [read [open content.xml]]
set xmllist [xml2list $xml]
# here you get a list with {$node $attribute_list $subnodes_list} where $subnodes_list is a list with the same format, and where a subnode list with 2 elements, where the first element is #text, means the second element is the value of the xml tag
set entry [GetXmlEntry $xmllist ":path:to:xml:entry"]
set second_entry [GetXmlEntry $xmllist ":path:to:xml:entry" 1]
set attr [GetXmlAttribute $xmllist ":path:to:xml:entry" "name_of_attribute"]
set node [GetXmlNode $xmllist ":path:to:xml:tag" $index]
set attr [GetXmlAttribute $node "tag" "attribute_name"]



So here's an example... for example for the content.xml (real code being executed and returned values)  :
Code:

(amsn) 70 % set xml {<?xml version="1.0" encoding="UTF-8" ?>
> <package xmlns="http://messenger.msn.com/messengercontent/1.0" version="1.0" type="wink" xmlns:wink="http://messenger.msn.com/winks/1.0" wink:version="1.0" wink:name="Heart" partnerid="AG137768">
>  <item contentid="W3084512" contenttype="M" type="animation" mimetype="application/x-shockwave-flash" file="3084512f.swf" wink:sizex="640" wink:sizey="480" />
>  <item type="thumbnail" mimetype="image/png" file="3084512f.png" />
> <test for="Zaskar" reason="to see how to use GetXmlEntry">
>    this is the Entry of the xml tag package:test
> <test2> this is a subnode with path package:test:test2 </test2>
> </test>
> </package>}
<?xml version="1.0" encoding="UTF-8" ?>
<package xmlns="http://messenger.msn.com/messengercontent/1.0" version="1.0" type="wink" xmlns:wink="http://messenger.msn.com/winks/1.0" wink:version="1.0" wink:name="Heart" partnerid="AG137768">
 <item contentid="W3084512" contenttype="M" type="animation" mimetype="application/x-shockwave-flash" file="3084512f.swf" wink:sizex="640" wink:sizey="480" />
 <item type="thumbnail" mimetype="image/png" file="3084512f.png" />
 <test for="Zaskar" reason="to see how to use GetXmlEntry">
   this is the Entry of the xml tag package:test
<test2> this is a subnode with path package:test:test2 </test2>
</test>
</package>
(amsn) 71 % set list [xml2list $xml]
package {xmlns http://messenger.msn.com/messengercontent/1.0 version 1.0 type wink xmlns:wink http://messenger.msn.com/winks/1.0 wink:version 1.0 wink:name Heart partnerid AG137768} {{item {contentid W3084512 contenttype M type animation mimetype application/x-shockwave-flash file 3084512f.swf wink:sizex 640 wink:sizey 480} {}} {item {type thumbnail mimetype image/png file 3084512f.png} {}} {test {for Zaskar reason {to see how to use GetXmlEntry}} {{#text {
   this is the Entry of the xml tag package:test
}} {test2 {} {{#text { this is a subnode with path package:test:test2 }}}}}}}
(amsn) 72 % GetXmlEntry $list "package:test"
 
   this is the Entry of the xml tag package:test

(amsn) 73 % GetXmlEntry $list "package:test:test2"
 this is a subnode with path package:test:test2
(amsn) 74 % GetXmlAttribute $list "package" "wink:name"
Heart
(amsn) 75 % set node [GetXmlNode $list "package:item" 0]
item {contentid W3084512 contenttype M type animation mimetype application/x-shockwave-flash file 3084512f.swf wink:sizex 640 wink:sizey 480} {}
(amsn) 76 % GetXmlAttribute $node "item" "type"
animation
(amsn) 77 % GetXmlAttribute $node "item" "wink:sizex"
640
(amsn) 78 % set node [GetXmlNode $list "package:item" 1]
item {type thumbnail mimetype image/png file 3084512f.png} {}
(amsn) 79 % GetXmlAttribute $node "item" "type"
thumbnail
(amsn) 80 % GetXmlAttribute $node "item" "file"
3084512f.png


I hope it is helpful enough for you so you can use it. I'm sure the code will look so much cleaner this way! if the entry is empty (like fore package:item) or the tag doesn't exist or the attribute doesn't exist, it returns an empty string. No errors possible :)
As you can see with the GetXmlNode, you can get different nodes if the same tag is repeated... then you can work on each node separately.. you can do a loop like this :
Code:

set i 0
while { 1 } {
   set node [GetXmlNode $list ":package:item" $i]
   if {$node == "" } {
      break
   }
    # process the node's value.. all paths should start with "item:..."
}


You want to clean your code a bit with this new info ?
I'll take a better look at your code when I get time and I can post more comments on it.
I hope this is useful and I hope you don't hate me for giving you more work!
Keep it up, it looks great so far!

p.s: thanks for the multiline notification, I like it better this way!
p.s.2: finding the name in the wink doesn't work... maybe because the wink has to be downloaded first before you can read the name but you already stored it at that point ?


Title: Winks pluggin, a little work
Post by: snipe2004 on February 10, 2007, 12:24:03 pm
Hi!

Here's the new langfr file :
Code:
amsn_lang_version 2
winks_show_add_new_wink_in_menu Afficher \"Ajouter un wink\" dans le menu.
winks_close_menu_on_mouse_leave Fermer le menu lorsque la souris ne s'y trouve plus (Désactiver si vous utilisez Beryl/Compiz).
winks_cabextract_command Commande de CabExtract:
winks_use_extrac32 Utiliser Extrac32 (pour WinXP) à la place de CabExtract.
winks_swf_player_command Commande du lecteur SWF:
winks_swf_player_arguments Arguments du lecteur SWF:
winks_add_new_wink Ajouter un wink
winks_introduce_new_wink_name Renommer le wink:
winks_cant_open Ouverture impossible!
winks_received_wink Wink reçu:
winks_unknown_wink_waiting_for_it Transfert en cours...
winks_wink_transfer_complete Transfert terminé:
winks_play_animation Jouer l'animation...
winks_add_to_winks_menu Ajouter au menu
winks_sending_wink Envoi du wink...
winks_sent_wink Wink envoyé:
winks_wink_added Wink ajouté!
winks_the_wink_is_already_in_winks_menu Le Wink est déjà disponible dans le menu!
winks_play_wink_inmediatly_when_recived Jouer le wink immédiatement à la réception.
winks_wink_deleted Wink supprimé.
winks_wink_renamed Wink renommé.
winks_cant_add_now_wait_thumbnail Patientez jusqu'au moment où vous voyez l'aperçu du wink pour l'ajouter.
winks_cant_play_now_wait_thumbnail Patientez jusqu'au moment où vous voyez l'aperçu du wink pour le jouer.
winks_yourcontact_winks vous envoie le wink:
winks_yourcontact_amsn_client_doesnt_supports_winks utilise un client ne disposant pas de cette fonctionnalité.
winks_play_embed Jouer le wink dans la fenêtre de conversation (seulement pour gnash).
winks_notify_in_one_line Afficher l'avertissement de réception d'un wink en une seule ligne
winks_play Jouer


And the report of an annoying bug, when I send a wink from one of my account to the other (it displays this TK error, and never download the wink :( ) :
Code:
ouldn't open "/home/famille/.amsn/my_email_adress/winks/4387c60527d435167393b2c413b2057357b4e473f654e497763555d3/4387c60527d435167393b2c413b2057357b4e473f654e497763555d3": no such file or directory
    while executing
"open "[file join $HOME winks $filename $filename]" w"
    (procedure "::MSNP2P::ReadData" line 644)
    invoked from within
"::MSNP2P::ReadData $p2pmessage $chatid"
    ("application/x-msnmsgrp2p" arm line 6)
    invoked from within
"switch $contentType {
text/plain {
::Event::fireEvent messageReceived $self $message
$message setBody [encoding convertfrom identity [strin..."
    (procedure "::SB::Snit_methodhandleMSG" line 100)
    invoked from within
"$self handleMSG $command $message"
    ("MSG" arm line 2)
    invoked from within
"switch [lindex $command 0] {
MSG {
$self handleMSG $command $message
}
BYE -
JOI -
IRO {
cmsn_update_users $self $comman..."
    (procedure "::SB::Snit_methodhandleCommand" line 24)
    invoked from within
"$options(-name) handleCommand $command $payload"
    (procedure "::Connection::Snit_methodreceivedData" line 37)
    invoked from within
"::MSN::SB1 receivedData"


And tx for all the work on this great plugin !!


Title: Winks pluggin, a little work
Post by: Fenix-TX on February 10, 2007, 01:18:32 pm
langes

Code:

amsn_lang_version 2
winks_add_new_wink Añadir un nuevo guiño...
winks_add_to_winks_menu Añadir al menú de guiños
winks_cabextract_command Comando cabextract:
winks_cant_add_now_wait_thumbnail Por favor, espera a que aparezca la imagen del guiño para añadirlo.
winks_cant_open No se pudo abrir
winks_cant_play_now_wait_thumbnail Por favor, espera a que aparezca la imagen del guiño para reproducirlo.
winks_close_menu_on_mouse_leave Cerrar el menú al sacar el ratón (desmarcar si usas beryl/compiz).
winks_introduce_new_wink_name Nombre del guiño nuevo:
winks_notify_in_one_line Notificar los guiños recibidos en una línea.
winks_play_animation Reproducir animación...
winks_play_embed Reproducir el guiño dentro de la ventana de conversación (sólo para gnash).
winks_play Reproducir
winks_play_wink_immediatly_when_recived Reproducir el guiño inmediatamente cuando se recibe.
winks_received_wink Se recibió el guiño:
winks_sending_wink Enviando guiño...
winks_sent_wink Guiño enviado:
winks_show_add_new_wink_in_menu Mostrar \"Añadir Guiño\" en el menú de guiños.
winks_swf_player_arguments Argumentos para el reproductor flash:
winks_swf_player_command Comando del reproductor flash:
winks_the_wink_is_already_in_winks_menu El guiño ya se encuentra en el menú.
winks_unknown_wink_waiting_for_it Guiño desconocido, esperando...
winks_use_extrac32 Usar extrac32 en lugar de cabextract (marcar si usas WIN XP).
winks_wink_added Guiño añadido.
winks_wink_deleted Se ha eliminado el guiño.
winks_wink_renamed Se ha renombrado el guiño.
winks_wink_transfer_complete Transferencia del guiño finalizada:
winks_yourcontact_amsn_client_doesnt_supports_winks está utilizando un cliente messenger que no es compatible con los guiños.
winks_yourcontact_winks le ha enviado un guiño:


Title: Winks pluggin, a little work
Post by: Auria on February 10, 2007, 03:46:46 pm
Snipe2004:
Dans langfr il y a une faute d'orthographe (There is a spelling mistake in langfr)

vous envoye le wink: devrait être vous envoie le wink:


Title: Winks pluggin, a little work
Post by: Zaskar on February 10, 2007, 04:10:06 pm
Kakaroto: I thinked about a combo before, but I see that there's no easy way to place a combo in the config dialog (I mean, in two lines, like checkboxes or text fields)... So I have to place a frame and put all my stuff in there (I saw spellcheck code), I'll do it after fixing the other bugs.
About parsing xmls: yes, it's not good at all, but I've just found those example lines somewhere. I'll change this, because that code is really confusing.


Title: Winks pluggin, a little work
Post by: snipe2004 on February 10, 2007, 04:30:51 pm
@ Auria : you're right, thanks for noticing :) I edited my post.
@ Zaskar : if you've already updated langfr with the file I pasted up there, please do it again (now, there isn't any mistake anymore I hope :P ) ;)

Sorry for the mistake :(

Tx


Title: Winks pluggin, a little work
Post by: Zaskar on February 11, 2007, 02:45:37 am
Another file:

http://in.solit.us/archives/download/11119

It fixes some little bugs in the way it reads the conent.xml and guess the missing information.
Some lang files has been updated.
The code is a little cleaner. Kakaroto: I didn't use the procs you told me because I have some winks that have garbage in its content.xml (one o two strange characters before the firs "<", I don't know if  the file was that wrong or it's a cabextract bug) and then those procs produce errors. Anyway, I've made two little procs that do that job, so the code where I need to read some field from an xml is a bit cleaner now.
I've added a Help button in the configuration dialog that opens a new window with README.txt. But this txt needs to be updated. I'll wait until I finish the other features before writing a new one.
About the combo box for selecting the flash player. It will only work for the player arguments because we still need the path to the binary, but I'll do it later.


Title: Winks pluggin, a little work
Post by: WM-666 on February 11, 2007, 11:41:38 am
Updated langnl / langbe
Feel free to add it whenever you desire

Quote
amsn_lang_version 2
winks_show_add_new_wink_in_menu Toon \"Nieuwe wink toevoegen\" in winks menu.
winks_close_menu_on_mouse_leave Sluit winks-menu bij muis verlaten (Uitzetten voor beryl/compiz).
winks_cabextract_command CabExtract command:
winks_use_extrac32 Gebruik extrac32 (voor WinXP) in plaats van cabextract.
winks_swf_player_command Swf speler commando:
winks_swf_player_arguments Swf speler argumenten:
winks_add_new_wink Wink toevoegen...
winks_introduce_new_wink_name Nieuwe Wink naam:
winks_cant_open_content_xml Kan niet openen
winks_received_wink Ontvangen wink:
winks_unknown_wink_waiting_for_it Onbekende wink, wacht even...
winks_wink_transfer_complete Wink transfer compleet:
winks_play_animation Speel animatie...
winks_add_to_winks_menu Voeg toe aan winks menu
winks_sending_wink Wink aan 't versturen...
winks_sent_wink Wink verstuurd:
winks_wink_added Wink toegevoegd!
winks_the_wink_is_already_in_winks_menu Wink staat al in winks menu!
winks_play_wink_immediatly_when_recived Speel de wink onmiddellijk af na ontvangen.
winks_wink_deleted Wink verwijderd.
winks_wink_renamed Wink is hernoemd.
winks_cant_add_now_wait_thumbnail Wacht tot je de wink-thumbnail ziet om deze toe te voegen.
winks_cant_play_now_wait_thumbnail Wacht tot je de wink-thumbnail ziet om deze af te spelen.
winks_yourcontact_winks winkt:
winks_yourcontact_amsn_client_doesnt_supports_winks gebruikt een messengerclient die geen Winks ondersteunt.
winks_play_embed Speel de wink in het chatvenster (enkel voor gnash).
winks_notify_in_one_line Geef ontvangen winks in 1 lijn weer.
winks_play Speel


Title: Winks pluggin, a little work
Post by: snipe2004 on February 11, 2007, 03:56:40 pm
Hi,

I don't know if the ReadMe used from the plug-in window can be displayed with different languages, but anyway here's the ReadMe-fr file, feel free to include it or not. I've a bit changed the structure, as I think it's a bit clearer now. I did the same for the english file (and corrected some typos btw), also feel free to use it or not.
I also added some explanations about how-to configure, can you check I didn't make any mistake there?


Code:

===========================
  Plug-in "Winks" v20060106

===========================



1) Comment puis-je activer le plug-in "Winks" ?



Tout d'abord, vérifiez que vous utilisez bien aMSN 0.97b, version ultérieure à la 7719.
Ensuite, cliquez sur "Compte" - "Sélection d'un plug-in" - "Winks" - "Activer"
REDEMARREZ aMSN.


2) De quoi ai-je besoin pour que le plug-in fonctionne ?

* Un outil de décompression des fichiers .cab.
-> Pour Windows XP SP2 ou ultérieur, cochez simplement la case "Utiliser Extrac32 (pour WinXP) à la place
  de CabExtract." Si cela ne marche pas, utilisez l'étape suivante:
-> Pour d'autres systèmes d'exploitation ("Operative System" en anglais, "OS" en abrégé), installez
  CabExtract : ( http://www.kyz.uklinux.net/cabextract.php )
  Attention, vous aurez à spécifier l'emplacement où vous aurez installé CabExtract lors de la
  configuration du plug-in.

* Un lecteur Flash.
Il existe beaucoup de lecteur Flash, choisissez celui qui vous convient (selon votre OS), puis installez-
le. N'oubliez pas, lors de la configuration du plug-in, de spécifier l'emplacement où vous l'aurez
installé. Voici quelques lecteurs, et les arguments à entrer lors de la configuration :

-> Linux: Adobe Flash Player
  http://www.adobe.com/support/flashplayer/downloads.html
  Arguments: ""

-> Linux/Windows: gnash
  http://www.gnu.org/software/gnash/#downloading
  Arguments: "-1"
-> Windows: Swiff Player
  http://www.globfx.com/downloads/swfplayer/
  Arguments: ""
-> Windows/Macintosh: Flash Player Projector
  http://www.adobe.com/support/flashplayer/downloads.html
  Arguments "".

3) Comment utiliser le plug-in "Winks" ?



Une fois le plug-in activé (cf 1) ), un nouveau bouton apparaît dans la fenêtre de conversation ("Chat Window" en
anglais, "CW" en abrégé). En cliquant dessus, vous faites apparaître le "Menu Winks", qui vous affiche tous les
winks disponible. Celui-ci sera vide la première fois, à l'exception du bouton "Ajouter un wink".
/!\ CE PLUG-IN N'INCLUT AUCUN WINK /!\
Pour en avoir, il vous suffit d'en recevoir (ils sont sauvegardés) ou de télécharger des fichiers .mco, et
d'utiliser la fonction "Ajouter un wink" (Menu Wink ou clic droit sur le bouton dans la CW).



Dans le Menu Wink :
  -> Clic gauche sur un wink : envoyer le wink au contact.
  -> Clic droit sur un wink : voir un aperçu de l'animation.
  -> Clic milieu sur un wink : éditer/supprimer.

4) Je ne comprends pas comment configurer le plug-in ?

-> "Afficher "Ajouter un wink" dans le menu." :
Cette option, une fois activée, affichera en bas du Menu Wink un bouton permettant d'ajouter un wink via
un fichier .mco.
Qu'elle soit activée ou non, il est aussi possible d'ajouter un wink par un clic droit sur le bouton de
la CW.
-> "Fermer le menu lorsque la souris ne s'y trouve plus (Désactiver si vous utilisez Beryl/Compiz)." :
Cette option, une fois activée, fermera automatiquement le Menu Wink dès que le curseur de votre souris
ne le survolera plus. Si cette option est désactivée, un nouveau bouton apparaîtra au bas du Menu
Wink : "Fermer". Il vous suffit de cliquer dessus pour fermer le Menu Wink.

/!\ Décochez cette option si vous utilisez Beryl ou Compiz /!\

-> "Commande de CabExtract:" :
Cette entrée permet de définir le chemin/la commande de CabExtract.
-> "Utiliser Extrac32 (pour WinXP) à la place de CabExtract."
Cette option permet aux utilisateurs de Windows XP SP2 ou ultérieur d'utiliser Extrac32, fourni avec
leur système.
-> "Commande du lecteur SWF:" :
Cette entrée permet de définir le chemin/la commande de votre lecteur Flash.
-> "Arguments du lecteur SWF:" :
Cette entrée permet de définir les arguments correspondants au lecteur Flash que vous avez défini.
-> "Jouer le wink immédiatement à la réception." :
Cette option, une fois activée, jouera automatiquement le wink à sa réception, sans demander de
confirmation.
-> "Jouer le wink dans la fenêtre de conversation (seulement pour gnash)." :
Cette option, nécéssitant gnash, permet, à l'instar de MSN Messenger/WLM, de jouer le wink dans la CW,
sans ouvrir de fenêtre externe.
-> "Afficher l'avertissement de réception d'un wink en une seule ligne" :
Cette option, une fois activée, change l'affichage du wink dans la CW, le faisant passer sur une ligne.

5) Comment puis-je ajouter de nouveaux winks ?



-> En en recevant via aMSN :
  Une fois un wink reçu d'un de vos contacts, il est automatiquement ajouté à votre Menu Winks.
-> Via un fichier .mco :
  En faisant un clic droit sur le bouton Winks dans la CW ou en cliquant sur "Ajouter un wink" dans le Menu
  Winks, une nouvelle fenêtre s'ouvre. Parcourez votre(vos) disque(s) à la recherche du fichier .mco que vous
  désirez installer, sélectionnez-le et validez. La fenêtre se ferme et une nouvelle s'ouvre, vous proposant
  de renommer le wink.
Si tout se passe bien, le wink est ajouté à votre Menu Wink.
Si le fichier n'est pas un .mco, ou si il y a un porblème quelconque, rien ne se passe lorsque vous
cliquez sur "Accepter". Dès lors, afin de savoir quel est le problème, allez à la fenêtre principale où
se trouve votre liste de contacts ("Contact List" en anglais, "CL" en abrégé). Appuyez simultanément sur
"Ctrl" et "S". Cela ouvre la fenêtre de statut, dont les dernières lignes concernent le problème en
question. Si vous désirez reporter un bug, incluez ces lignes, elles aideront à la résolution. Merci :)

6) Pourquoi cela prend-il tant de temps à jouer/envoyer un wink ?



Quand un de vos contacts vous envoie un wink, en réalité il envoye simplement un "wink ID" (un numéro
d'identification). Le plug-in vérifie alors si vous disposez déjà de ce wink. Si oui, il le joue immédiatement,
mais dans le cas contraire, il doit d'abord le demander à votre contact avant de le télécharger. Le wink ne sera
joué que lorsque ce téléchargement sera terminé.
Et la démarche est la même lorsque vous envoyez un wink à un de vos contacts.


7) Quand je clique dans le Menu Wink, il disparaît et rien ne se passe...



Vous êtes probablement sous Linux et utilisez Beryl ou Compiz. Lors de la configuration du plug-in, décochez la
case "Fermer le menu lorsque la souris ne s'y trouve plus (Désactiver si vous utilisez Beryl/Compiz)." Désactivez
puis réactivez le plug-in, ou redémarrez aMSN, pour recharger le Menu. Cela devrait fonctionner :)

8) J'ai trouvé un bug ! / J'ai besoin d'aide !



Vous pouvez toujours rapporter des problèmes ou demander de l'aide sur les forums aMSN :
-> Forum plug-in :

http://www.amsn-project.net/forums/viewforum.php?f=14

-> Sujet du plug-in Winks :

http://www.amsn-project.net/forums/viewtopic.php?t=2366





Ecrit par Pablo Novara, zaskar_84@yahoo.com.ar



Merci à l'équipe de développeurs d'aMSN pour leur aide, Kararoto pour l'exemple du code des Voice Clips et tous les conseils fournis; Jérome Gagnon-Voyer, Karel Demeyer et Alberto Diaz, Doki pour le plug-in Nudge (très bon exemple de plug-in); snipe2004 pour la traduction française; Trappski pour la traduction suédoise; WM-666 pour la traduction néerlandaise; [S]hadow pour la traduction italienne; Trip pour la traduction allemande; NoWhereMan et beaucoup d'autres pour les rapports de bugs, les suggestions de modifications,...




And here's the ReadMe file, with the same structure as the french file :

Code:

========================
  Winks plugin v20060106

========================



1) How do I enable winks support?



First of all, you should be running aMSN 0.97b updated (at least svn 7719) ;)
Then go to the plugin selection dialog and enable Winks.
RESTART AMSN.

   
2) What do I need so that Winks plugin works correctly ?


* A .cab files' decompressing tool.
-> For Windows XP SP2 or newer :
  Check the field "Use Extrac32 instead CabExtract".
-> For other OS (or if it doesn't works with Extrac32) you can get CabExtract. You'll have to set the
  path where you installed CabExtract in the plugin configuration dialog. You can get it from:
http://www.kyz.uklinux.net/cabextract.php


* An external flash player.
There are many players and it depends on which operative system you use. Once you chose and downloaded
one, you should go to the plugin configuration dialog and set the player path and the player arguments.
Here's some players with their arguments:


-> Linux: Adobe Flash Player
  http://www.adobe.com/support/flashplayer/downloads.html
  Player arguments: ""

-> Windows/Macintosh: Flash Player Projector
  http://www.adobe.com/support/flashplayer/downloads.html
  Player arguments "".

-> Windows: Swiff Player
  http://www.globfx.com/downloads/swfplayer/
  Player arguments: "".

-> Linux/Windows: gnash
  http://www.gnu.org/software/gnash/#downloading
  Player arguments: "-1"



3) How do I use Winks Plugin?



If you have winks plugin enabled (cf 1) ), you'll see a new Winks button in the chat window ("CW"). The Winks
Menu will show you the winks you can send. It will be empty the first time.

/!\ THE PLUGIN DOES NOT INCLUDE ANY WINKS /!\

  You have to get them from other contacts (simply receiving them) or add from an .MCO file doing right click on
the Winks button.



In the Winks menu:
-> Left click a wink : send to your contact
-> Right click a wink : see a preview
-> Middle click a wink : edit/delete



4) Je ne comprends pas comment configurer le plug-in ?

-> "Show "Add new wink" in winks menu." :
Once enabled, this option will display in the bottom of the Wink Menu a button allowing you to add a new
wink from a .mco file.
It's always possible to add a wink by right-clincking the Winks button in the CW.
-> "Close winks menu on mouse leave (unset for beryl/compiz)." :
Once enabled, this option will automatically close the Wink Menu as soon as your mouse cursor left it.
If it's disabled, a "Close" button will appear in the bottom of the Wink Menu, that you'll have to click.

/!\ Don't enable it if you use Beryl or Compiz /!\

-> "CabExtract command:" :
This allows you to set the path/command of CabExtract
-> "Use extrac32 (set for WinXP) instead of cabextract."
This option allows people using Windows XP SP2 or newer to use Extrac32, which is included in their OS.
-> "Swf player command:" :
This allows you to set the path/command of your Flash player
-> "Swf player arguments:" :
This allows you to set arguments of the Flash player you chose
-> "Play wink immediatly when received." :
Once enabled, the winks received will automatically be played.
-> "Play the wink inside the chat window (only for gnash). " :
This option, that requires gnash, will play the wink embedded in the CW, not in an external window.
-> "Notify received winks in one line." :
The received winks will be displayed on one single line.

5) How do I add new Winks?



-> Receiving a wink via aMSN.
When one of your contacts sends you a wink, that wink will be added to your Winks menu.
-> Adding a wink from an .MCO file.
When you right click the Winks button it will ask you for a file (the MCO=messenger content object) and
then a wink name. If the file is correct, the wink that it contains will be added to your Winks menu.
If the file is not a wink file or there's some trouble, you'll think that nothing happends when you click
"Accept". In that case, go to the contact list window and press Ctrl+S. Then the Satus window will show
up, in the last lines you can see what the problem is. If you report a bug, please include those lines.



6) Why is it so slow?



When someone sends you a wink only sends you a message with the wink ID. If you have the wink, it will be played
immediatly, but if you don't the plugin should ask the other person for it and then you have to wait until the
wink file transfer is complete.
The same when you send a wink to the other client.



7) When I click the winks menu it desapears and nothing else happend...



If you are using Linux with Beryl/Compiz manager, you should go to the plugin configuration dialog and unset the
checkbox "Close menu on mouse leave" to disable that. Then disable and enable again to reload the menu. It should
work now.



8) I found a bug! / I need more help!



You always can ask for help or reports the problems you find in amsn's forums:

Plugins forum:

http://www.amsn-project.net/forums/viewforum.php?f=14

Wink plugin development topic:

http://www.amsn-project.net/forums/viewtopic.php?t=2366





Written by Pablo Novara, zaskar_84@yahoo.com.ar




Thanks to the aMSN development team for their help; Kakaroto for the voice-messages example code and many tips
about amsn internals; Jérôme Gagnon-Voyer, Karel Demeyer and Alberto Diaz, Doki for the Nudge plugin (great plugin
example); snipe2004 for the french translation; Trappski for the swedish translation; WM-666 for the dutch translation;
[S]haDoW for the italian translation; Trip for the german translation; NoWhereMan and many others for reporting bugs,
suggesting modifications and all those things...




Title: Winks pluggin, a little work
Post by: Zaskar on February 11, 2007, 04:49:39 pm
Winks 20070211.1

http://in.solit.us/archives/download/11176

* Updated README (thanks snipe2004), I've made a few changes to his version and added a question about embed playing.
* Updated langes, langnl, langbe
* A little clean up in the code, there's a new proc to notify the wink sent/received in the chat window.
* The multi chat bug should be really fixed now.


Title: Winks pluggin, a little work
Post by: Zaskar on February 11, 2007, 06:10:15 pm
Winks 20070211.2

http://in.solit.us/archives/download/11181

Now the rest of amsn won't hang while a wink is played inside chat window.

About gnash... It works for me on Linux with versions 7.1 and current cvs, but not in 7.2 (this one always take window-id as 0). The only one win32 version I found doesn't work at all. Anyone else tested it?


Title: Winks pluggin, a little work
Post by: [S]haDoW on February 11, 2007, 09:06:49 pm
I try ( on linux gentoo ) gnash 0.7.2 and gnash cvs (20070211 ) but don't play inside chat window ( i don't see movie but i hear the sound )
I try in tabbed chat and in single chat :(

You have enable some particular feature? I enable only kde support..
Code:

[ebuild   R   ] net-www/gnash-0.7.2_p20099999  USE="kde -agg -ffmpeg -gstreamer -nsplugin -xml" VIDEO_CARDS="-i810" 0 kB


I try too with ( enable:agg,ffmpeg,xml ; disable:kde,gstreamer,nsplugin):
Code:

[ebuild   R   ] net-www/gnash-0.7.2_p20099999  USE="agg ffmpeg xml -gstreamer -kde -nsplugin" VIDEO_CARDS="-i810" 0 kB


Title: Winks pluggin, a little work
Post by: Trappski on February 11, 2007, 10:26:34 pm
Quote from: "Zaskar"

About gnash... It works for me on Linux with versions 7.1 and current cvs, but not in 7.2 (this one always take window-id as 0). The only one win32 version I found doesn't work at all. Anyone else tested it?

I get no sound with the win32 version of gnash. and some .swf could not be played.
I only tested it as a player not in aMSN but i figure teh results will be pretty simlair there.


Title: Winks pluggin, a little work
Post by: kakaroto on February 12, 2007, 06:09:24 am
hi zaskar, maybe those characters are because of the encoding of the file ? let me check...
yep, it is... the 3 chars (in hexadecimal) EF BB BF are to specify the file is in utf-8, which means you need to open the file, and do a fconfigure $fd -encoding utf-8 (I think), but I'm not sure, in any case more info here: http://en.wikipedia.org/wiki/Byte_Order_Mark
You reminded me that I saw you do a [string map { "\x00" "" } $name] in one of the procs, I think to remove all the \x00 from the friendly name, it's wrong, but that's how we did it before, actually, the \x00 are because the string is in unicode (utf-16) so you need to convert it to the convert encoding of the system based on utf-16 in order to remove those \x00 and to be able to keep any special character in the name, to do that, very simple, we worked hard on making a function do it automatically :
set name [FromUnicode $name]
and when you want to create the msnobj, it should do a [ToUnicode] on the name too.. maybe it already does it... in any case, that's how it works, will make the code stronger!
tell me if doing a fconfigure on the encoding will fix those 3 chars in the header of the content.xml file, if yes, then it's perfect :) in any case, even if it doesn't fix it, you'll have to do it because the files are in utf-8


Title: Winks pluggin, a little work
Post by: vivia on February 12, 2007, 02:07:54 pm
Zaskar: I tried your plugin, but the only version of gnash in the Ubuntu repositories is 0.7.2 so it didn't work (And I do want to see the winks inside the CW!). So I decided to go for latest CVS instead, but I couldn't compile it - I tried to update to different dates, but they always fail with different error messages. Can you please tell me when you updated your gnash cvs? (Or, if you are also using Ubuntu, make me a .deb?) :)


Title: Winks pluggin, a little work
Post by: TheSpunkyLobster on February 12, 2007, 03:00:15 pm
I've got this working fine on my laptop but I installed it today on desktop, using adobe again, but when anyone sends me winks they don't show up at all, not even with the thumbnail in the chat window. Just says soandso sent you a wink.

Not sure what to do about it, so any advice appreciated :)


Title: Winks pluggin, a little work
Post by: vivia on February 12, 2007, 03:40:02 pm
Yes, I have EXACTLY the same issue with TheSpunkyLobster. Thought it would be due to the wrong gnash version (which I am STILL trying to compile, btw : I can't get neither cvs nor 0.7.1 to compile with disable-klash and disable-plugin !!!!)....

TheSpunkyLobster: could it be some plugin which causes this? Can you check differences in plugins and/or tcl/tk versions?

EDIT: I compiled 0.7.1 (with enable-plugin and then erased the plugin :D) and I found the error! tcl/tk 8.4/8.5 and disabling plugins doesn't seem to make any difference. The error is in prov WinWriteThumbnail:

can't read "winks_list(5SYAzoFL2Gum/EN2uLskOiDM0aE=)": no such variable

Also, playing inside the chatwindow doesn't seem to work, the chatwindow just turns white for a while :(

Apart from this, if I configure it to play winks in their own window and surround WinWriteThumbnail with catch, it works! :D (Just without the thumbnail)


Title: Winks pluggin, a little work
Post by: Zaskar on February 12, 2007, 05:21:51 pm
Here's the file:

http://in.solit.us/archives/download/11229

* It should fix the wink thumbnail problem (The cache flag was missing).
* It should play correctly outside chat window (it's the same code than before last version again).
* It should fix the problem when receiving a wink while another one is being played in chat window (it used to leave chat window white forever).
* GetAttrib now works ok for fields with spaces.
* The wink name is encoded and decoded with unicode functions (but there's still sometimes one extra character at the end that is erased manually).
* The wink edit dialog now lets us play the wink, or if we set an empty name it will look for a suitable one in the wink files. I've also fixed the return key binding.
* The content.xmls are open with utf-8 encoding now.

About gnash, the version that always works ok is 7.1. In my case, when I compile it I use "make -i" because it produces some errors when compiling something related to the broser pluging that doesn't affects the standalone player. In the newer versions you can use "configure --disable-plugin --disable-klash" to avoid it.


Title: Winks pluggin, a little work
Post by: Fenix-TX on February 12, 2007, 07:08:06 pm
langes

Code:

amsn_lang_version 2
winks_add_new_wink Añadir un nuevo guiño...
winks_add_to_winks_menu Añadir al menú de guiños
winks_cabextract_command Comando cabextract:
winks_cant_add_now_wait_thumbnail Por favor, espera a que aparezca la imagen del guiño para añadirlo.
winks_cant_open No se pudo abrir
winks_cant_play_now_wait_thumbnail Por favor, espera a que aparezca la imagen del guiño para reproducirlo.
winks_close_menu_on_mouse_leave Cerrar el menú al sacar el ratón (desmarcar si usas beryl/compiz).
winks_introduce_new_wink_name Nombre del guiño nuevo:
winks_notify_in_one_line Notificar los guiños recibidos en una línea.
winks_play_animation Reproducir animación...
winks_play_embed Reproducir el guiño dentro de la ventana de conversación (sólo para gnash).
winks_play Reproducir
winks_play_wink_immediatly_when_recived Reproducir el guiño inmediatamente cuando se recibe.
winks_received_wink Se recibió el guiño:
winks_sending_wink Enviando guiño...
winks_sent_wink Guiño enviado:
winks_show_add_new_wink_in_menu Mostrar \"Añadir Guiño\" en el menú de guiños.
winks_swf_player_arguments Argumentos para el reproductor flash:
winks_swf_player_command Comando del reproductor flash:
winks_the_wink_is_already_in_winks_menu El guiño ya se encuentra en el menú.
winks_unknown_wink_waiting_for_it Guiño desconocido, esperando...
winks_use_extrac32 Usar extrac32 en lugar de cabextract (marcar si usas WIN XP).
winks_use_queque_in Usar cola de reproducción al reproducir guiños en el interior de la ventana.
winks_use_queque_out Usar cola de reproducción al reproducir guiños en el exterior de la ventana.
winks_wink_added Guiño añadido.
winks_wink_deleted Se ha eliminado el guiño.
winks_wink_renamed Se ha renombrado el guiño.
winks_wink_transfer_complete Transferencia del guiño finalizada:
winks_yourcontact_amsn_client_doesnt_supports_winks está utilizando un cliente messenger que no es compatible con los guiños.
winks_yourcontact_winks le ha enviado un guiño:


Title: Winks pluggin, a little work
Post by: Zaskar on February 12, 2007, 07:32:57 pm
Again:

http://in.solit.us/archives/download/11232

Fixed the hang when adding a new wink and updated some keys in langes.


Title: Winks pluggin, a little work
Post by: Fenix-TX on February 12, 2007, 07:56:23 pm
Zaskar, i've clicked on download button but nothing happens...


Title: Winks pluggin, a little work
Post by: Bloodsucker on February 12, 2007, 07:58:56 pm
Quote from: "Fenix-TX"
Zaskar, i've clicked on download button but nothing happens...

It happens the same for me... :S


Title: Winks pluggin, a little work
Post by: Zaskar on February 12, 2007, 09:51:05 pm
It's some trouble in in.solit.us, I can't download the file nor the older versions. They have updated the site interface yesterday.


Title: Winks pluggin, a little work
Post by: kakaroto on February 12, 2007, 11:27:04 pm
Hey Zaskar!
so, did the encoding on the content.xml file the problem with those first chars in the file or are they still there ?
About the \x00, you're right, I forgot about it, it's the line ending \x00 that exists in any C style string, I don't know why M$N adds it...
here's the code from protocol.tcl :
Code:
set filename [FromUnicode [string range $context 20 569]]

#binary scan $filename A* filename  <-- destroys encoding

set idx [string first "\x00" $filename]
if {$idx != -1 } {
set filename [string range $filename 0 [expr {$idx - 1}]]
}

As you can see, we do it this way too, we remove the last \x00 from the data received (this code is for the filename of a file transfer)

I'll test the plugin later and tell you what I think about the latest changes.
p.s: you use xml2list now that the encoding is fixed ?


Title: Download
Post by: baule on February 13, 2007, 02:03:51 am
you don't Have another upload site ??

I try to install Winks From this site, and i get a message im my chat window "Can't open "content.xml"."

In CTRL + S dont say anythink.

http://www.messenger-stuff.com/show/id/5447/

Tks !


Title: Winks pluggin, a little work
Post by: [S]haDoW on February 13, 2007, 11:33:29 am
When i try to load the wink plugin ( the last version ):
Code:
Plugin System:can't initialize plugin:init procedure caused an internal error


Title: Winks pluggin, a little work
Post by: kakaroto on February 13, 2007, 04:10:59 pm
Shadow, press Alt-P for the plugin's log to show up, clear it, then try to load the plugin again, and past the whole thing in here.


Title: Winks pluggin, a little work
Post by: [S]haDoW on February 13, 2007, 05:40:54 pm
Code:
[17:30:37] core: Getting Winks and amsn_version
[17:30:37] core: Winks_amsn_version
[17:30:37] core: Getting Winks and plugin_file
[17:30:37] core: Winks_plugin_file
[17:30:37] core: Getting Winks and plugin_namespace
[17:30:37] core: Winks_plugin_namespace
[17:30:37] core: Getting Winks and init_proc
[17:30:37] core: Winks_init_proc
[17:30:37] core: Plugin needs 0.97
[17:30:37] core: appending to loadedplugins
[17:30:37] core: Initializing plugin Winks with winks::Init
[17:30:37] core: Initialization of plugin Winks with winks::Init failed
bad index "36-1": must be integer or end?-integer?
bad index "36-1": must be integer or end?-integer?
    while executing
"string index $temp2 [string length $temp2]-1 "
    (procedure "GetAttrib" line 7)
    invoked from within
"GetAttrib $listb "sha1d""
    (procedure "::winks::LoadWinks" line 23)
    invoked from within
"::winks::LoadWinks"
    (procedure "::winks::Init" line 17)
    invoked from within
"::${namespace}::${init_proc} [file dirname $file]"


amsn rev 7964
tk/tcl 8.4.14


Title: Winks pluggin, a little work
Post by: kakaroto on February 13, 2007, 06:31:45 pm
thanks Shadow.
Zaskar, you must change that line to :
Code:
 string index $temp2 end-1

Don't forget that 'end' is a valid index... Also, when you're dealing with numeric values, you can't use $value-1 or $value-$n, you must use [expr {$value - $n } ]
(putting the value between accolades makes the Tcl interpreter process the calculus faster, it's good optimization, wiki.tcl.tk explains why.


Title: Winks pluggin, a little work
Post by: [S]haDoW on February 13, 2007, 06:52:29 pm
langit update:
Code:

amsn_lang_version 2
winks_show_add_new_wink_in_menu Mostra \"Aggiungi nuova animoticon\" nel relativo menù.
winks_close_menu_on_mouse_leave Chiudi il menù quando il mouse lascia l'area (disattivare per beryl/compiz).
winks_cabextract_command Comando estrazione Cab:
winks_use_extrac32 Usare extrac32 (per WinXp) per l'estrazione cab.
winks_swf_player_command Comando riproduttore Swf:
winks_swf_player_arguments Argomenti del riproduttore Swf:
winks_add_new_wink Aggiungi nuova animoticon...
winks_introduce_new_wink_name Nuovo nome animoticon:
winks_cant_open Impossibile aprire
winks_received_wink Animoticon ricevuta:
winks_unknown_wink_waiting_for_it Animoticon sconosciuta, attendere...
winks_wink_transfer_complete Trasferimento animoticon completato:
winks_play_animation Riproduci animazione...
winks_add_to_winks_menu Aggiungi al menù delle animoticon
winks_sending_wink Animoticon in trasmissione...
winks_sent_wink Animoticon trasmessa:
winks_wink_added Animoticon aggiunta!
winks_the_wink_is_already_in_winks_menu Animoticon già presente!
winks_play_wink_immediatly_when_recived Riproduci immediatamente l'animoticon al suo ricevimento.
winks_wink_deleted L'animoticon è stata cancellata.
winks_wink_renamed L'animoticon è stata rinominata.
winks_cant_add_now_wait_thumbnail Attendere finchè non si visualizza l'immagine da aggiungere.
winks_cant_play_now_wait_thumbnail Attendere finchè non si visualizza l'immagine per la riproduzione.
winks_yourcontact_winks animoticon:
winks_yourcontact_amsn_client_doesnt_supports_winks sta usando un client msn che non supporta le animoticon.
winks_play_embed Riproduci animoticon dentro la finestra di chat (solo per gnash).
winks_notify_in_one_line Notifica la ricezione dell'animoticon in una linea.
winks_play Riproduci
winks_use_queque_out Usa una coda di riproduzione quando le animoticon sono riprodotte fuori dalla finestra di chat.
winks_use_queque_in Usa una coda di riproduzione quando le animoticon sono riprodotte dentro la finestra di chat.


Title: Some Winks don't play
Post by: baule on February 13, 2007, 10:15:26 pm
Some new wink  - (new winks, dont in MSN Default list) dont Play.

I debug some thinks in Status Log and i see:

[19:09:14] Playing wink /home/alex/.amsn/<name>/winks/cache/663775abecf618ae8aacd9d5dafdea71/wpw001aa01.swf
[19:09:14]
Eval: exec "flashplayer" "/home/alex/.amsn/<name>/winks/cache/663775abecf618ae8aacd9d5dafdea71/wpw001aa01.swf" &
[19:09:14]
Output: 12767

But Inside my Dirs the Name of swf is in upercase.

19:15 viper:../cache/663775abecf618ae8aacd9d5dafdea71 > pwd
/home/alex/.amsn/alexwbaule_hotmail_com/winks/cache/663775abecf618ae8aacd9d5dafdea71
19:15 viper:../cache/663775abecf618ae8aacd9d5dafdea71 > ls -l
total 92
drwxr-xr-x 2 alex users   144 2007-02-13 19:09 .
drwx------ 5 alex users   464 2007-02-13 19:09 ..
-rw-r--r-- 1 alex users   697 2005-03-03 18:42 content.xml
-rw-r--r-- 1 alex users 79295 2005-03-03 18:42 WPW001AA01.swf
-rw-r--r-- 1 alex users  5753 2005-03-03 18:42 WPW001AA02.png


Linux is Case sentive, them dont Play The Wink.!

I Think is for that, the "image display" for this wink, dont show to.

Sorry my English, is too bad ! eheheh


Title: Winks pluggin, a little work
Post by: kakaroto on February 13, 2007, 10:44:39 pm
baule, your english is good and your message is fully understood. I hope zaskar fixes this soon, I wonder if it's a bug in the way he handles the filenames or if it's the content.xml file which contains a lowercase filename and the cab contains uppercase (windows doesn't care...)
Can you please paste here the content of the file content.xml in cache/663775abecf618ae8aacd9d5dafdea71/content.xml
thanks!


Title: content.xml
Post by: baule on February 14, 2007, 12:26:59 am
Shure !!!

<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://messenger.msn.com/messengercontent/1.0"
        version="1.0"
        contenttype="P"
        partnerid="WP"
        packageid="WPW001AA"
        type="wink"
        xmlns:wink="http://messenger.msn.com/winks/1.0"
        wink:version="1.0"
        wink:name="I Love You"
        wink:purchaseurl=""
 >
<item contenttype="P"
    type="animation"
    mimetype="application/x-shockwave-flash"
    file="WPW001AA01.swf"
    contentid="WPW001AA01"
 />
<item contenttype="P"
    type="thumbnail"
    mimetype="image/x-png"
    file="WPW001AA02.png"
    contentid="WPW001AA02"
 />
</package>


I Test the last plugin wink update, and the winks dont play.

in Status Log show this.

[22:50:46] chunked message : 3 chunks - Chunks 3 Content-Type text/x-msnmsgr-datacast Message-ID {{BE28E485-912D-4B93-9449-B90510437CFF}} MIME-Version 1.0
[22:50:46] chunked message :  chunk - Chunk 1 Message-ID {{BE28E485-912D-4B93-9449-B90510437CFF}} - Chunks 3 Content-Type text/x-msnmsgr-datacast Message-ID {{BE28E485-912D-4B93-9449-B90510437CFF}} MIME-Version 1.0
[22:50:46] chunked message :  chunk - Chunk 2 Message-ID {{BE28E485-912D-4B93-9449-B90510437CFF}} - Chunks 3 Chunk 1 Content-Type text/x-msnmsgr-datacast MIME-Version 1.0 Message-ID {{BE28E485-912D-4B93-9449-B90510437CFF}}

I Send Winks, but dont receive.


Title: Winks pluggin, a little work
Post by: TheSpunkyLobster on February 16, 2007, 12:12:52 am
Not sure if I screwed up or not here heh

I downloaded the latest plugin, copied it into my plugin directory, overwritting what was already there, and now when I try and load the plugin i get a popup with this error message:

Plugins System: Can't initialize plugin.init procedure caused an internal error.

What do I do heh :)


Title: Winks pluggin, a little work
Post by: kakaroto on February 16, 2007, 12:53:15 am
TheSpunkyLobster : read a few posts before what you posted!!! just wait for the new version!


Title: Winks pluggin, a little work
Post by: TheSpunkyLobster on February 16, 2007, 01:11:20 am
Doh, I read through all that too, and didn't take any of it in properly!

Feel even dumber now hehe


Title: Init Wink
Post by: baule on February 16, 2007, 08:22:45 pm
TheSpunkyLobster:

At the line 169, the plugin have:

while { "[string index $temp2 [string length $temp2]-1 ]" != "\"" && $idx != [llength $list_data]} {

Change This Line TO:

while { "[string index $temp2 end-1 ]" != "\"" && $idx != [llength $list_data]} {

OK !?


Title: Winks pluggin, a little work
Post by: Zaskar on February 18, 2007, 03:03:53 pm
Hi, I'm back. Here's a quick update. It fixes the string problem with end, updates langit, and when adding a wink, it checks for the correct filename (first try as content.xml says, then lowercase, then uppercase; it keeps the one that exists; my examples where all lowercase even when content says anything else, but now it should work better).

http://in.solit.us/archives/download/11638

Next step: I'll try again with xml2list with the correct encoding.


Title: Zaskar
Post by: baule on February 18, 2007, 05:51:58 pm
I Test This Winks Release:

The error About Init do not happen anymore.

But when a receive a Wink, the wink dont Play and in my chat window dont display notthing.

Is Like i dont receive anything.

In CTRL +S Say:

[14:53:01] chunked message : 3 chunks - Chunks 3 Content-Type text/x-msnmsgr-datacast Message-ID {{934340DC-1BA6-4849-AB91-4029DCAD47E4}} MIME-Version 1.0
[14:53:01] chunked message :  chunk - Chunk 1 Message-ID {{934340DC-1BA6-4849-AB91-4029DCAD47E4}} - Chunks 3 Content-Type text/x-msnmsgr-datacast Message-ID {{934340DC-1BA6-4849-AB91-4029DCAD47E4}} MIME-Version 1.0
[14:53:01] chunked message :  chunk - Chunk 2 Message-ID {{934340DC-1BA6-4849-AB91-4029DCAD47E4}} - Chunks 3 Chunk 1 Content-Type text/x-msnmsgr-datacast MIME-Version 1.0 Message-ID {{934340DC-1BA6-4849-AB91-4029DCAD47E4}}

Tks !!!!


Title: Re: Zaskar
Post by: Simple me on February 18, 2007, 10:39:10 pm
Yep,

same thing here in the ctrl+c screen and in the alt+p screen it says:
Code:

22:39:06] core: Executing ::Nudge::received
[22:39:06] core: Return  from event handler ::Nudge::received
[22:39:06] core: Executing ::winks::ReceiveSomething
[22:39:06] core: Calling event new_conversation with variable evPar
[22:39:06] core: Executing ::remind::Remind
[22:39:06] core: Return expected integer but got "" from event handler ::remind::Remind
[22:39:06] core: Return bad index "8-2": must be integer or end?-integer? from event handler ::winks::ReceiveSomething


i hope it helps because i reinstalled everyting and now i'm out of winks because adding an MCO file doesn't work for me it never has.

Greetz,

Simple me


Quote from: "baule"
I Test This Winks Release:

The error About Init do not happen anymore.

But when a receive a Wink, the wink dont Play and in my chat window dont display notthing.

Is Like i dont receive anything.

In CTRL +S Say:

[14:53:01] chunked message : 3 chunks - Chunks 3 Content-Type text/x-msnmsgr-datacast Message-ID {{934340DC-1BA6-4849-AB91-4029DCAD47E4}} MIME-Version 1.0
[14:53:01] chunked message :  chunk - Chunk 1 Message-ID {{934340DC-1BA6-4849-AB91-4029DCAD47E4}} - Chunks 3 Content-Type text/x-msnmsgr-datacast Message-ID {{934340DC-1BA6-4849-AB91-4029DCAD47E4}} MIME-Version 1.0
[14:53:01] chunked message :  chunk - Chunk 2 Message-ID {{934340DC-1BA6-4849-AB91-4029DCAD47E4}} - Chunks 3 Chunk 1 Content-Type text/x-msnmsgr-datacast MIME-Version 1.0 Message-ID {{934340DC-1BA6-4849-AB91-4029DCAD47E4}}

Tks !!!!


Title: Winks pluggin, a little work
Post by: Zaskar on February 18, 2007, 11:39:00 pm
Sorry, here's the new one:

http://in.solit.us/archives/download/11660

It fixes the string end problem also when receiving and includes the button pixmaps that posted "Simple me" for emerald skin.


Title: Zaskar
Post by: baule on February 19, 2007, 03:26:57 am
Cool !!!

Now Its Working !!!


Title: Winks pluggin, a little work
Post by: naoliv on February 19, 2007, 05:52:24 am
Hi!

This plugin isn't working here.
aMSN version is SVN 7992 and Gnash version is 0.7.2
When receiving a wink I get (on CTRL+S screen):

Code:
[02:39:41] chunked message : 3 chunks - Chunks 3 Content-Type text/x-msnmsgr-datacast MIME-Version 1.0 Message-ID {{30533C17-71ED-40E8-88F8-94840BFD66AA}}
[02:39:41] chunked message :  chunk - Chunk 1 Message-ID {{30533C17-71ED-40E8-88F8-94840BFD66AA}} - Chunks 3 Content-Type text/x-msnmsgr-datacast MIME-Version 1.0 Message-ID {{30533C17-71ED-40E8-88F8-94840BFD66AA}}
[02:39:41] chunked message :  chunk - Chunk 2 Message-ID {{30533C17-71ED-40E8-88F8-94840BFD66AA}} - Chunks 3 Chunk 1 Content-Type text/x-msnmsgr-datacast MIME-Version 1.0 Message-ID {{30533C17-71ED-40E8-88F8-94840BFD66AA}}
[02:39:41] Received Wink Cartão Vermelho^@ 21jUjhmH9Ys0zBtQ4gwqRSJ4Eq0=
[02:39:41] Sent an INVITE to XXXXXXXX@hotmail.com on chatid XXXXXXXX@hotmail.com of object <msnobj Creator="XXXXXXXX@hotmail.com" Size="31536" Type="8" Location="TFR1B83.dat" Friendly="QwBhAHIAdADjAG8AIABWAGUAcgBtAGUAbABoAG8AAAA=" SHA1D="21jUjhmH9Ys0zBtQ4gwqRSJ4Eq0=" SHA1C="jsvo5hpOgYri2S6JVTR3EOLQTng="/>
[02:39:41] asked for cab file
[02:39:42] GOT SID : 54988138 for Ackid : 664968
[02:39:42] Got INVITE with content-type : application/x-msnmsgr-transreqbody
[02:39:47] Received wink file: /home/naoliv/.amsn/naoliv_gmail_com/winks/cache/2313a655a686d68493953703a7244715437677172535a443541703d3.cab from XXXXXXXX@hotmail.com
[02:39:48] Wink added to cache succesfully.
[02:39:48] Playing wink


But the wink isn't displayed. I only see a link to play the wink. Clicking on it I get a new "Playing wink" on the debug screen.

It seems that I am receiving the winks correctly, since I have a lot of .cab files at winks/cache dir.
Also, they seem to be extracted correctly too, since I have some dirs inside winks/cache. The content of those dirs are a .xml file, a .png and a .swf

Running "gnash file.swf" on the command line the wink is displayed.

Do you need more information about this?

Thank you!

Best regards,
Nelson


Title: Winks pluggin, a little work
Post by: Zaskar on February 19, 2007, 05:57:33 am
Hi. May be you are trying to see the wink inside the chat window... This feature only works with gnash 7.1... The 7.2 version doesn't read window-id correctly.


Title: Winks pluggin, a little work
Post by: naoliv on February 19, 2007, 06:00:43 am
Hum... I will test this as soon as I find someone online on MSN (everybody is sleeping right now  :))

Thanks!


Title: Winks pluggin, a little work
Post by: naoliv on February 19, 2007, 06:10:58 am
Hi!

I have unchecked to play the wink inside the chat window and now I am getting this on the debug screen:

Quote
[03:09:36] Playing wink
[03:09:36]
Eval: exec "gnash" -1 "" &
[03:09:36]
Output: 25603


But nothing happens. :-/

The config of the wink plugin have:
Swf player command: gnash
Swf player arguments: -1


Title: Winks pluggin, a little work
Post by: Zaskar on February 19, 2007, 06:18:28 am
Your wink index is corrupted (I think some of the older plugin versions did that). The swf field is empty (this are the two "" that you see in the log next to -1). This is the easy way to fix it: Frist, if that wink is in your wink menu, delete it. Then, clear the winks cache (HOME/winks/cache). Then try again and let me know if it still doesn't work.


Title: Winks pluggin, a little work
Post by: neothematrix on February 19, 2007, 12:05:30 pm
same here, tried with both flashplayer and gnash, i've installed the plugin now for the first time and tryied to clean cache and tmp folders, but i always got this error:

[12:00:04] Playing wink
[12:00:04]
Eval: exec "flashplayer" "" &
[12:00:04]
Output: 22845

the wink is not added to my wink list, and if i open the index.xml i get this: (i cut some lines of the sha1 signature)

<Wink name="Heart%00" cab="%2Fhome%2Fneo%2F%2Eamsn%2Fneothematrix%5Flibero%5Fit%2Fwinks%2Fcache%2F3576a663437435b2159765976587b637c68795f26437251425b676d3%2Ecab" swf="" img="" sizex="125" sizey="118" sha1d="Sgj6 [cut]

for all the winks i try to play, even if i delete the index.xml it is re-created this way
I'm using the latest amsn from cvs (downloaded today) and the latest plugin version (downloaded today)
maybe it is an issue with cabextract? but i dont think, i tried to "cabextract" the cab downloaded and i can see all the files correctly and i can play the swf manually with flashplayer file.swf without any problem, anyway this is my cabextract version:
$ cabextract --version
cabextract version 1.2


Title: Winks pluggin, a little work
Post by: Zaskar on February 19, 2007, 03:24:19 pm
Thanks, its fixed here:

http://in.solit.us/archives/download/11688


Title: Winks pluggin, a little work
Post by: snipe2004 on February 19, 2007, 07:15:59 pm
Hi Zaskar!

First of all, thanks for all the job you do there :) Great !!!

Second, I got a bug :D
While sending a wink from my first account to my second one, I always get this Tk error message:

Code:
couldn't open "/home/famille/.amsn/g-unit87_hotmail_com/winks/969786d6666534a76473a71647472693a675159467a5c434178383d3/969786d6666534a76473a71647472693a675159467a5c434178383d3": no such file or directory
    while executing
"open "[file join $HOME winks $filename $filename]" w"
    (procedure "::MSNP2P::ReadData" line 644)
    invoked from within
"::MSNP2P::ReadData $p2pmessage $chatid"
    ("application/x-msnmsgrp2p" arm line 6)
    invoked from within
"switch $contentType {
text/plain {
::Event::fireEvent messageReceived $self $message
$message setBody [encoding convertfrom identity [strin..."
    (procedure "::SB::Snit_methodhandleMSG" line 100)
    invoked from within
"$self handleMSG $command $message"
    ("MSG" arm line 2)
    invoked from within
"switch [lindex $command 0] {
MSG {
$self handleMSG $command $message
}
BYE -
JOI -
IRO {
cmsn_update_users $self $comman..."
    (procedure "::SB::Snit_methodhandleCommand" line 24)
    invoked from within
"$options(-name) handleCommand $command $payload"
    (procedure "::Connection::Snit_methodreceivedData" line 37)
    invoked from within
"::MSN::SB1 receivedData"


I tried deleting my cache, deleting even my ~/.amsn/email_adress/winks folder, but nothing works :(


Title: Winks pluggin, a little work
Post by: neothematrix on February 20, 2007, 09:58:37 am
now it's working perfectly! thanks for this beautiful plugin, my girlfriend is finally happy she can sends me winks :P:P:P
btw any hope to have nicier flash animations with transparent background and fullscreen like live msn? (maybe this is a problem of the player)

p.s. a little thing i noticed, when i save the winks, or when the winks are displayied I see a small "square" at the end of the wink's name, like a wrongly encoded character, maybe i'm using a different character encodings and winks text is utf-8 or something...


Title: nearly there...
Post by: SSamiK on February 20, 2007, 05:59:15 pm
Great work, and a nice working plugin.
Well, exept that TK gives a error when I try adding a wink from a MCO file...

Code:

error reading "file10": illegal operation on a directory
    while executing
"read $fd2"
    (procedure "::winks::AddWinkOk" line 36)
    invoked from within
"::winks::AddWinkOk "/home/ssamik/141.MCO" thoxxx@sadamsnuser.com"
    invoked from within
".addNewWink.fb.ok invoke"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list $w invoke]"
    (procedure "tk::ButtonUp" line 22)
    invoked from within
"tk::ButtonUp .addNewWink.fb.ok"
    (command bound to event)


Code:

[18:04:47] -----------------------------------------
[18:04:47] >>> GOT TCL/TK ERROR : {{error reading "file12": illegal operation on a directory}}
>>> Stack:
error reading "file12": illegal operation on a directory
    while executing
"read $fd2"
    (procedure "::winks::AddWinkOk" line 36)
    invoked from within
"::winks::AddWinkOk "/home/ssamik/141.MCO" thoxxx@sadamsnuser.com"
    invoked from within
".addNewWink.fb.ok invoke"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list $w invoke]"
    (procedure "tk::ButtonUp" line 22)
    invoked from within
"tk::ButtonUp .addNewWink.fb.ok"
    (command bound to event)
>>> Code: POSIX EISDIR {illegal operation on a directory}
[18:04:47] -----------------------------------------
[18:04:47] >>> AMSN version: 0.97b - AMSN date: 06/16/2006
[18:04:47] >>> TCL version : 8.5a6 - TK version : 8.5a6
[18:04:47] >>> tcl_platform array content : byteOrder littleEndian pointerSize 4 osVersion 2.6.20-8-generic platform unix machine i686 threaded 1 os Linux wordSize 4 user ssamik
[18:04:47] -----------------------------------------


Using latest aMSN from SVN, and latest TK and TCL from CVS (buildt today)


Title: Winks pluggin, a little work
Post by: Zaskar on February 20, 2007, 08:40:53 pm
Here it is:

http://in.solit.us/archives/download/11770

Should fix the strange character at the end of the wink name and the trouble reported by SSamiK.


Title: Winks pluggin, a little work
Post by: SSamiK on February 20, 2007, 10:54:50 pm
Error gone, but now I get "Can't open "content.xml" when trying to add the same wink. Had the same thing happening prior to getting the TK error, so might be something i've done when playing around with the files..


Title: Winks pluggin, a little work
Post by: Zaskar on February 20, 2007, 11:10:02 pm
What do you find in your winks directory?? There should be only one file (that is index.xml) a many folders (tmp, cache, and the winks with names like "5cde67d5ab2d0695aac95b0fc6167ea6" or "e43178e2c2e42d930aa7306f9c271d48"). If you find any other file than index.xml, you can try deleting/moving it to somewhere else.


Title: Winks pluggin, a little work
Post by: SSamiK on February 20, 2007, 11:33:54 pm
It looks just like you described...  Nothing extra, nothing missing.

Alt+P shows:
Code:

[23:39:07] core: Calling event WinWrite with variable evPar
[23:39:08] core: Calling event WinWritten with variable evPar


Title: Winks pluggin, a little work
Post by: Zaskar on February 20, 2007, 11:53:05 pm
Can you tell me what does "winks/cache/tmp/content.xml" says?


Title: Winks pluggin, a little work
Post by: SSamiK on February 20, 2007, 11:57:58 pm
i would if i could.. ;-) it's not there. What should it say?


Title: Winks pluggin, a little work
Post by: neothematrix on February 25, 2007, 02:17:23 pm
mmm your new patch doesn't seem to work, i still see small squares near the wink's name (yes i added new winks AFTER loading the new plugin) and some winks get saved with the name "Unused", this is a part of the content of the index.xml

<Wink name="Unused%00" cab="%2Fhome%2Fneo%2F%2Eamsn%2Fneothem%5Flibero%5Fit%2Fwinks%2F32ae4da34b204b078203aeee288a6ba1%2F8727c4a6848673d6077766879603f25396b6e436a7a6a466849543d3%2Ecab" swf="%2Fhome%2Fneo%2F%2Eamsn%2Fneothem%5Flibero%5Fit%2Fwinks%2F32ae4da34b204b078203aeee288a6ba1%2F3104759f%2Eswf" img="%2Fhome%2Fneo%2F%2Eamsn%2Fneothem%5Flibero%5Fit%2Fwinks%2F32ae4da34b204b078203aeee288a6ba1%2F3104759f%2Ejpg" sizex="640" sizey="480" sha1d="xrLjHh7mpwfxi0/5ikNczjJfHY4=" stamp="MIIIngYJKo ........ />

hope this help improve this fantastic plugin ;)


Title: Winks pluggin, a little work
Post by: Zaskar on February 25, 2007, 02:59:37 pm
Have you added them from mco files or stolen from another contact?


Title: Winks pluggin, a little work
Post by: neothematrix on February 25, 2007, 03:03:40 pm
stolen from other contacts


Title: Winks pluggin, a little work
Post by: Zaskar on February 25, 2007, 03:49:44 pm
Thanks for reporting, try this one:

http://in.solit.us/archives/download/12131


Title: Winks pluggin, a little work
Post by: neothematrix on February 25, 2007, 03:59:04 pm
ok no more squares, but i still get the "unused" name on some winks, maybe i need to re-save them, I'll let you know when I can try


Title: Winks pluggin, a little work
Post by: Zaskar on February 25, 2007, 04:12:00 pm
That name is not given by my code. It can be the name you get in the first wink message from the other client (Friendly field of the msnobj), or the name that you find in the wink's cab file in its content.xml (if there's no name the we use the swf filename). If you used to see the strange square at the end of the name, it's definitely the first one (the Friendly field). What name does the other client show to your contact?
Anyway, if you want to change the name, just right click on the wink thumbnail in the winks menu.


Title: Winks pluggin, a little work
Post by: neothematrix on February 25, 2007, 11:16:08 pm
the name on the other client is not "unused", it's a real name, something like "Orsetto", i know i can change the wink's name but i wanted to report this little imprecision ;)


Title: Winks pluggin, a little work
Post by: Zaskar on February 26, 2007, 02:11:52 pm
It's strange. What client is your contact running?


Title: Winks pluggin, a little work
Post by: neothematrix on March 03, 2007, 08:48:37 pm
the client is live messenger 8

btw i noticed i can't load any .mco winks (downloaded from amule for example), if i try to load the file i get "can't open content.xml" but the file is there if i try to "cabextract" the .mco file:

cabextract TFR177.MCO
Extracting cabinet: TFR177.MCO
  extracting content.xml
  extracting TFR177.cab

All done, no errors.

content.xml:
<package version="1.0" type="theme">
  <item contentid="988728704TFR177" type="wink" contenttype="P" mimetype="application/messengercontent" file="TFR177.cab" stamp="MIII..." />

and "cabextracting" the TFR177.cab:
cabextract TFR177.cab
Extracting cabinet: TFR177.cab
  extracting content.xml
  extracting 3065249f.swf
  extracting 3065249m.png

All done, no errors.

content.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<package xmlns="http://messenger.msn.com/messengercontent/1.0" version="1.0" type="wink" xmlns:wink="http://messenger.msn.com/winks/1.0" wink:version="1.0" wink:name="Kiss My Butt" partnerid="AG">
 <item contentid="AGW3065249" contenttype="P" type="animation" mimetype="application/x-shockwave-flash" file="3065249f.swf" wink:sizex="410" wink:sizey="275" />
 <item type="thumbnail" mimetype="image/png" file="3065249m.png" />
</package>

if you need i can send you the .mco file, anyway this happens with every .MCO i'm trying


Title: Winks pluggin, a little work
Post by: bigbadben on March 04, 2007, 07:02:27 pm
hi!!

btw......mac intel

i am trying to add a wink (.mco)....
wen i got get the mco file, eveything seems to work. it looks like its going to ad it. but then it try's to show by its self in the cw, and there is an error messge thats says cant open content.xml

this is the error i get  control s =

[12:57:01] Send text/x-clientcaps
[12:57:24] cabextract output: couldn't execute "cabextract": no such file or directory

if i play a wink that is already in memory! its ok.  
but wen i try to steal one or add one, it just say "cannot open content.xml"
it did work before...reason...........i had none at the beginning  ;)


Title: Winks pluggin, a little work
Post by: echelon89 on March 07, 2007, 04:11:10 pm
Hello everyone!
I'm developing this (http://www.amsn-project.net/forums/viewtopic.php?p=16935) script...
now,it just works for emoticons, but it could be a good idea to integrate it for winks...isn't it?
could someone explain me how it works, how winks are saved and if this plugin could also send winks?


Title: Winks pluggin, a little work
Post by: Zaskar on March 07, 2007, 05:13:12 pm
bigbadben: did you install cabextract? The winks you receive are compressed, so you need cabextract to uncompress it. If you use WinXp you can choose to use extrac32 instead of cabextract in the plugin configuration dialog (you won't need to install anything in that case). If you use macos, you should get cabextract for mac os from http://www.kyz.uklinux.net/cabextract.php and write the correct path to the executable in the plugin configuration dialog.


Title: Winks pluggin, a little work
Post by: Zaskar on March 07, 2007, 05:46:27 pm
neothematrix: The content.xmls that you posted are perfectly normal. They have the same structure and fields that the ones I use to test, so there's no problem there. It must be something related to cabextract. You also say that you can extract them manually without troubles, so I think there's something wrong in the way the plugin calls cabextract, but I can't reproduce it. Do you have the right cabextract path in the plugin configuration dialog? Anyway, here's a little change, I don't know if that may help:

http://in.solit.us/archives/download/13466


Title: Winks pluggin, a little work
Post by: bigbadben on March 07, 2007, 11:41:03 pm
Quote from: "Zaskar"
bigbadben: did you install cabextract? The winks you receive are compressed, so you need cabextract to uncompress it. If you use WinXp you can choose to use extrac32 instead of cabextract in the plugin configuration dialog (you won't need to install anything in that case). If you use macos, you should get cabextract for mac os from http://www.kyz.uklinux.net/cabextract.php and write the correct path to the executable in the plugin configuration dialog.


yes
it's installed with fink.



this is the error i get wen trying to install new winks!!


[17:53:38] */Users/benoitdumont/Movies/MSN PACK 8000 Emoticons + 420 Winks/MSN PACK 8000 Emoticons + 420 Winks.part011173028352.tmp/420 Rare Winks for MSN 7/198 Winks with name/Bear with Flowers.MCO*
[17:53:38] *content.xml*
[17:53:38] */Users/benoitdumont/Library/Application Support/amsn/toseebigbadben_hotmail_com/winks/cache/tmp*
[17:53:38] cabextract output: couldn't execute "cabextract": no such file or directory


wen i tried default winks from a user, i had no problem to copy the winks.
iff i try to install winks from computer or steal "new" winks from msn friend, it wont let me


Title: Winks pluggin, a little work
Post by: Zaskar on March 08, 2007, 12:34:23 am
The last line "[17:53:38] cabextract output: couldn't execute "cabextract": no such file or directory" says that you don't have cabextract installed, or that it's somewhere outside the executable path. If you do have installed cabextract, you should look for it and write the full path in the winks configuration dialog (I don't know where do the files go in macs, but for example if I'd have cabextract in my home directory, I should replace "cabextract" for "/home/zaskar/cabextract").


Title: Winks pluggin, a little work
Post by: bigbadben on March 08, 2007, 12:43:55 am
Quote from: "Zaskar"
The last line "[17:53:38] cabextract output: couldn't execute "cabextract": no such file or directory" says that you don't have cabextract installed, or that it's somewhere outside the executable path. If you do have installed cabextract, you should look for it and write the full path in the winks configuration dialog (I don't know where do the files go in macs, but for example if I'd have cabextract in my home directory, I should replace "cabextract" for "/home/zaskar/cabextract").


ok..............

but why default works then...???


Title: Winks pluggin, a little work
Post by: Zaskar on March 08, 2007, 12:47:56 am
What do you mean by default?


Title: Winks pluggin, a little work
Post by: bigbadben on March 08, 2007, 12:53:07 am
Quote from: "Zaskar"
What do you mean by default?


the ones that comes with msn 7 ou 8 wen you install for the first time.........yes i know i had to steal them from a freind, but i had no problem stealing them, i have them under the winks window in the cw.i can check them too!!

but the problem is installing or stealing new winks that normally arent available as default....ex: i have around 400 winks i have in a folder ready to add to amsn. but the plugin or patch wont let me....

so here the good question. how come i already stolen some wink before, and now i cant steal or add new!?


Title: Winks pluggin, a little work
Post by: Zaskar on March 08, 2007, 01:06:06 am
It is very estrange, because the plugin uses the same proc for extracting files from an mco or any unknown wink you receive. If it finds cabextract for one thing, then it should find it for the other. Anyway, if your cabextract worked before and you added the winks then, now you can send them without trouble because you have them already uncompressed. You can try deleting one of them an stealing it again, but clear the cache folder before stealing again, because when you delete a wink  it is moved to the cache folder, so when stealing again the files are already extracted.


Title: Winks pluggin, a little work
Post by: Auria on March 08, 2007, 02:28:22 am
Quote

bigbadben: did you install cabextract?

Quote

yes
it's installed with fink.


Fink installs in non-standard prefix /sw, maybe you just need to add that /sw/bin to your path


Title: Winks pluggin, a little work
Post by: Zaskar on March 10, 2007, 04:17:34 pm
Now you can enable "close winks menu on mouse leave" even if you use beryl.

http://in.solit.us/archives/download/13718


Title: Winks pluggin, a little work
Post by: SSamiK on March 10, 2007, 04:28:26 pm
neothematrix explained my exact problem. content.xml looks right, cabextract works no doubt about that. (tried both full path to cabextract and just cabextract) So it's most likely as you said Zaskar, it's propably something in the way the script calls cabextract.
i've checkt all my wink folders, and there's never a file beeing unpacked when I try adding a wink from a mco. (stealing works just fine)

Still no errors in ether ctrl+s, nor alt+p

Is there any way I can provide you with somwhat more useful informatin, please give me a hint on how to do that and i'll be happy to help tracing the bug.

EDIT: I'm using the latest version of your plugin.


Title: Winks pluggin, a little work
Post by: Zaskar on March 10, 2007, 06:21:30 pm
Ok. I think that the plugin is something like finished now (or at least stable). This version should fix the problem for adding winks from an mco file. I've been chating with neothematrix and we found that we had installed different versions of cabextract. The problem was that the use of cabextract's "-F" argument  (when combined with "-d") has changed from version 1.1 to version 1.2. Here's the new winks plugin version:

http://in.solit.us/archives/download/13728

Note: if you update cabextract from 1.1 to 1.2 (or greater in the future) while the plugin is loaded, it will stop working, because the plugin finds out what version is available when it's loaded (so you'll have to disable and enable it again). Anyway, for those who has installed cabextract 1.1, I don't see any reason to update yet.


Title: Winks pluggin, a little work
Post by: neothematrix on March 10, 2007, 06:38:51 pm
works perfectly now, even the beryl thing...you can safely label the plugin as "final" :)


Title: Winks pluggin, a little work
Post by: SSamiK on March 10, 2007, 07:53:44 pm
Yeah, works perfectly now. Great work!


Title: Winks pluggin, a little work
Post by: kakaroto on March 11, 2007, 03:08:19 am
Hi Zaskar,
I just tested your plugin again and it looks really good!!!
I only have a small few complaints, but that could be fixed later.
1 - the plugin_version in the plugininfo.xml file contains the date of the release of the plugin, it should be more something like 0.9 or 1.0 or something like that... I don't think it changes anything, it's just to make it 'standard' like all the other plugins.
2 - It works very well, it's cool! but I still noticed that some winks are received with the name "Unused" and that it prevents us from seeing the real name of the wink. I tested with WLM and whenever you give the name "Unused" to a wink, WLM will show the name as it appears in the content.xml file (only after it downloaded it and after you close/reopen the window) I tested with the same wink, gave it different names, they all showed up in WLM, and once I gave it the name "Unused", it showed me the name of the wink as it's written in the wink:name attribute of content.xml. I then spent some time reading the msnmsgr.exe assembly code and I realized the "Unused" is indeed checked in the code, so I guess we should also check for that... almost all added winks have "Unused" as their name..
3 - When we add a new wink, it asks us for the name THEN it extracts the wink.. maybe it should extract the wink THEN ask us for the name, this way, wrong mco files will directly show an error without having to enter a name THEN realize we chose the wrong file.. also, it will allow the plugin to go get the wink's name from the content.xml, because I just downloaded hundreds of winks, and all the filenames are weird, so I have to go manually extract the mco, then the .cab, then read the content.xml, then get the wink's name, then add the wink into amsn and put the right name in it. if the plugin could automatically fetch the wink's name, that would be cool!
4 - the 'winks menu disappear on mouse leave' option of the configuration dialog is useless, probably noone will disable it, so it should be removed to make the plugin more 'user friendly' and not bloated.
5 - the same would apply to the 'show "add new wink" in winks menu' option of the config dialog
6 - I looked at the code, you're still not using the xml2list API ?

That's it..
All these issues are minor, and I'll be adding the winks plugin to SVN now. I just emailed amsn-devel to see what they think should be done, should we add winks plugin to amsn-extras or add it as a default plugin.
Thanks a lot for your great work!


Title: Winks pluggin, a little work
Post by: Paller on March 11, 2007, 10:03:20 am
Very nice plugin! Good work, but

I get this on windows:
Code:

wrong # args: should be "::winks::PlayWink wfile"
    while executing
"::winks::PlayWink C:/Documents and Settings/Paller.KATA/amsn/paller1984_sadamsnuser_com/winks/2af42d1c3d8ebd03573311d48d740a55/water_balloon.swf"
    invoked from within
".editWink.fb.play invoke"
    ("uplevel" body line 1)
    invoked from within
"uplevel #0 [list $w invoke]"
    (procedure "tk::ButtonUp" line 24)


Title: Winks pluggin, a little work
Post by: linforcer on March 11, 2007, 03:58:06 pm
Seemed like a bitch to look through the whole topic to read if my problem and/or it's solution are already documented, maybe keep a "known problems" in the first post, and edit it from time to time?

installed:
Winks Plugin 20070310.2
aMSN svn (co couple days ago)
gnash-0.7.2
cabextract-1.1

on amd64.
The object shows up, the thumbnail aswell, and when I play it I get sound, but no image. the chatwindow goes blank while it's supposed to be playing. is this the plugin not being done, or gnash failing?


Title: Winks pluggin, a little work
Post by: Fenix-TX on March 11, 2007, 05:31:17 pm
Quote from: "linforcer"
Seemed like a bitch to look through the whole topic to read if my problem and/or it's solution are already documented, maybe keep a "known problems" in the first post, and edit it from time to time?

installed:
Winks Plugin 20070310.2
aMSN svn (co couple days ago)
gnash-0.7.2
cabextract-1.1

on amd64.
The object shows up, the thumbnail aswell, and when I play it I get sound, but no image. the chatwindow goes blank while it's supposed to be playing. is this the plugin not being done, or gnash failing?


It's possible that is an issue with gnash


Title: Winks pluggin, a little work
Post by: noend on March 11, 2007, 08:16:32 pm
Hi Zaskar,

I noticied that the "Add new wink" import button is also importing Dynamic Display Pictures as well and would be great to have a filter that avoid importing those .MCOs.

Thanks for winks plugin !

Sebastian


Title: Winks pluggin, a little work
Post by: Zaskar on March 11, 2007, 08:34:02 pm
linforcer: if you want to play the wink inside the chat window you should use gnash 7.1 (there's some bug with the argument in 7.2).

noend: I know that winks and dynamic display pictures works in a very similar way inside the protocol, but I don't have any dynamic display picture, so I can't find out the difference. Anyway, maybe, in the future, we could combine gnash embebed playing with a big part of this code to make a plugin for dynamic display pictures.

linforcer: I think the "known problems" should be inside the readme, that's way I've added a Readme button in the configuration dialog, so what we must do is extend the readme.

I'm sorry but I won't be able to work in this for more than a week, but I'll post an updated and better documented version then. Thanks for the feedback.


Title: Winks pluggin, a little work
Post by: kakaroto on March 11, 2007, 10:20:51 pm
hi Zaskar.. and everyone else...
if you're interested in some winks, I downloaded some from emule and put them on my server, so you can add those mco files and have plenty of winks in amsn :)
for zaskar, you can also see the dynamic display pictures, so you can compare between the two.
I extracted the archive in case you don't want to download the whole 24MB archive for only one file..
here's the content.xml of the MCO of a wink :
Code:
<package version="1.0" type="theme">
   <item contentid="4099930275TFR1C2" type="wink" contenttype="P" mimetype="application/messengercontent" file="TFR1C2.cab" stamp="MIIIngYJKoZI.... "/>
</package>

and here's the content.xml of the MCO of a dynamic display picture :
Code:

<package xmlns="http://messenger.msn.com/messengercontent/1.0" version="1.0" type="theme">
 <item contentid="1685921907TFR1F7" type="dynamicpicture" contenttype="P" mimetype="application/messengercontent" file="TFR1F7.cab" stamp="MIIIng...."/>
</package>


in short, look for the item tag, the 'type' attribute.
have fun.

EDIT : lol, forgot to post the link : http://kakaroto.homelinux.net/~kakaroto/winks/


Title: Winks pluggin, a little work
Post by: linforcer on March 11, 2007, 10:30:26 pm
Quote from: "Zaskar"
linforcer: if you want to play the wink inside the chat window you should use gnash 7.1 (there's some bug with the argument in 7.2).

noend: I know that winks and dynamic display pictures works in a very similar way inside the protocol, but I don't have any dynamic display picture, so I can't find out the difference. Anyway, maybe, in the future, we could combine gnash embebed playing with a big part of this code to make a plugin for dynamic display pictures.

linforcer: I think the "known problems" should be inside the readme, that's way I've added a Readme button in the configuration dialog, so what we must do is extend the readme.

I'm sorry but I won't be able to work in this for more than a week, but I'll post an updated and better documented version then. Thanks for the feedback.


Alright, regaring the README, that's cool. Regarding gnash, 7.2 is the only one in portage. Should I unmerge it and get the 7.1 sources myself if I want in-window winks?


Title: Winks pluggin, a little work
Post by: kakaroto on March 11, 2007, 10:44:47 pm
@linforcer : I suppose, yes.. or disable the in-window winks option...


Title: Winks pluggin, a little work
Post by: linforcer on March 11, 2007, 10:53:28 pm
Quote from: "kakaroto"
@linforcer : I suppose, yes.. or disable the in-window winks option...


actually, just tried, and 7.1 doesn't work for me at all.
first the problem was that it installs the binary to /usr/local/bin, but even after putting that in the command field in the plugin conf it didn't work at all. Guess for now I'll have to live with out-of-window winks.

EDIT just make clean'd the 7.1 and emerged the 7.2 again, but now it doesn't give any sound >_> but it might be that it's just the sound device being taken, as it worked with sound, before.


Title: Winks pluggin, a little work
Post by: MastaG on March 13, 2007, 09:31:29 am
Just tested it on two systems

Linux Fedora Core 6
tcl/tk 8.5 CVS
gnash from the extras repo (cant tell what version atm)
cabextract from the extras repo (cant tell what version atm)
latest amsn svn

and

Windows XP SP2
tcl/tk from the amsn 0.96 windows package
gnash 0.7.1 (development release)
extrac32 (comes with WinXP SP2)
latest amsn svn

On both setups I can play winks (including sounds), save and send them.
The only thing that doesn't work is playing them inside the chatwindow.. It'll go blank on both linux and windows.
What version of gnash did you guys use to make it work?


Title: Winks pluggin, a little work
Post by: SSamiK on March 13, 2007, 09:43:05 am
On linux you'll need gnash-0.7.1, however it's not working flawlessly. Tends to be slow and really eating CPU, so IMHO you'll be better of with the wink in a seperate window at the time beeing.
If it even works on Windows, i'll bet you'll have to use gnash there as well, as the Readme.txt clarly states: If your player is "gnash", we can use its functionallity to achieve it. This feature is still being tested and developed, so I may work or not, depending on what os and gnash version you use.


Title: Winks pluggin, a little work
Post by: MastaG on March 13, 2007, 04:31:05 pm
Allright:)
Yeah it also works on windows using gnash, haven't tried other players though.
So let's wait for it to be completed.
Maybe you guys should make the winks and nudge plugin part of the amsn core since it also comes with WLM by default.
For windows you could then include the binary and dll's for gnash and for linux just the source that will automaticly compile with the ./configure script.
Just a thought.


Title: Winks pluggin, a little work
Post by: Trappski on March 13, 2007, 04:39:38 pm
Quote from: "MastaG"
Allright:)
Yeah it also works on windows using gnash, haven't tried other players though.
So let's wait for it to be completed.
Maybe you guys should make the winks and nudge plugin part of the amsn core since it also comes with WLM by default.
For windows you could then include the binary and dll's for gnash and for linux just the source that will automaticly compile with the ./configure script.
Just a thought.


Nudge has been in aMSN as long as i can remember...
Winks recently got added in the SVN...


Title: Winks pluggin, a little work
Post by: kakaroto on March 13, 2007, 04:50:47 pm
MastaG, the nudge plugin is shipped and enabled by default with amsn and for the winks plugin, it will be shipped with amsn automatically, but not enabled because of the flash/cabextract dependency. It is currently being discussed and we hope to provide cabextract and the flash player for the mac package, but for linux, you'll have to do it yourself, there's a readme file, and you just need to learn how to read readmes... we can't do much more.
We have enough dependencies, we don't want to add even more dependencies to the core.
Also, the plugins system is to make amsn more lightweight, so it's not a good idea to merge the source with the core!

@Zaskar : we'd be glad if you could take some time to make your plugin more userfriendly for it to be ready for the 0.97 release (pretty soon, less than a month, we hope).
first, there's a bug, with a patch on the amsn-devel mailing list, sent by Paller, I answered him with the 'correct way' of doing it, so you should maybe review your code and change it the way I said it should be, read about it here : http://article.gmane.org/gmane.network.instant-messaging.amsn.devel/8139
read this too (especially the mail I'm responding to) : http://article.gmane.org/gmane.network.instant-messaging.amsn.devel/8122
what would be nice is to have :
* the 'use extrac32' option only available for users under windows, and if it's even possible to test if extrac32 is available, that would be better, so you don't show the option for users who don't need it.
* if 'use extrac32' is checked, then the 'cabextract path' field should be disabled, so people don't get confused.
* check for flash players in the plugin's directory, so we could ship a 'binary release' of the plugin if needed
* show a combobox with the list of flash players supported to ease the configuration for users.
* remove the 'flash player arguments' field, and hardcode the arguments yourself in the code depending on the flash player chosen by the user.
* check for the validity/existence of the cabextract/extrac32 and flash player upon launch and after the plugin gets configured, this way you can avoid bugs or users complaining why it doesn't work when they actually didn't configure it correctly.
* Don't forget the comments I gave you on this post : http://www.amsn-project.net/forums/viewtopic.php?p=17106#17106
* any other little thing that would make the configuration dialog easier to use for our users

Keep it up!
Thanks.


Title: Winks pluggin, a little work
Post by: Zaskar on March 20, 2007, 04:29:53 am
Here are some changes. Before downloading and reporting many bugs, please read that: I WASN'T ABLE TO TEST IT!!! I don't have any internet conection in my pc now. I've done those changes blind, so even if I hope they will work because I've only made small changes, I can't tell you it will.

http://in.solit.us/archives/download/15273

Changes:
* It now tryes to find out itself what cab extractor should be use. If it find the default config (don't use extract32) it will check if cabextract is present. If it finds that cabextract runs ok it will do nothing, but if it doesn't work, it will try first with extrac32, and then with the one in the plugin directory (if there's one there)... Should we do something similar with the flash player???... The problem there is that I can't call any flash player to test if it works because most of them don't run silently (as cabextract with "-v").
* If fixes that thing reported by Tom and corrected by Kakaroto about the winks menu button.
* The options for hidding the add new wink button and not closing the winks menu when mouse leaves it aren't there anymore.
* The trouble with wink names when receiving from msn live should be fixed. I've only added a little condition that says that if the name is "Unused" it should do the same it does when if the name is empty: read the content.xml (most of the winks have its name there), or if there's no name there, use the swf filename (that is usually more friendly than the mco one).

About the wink name when you add a new one, I can't change it without testing, its a big change, but I can tell that if you left the name empty it will look for a name inside the wink (the one in the content.xml, or the animation filename if there's no name in content.xml). The trouble is that to see the wink name, I need to extract both files from the mco, and extract the cab file to, so I need to install the wink!. What I can do is to install it in tmp, and then, move it to winks. I'll work on it later.

About the version format: I do it this way because it's a quick and easy way to see if this is a recent or an old one, and specially because I don't know when the changes are big enought to increase version number, or when to increase revisions, or when it's enought to be 1.0, or things like that (we sometimes modify just a few bytes), etc. If you want to change it to 1.0 for amsn 0.97 release you can freely do it (and then I will start releasing with 1.1, 1.2, ...).

About the xml functions... The ones I use works ok for every test case I have, so that's why replacing them is not my priority (there are more things to fix that are more visible), and I don't know if I need to use more powerfull functions for reading those content.xml that are so small and simple ones.


Finally, I'm checking posts and mails only one or two times a week now, so please be patience. I'll be back in my home for a few days this weekend, so I'll test the new changes there and I'll try to complete the other requests. You'll have news on saturday or sunday.

Is there any msn server or something like that for testing without internet conection?


Title: Winks pluggin, a little work
Post by: kakaroto on March 20, 2007, 05:37:29 am
Hi Zaskar, thank you for your work again, you seem to have so little time but still dedicate it to this plugin which is a great addition to amsn. During the week end, if you think you should rest instead, feel free to rest instead of working on this plugin!
I didn't test the changes and I won't do it right now, probably tomorrow I'll test and commit to svn the new version, I'll just answer briefly everything you said :
Quote
About the wink name when you add a new one, I can't change it without testing, its a big change, but I can tell that if you left the name empty it will look for a name inside the wink (the one in the content.xml, or the animation filename if there's no name in content.xml). The trouble is that to see the wink name, I need to extract both files from the mco, and extract the cab file to, so I need to install the wink!. What I can do is to install it in tmp, and then, move it to winks. I'll work on it later.

maybe do it like msn, when you add a wink, you expect the xml to contain the name of the wink, so don't ask the user, simply add the wink and that's it.. if you can't find the wink's name, then put the filename, like you do now, and maybe ask the user... I understand you need to extract, and I don't know the code yet, so.. is it such a problem to extract, get the wink's name then add it to the index ?

about the version format, I understand you :D I feel the exact same thing... I usually just increment gradually, I use 0.1 when I just started, or use 0.9 when it's almost done (like winks) then increment a little everytime.. I could get to 1.0, or 1.1, or whatever, I don't really care, as long as I can know that 0.9 is older than 1.0... also, I think 2.0 is used when you do a total rewrite... that's how I do it, but everyone does it his way, there's no real 'law' about it, and I always feel the same as you :)

Finally, about the xml functions, I understand and I agree, if it works, don't change it, I just think it would be better to use a common API... BUT I fully agree with you that this should be the lowest priority.. do it once the plugin is stable, has all the features, etc...

Now here's the todo list of what I wrote to you last time.. I'm just requoting it so it stays on top and doesn't get forgotten... I removed the entries you said were fixed :
Quote

3 - When we add a new wink, it asks us for the name THEN it extracts the wink.. maybe it should extract the wink THEN ask us for the name, this way, wrong mco files will directly show an error without having to enter a name THEN realize we chose the wrong file.. also, it will allow the plugin to go get the wink's name from the content.xml, because I just downloaded hundreds of winks, and all the filenames are weird, so I have to go manually extract the mco, then the .cab, then read the content.xml, then get the wink's name, then add the wink into amsn and put the right name in it. if the plugin could automatically fetch the wink's name, that would be cool!
6 - I looked at the code, you're still not using the xml2list API ?

which means you're almost done :)
tomorrow, I'll commit your new version and put the plugin in the main site (I just realized it's not there yet!) so more people can test it and hopefully report no bugs :)

thanks
keep it up!


[EDIT] ps: WOW, 255 posts in this thread, and it's not even a sticky thread, you beat the chameleon thread which was the longest with 244 replies... congrats on the best plugin so far :)


Title: Winks pluggin, a little work
Post by: [S]haDoW on March 21, 2007, 10:33:22 am
At last SVN version:
Code:

Revisione corrente: 8265
U    amsn/plugins/winks/lang/langit
U    amsn/plugins/winks/plugininfo.xml
U    amsn/plugins/winks/winks.tcl
Aggiornato alla revisione 8266.
------------------------------------------------------------------------
r8266 | kakaroto | 2007-03-21 04:48:30 +0100 (mer, 21 mar 2007) | 6 lines


when i try to load winks plugin:

Code:
Winks: Failed to load source with result:
missing close-brace


Title: Winks pluggin, a little work
Post by: xoan on March 21, 2007, 11:07:50 am
Close-brace is (I think):

Code:
Index: winks.tcl
===================================================================
--- winks.tcl   (revisión: 8266)
+++ winks.tcl   (copia de trabajo)
@@ -115,6 +115,7 @@
                                        if {[file exists [file join $dir "cabextract"]} {
                                                set ::config(cabextractor) [file join $dir "cabextract"]
                                                CheckCabextractVersion
+                                       }
                                }
                        }
                }


But with this patch, winks.tcl crashes with this error: "Plugins System: Can't initialize plugin:init procedure caused an internal error":

Code:
[11:02:28] core: Getting Winks and author
[11:02:28] core: Winks_author
[11:02:28] core: Getting Winks and plugin_version
[11:02:28] core: Winks_plugin_version
[11:02:28] core: Getting Winks and description
[11:02:28] core: Winks_description
[11:02:31] core: Getting Winks and amsn_version
[11:02:31] core: Winks_amsn_version
[11:02:31] core: Getting Winks and plugin_file
[11:02:31] core: Winks_plugin_file
[11:02:31] core: Getting Winks and plugin_namespace
[11:02:31] core: Winks_plugin_namespace
[11:02:31] core: Getting Winks and init_proc
[11:02:31] core: Winks_init_proc
[11:02:31] core: Plugin needs 0.97
[11:02:31] core: appending to loadedplugins
[11:02:31] core: Initializing plugin Winks with winks::Init
[11:02:32] core: Plugin Systems: RegisterEvent called with Winks WinkReceived ReceivedWink
[11:02:32] core: Getting Winks and plugin_namespace
[11:02:32] core: Winks_plugin_namespace
[11:02:32] core: Binding WinkReceived to ReceivedWink
[11:02:32] core: Plugin Systems: RegisterEvent called with Winks chatwindowbutton AddWinksButton
[11:02:32] core: Getting Winks and plugin_namespace
[11:02:32] core: Winks_plugin_namespace
[11:02:32] core: Binding chatwindowbutton to AddWinksButton
[11:02:32] core: Plugin Systems: RegisterEvent called with Winks DataCastPacketReceived ReceiveSomething
[11:02:32] core: Getting Winks and plugin_namespace
[11:02:32] core: Winks_plugin_namespace
[11:02:32] core: Binding DataCastPacketReceived to ReceiveSomething
[11:02:32] core: Plugin Systems: RegisterEvent called with Winks PacketReceived ReceiveSomething
[11:02:32] core: Getting Winks and plugin_namespace
[11:02:32] core: Winks_plugin_namespace
[11:02:32] core: Binding PacketReceived to ReceiveSomething
[11:02:32] core: Initialization of plugin Winks with winks::Init failed
invalid bareword "CheckCabextractVersion"
in expression " ! CheckCabextractVersion ";
should be "$CheckCabextractVersion" or "{CheckCabextractVersion}" or "CheckCabextractVersion(...)" or ...
invalid bareword "CheckCabextractVersion"
in expression " ! CheckCabextractVersion ";
should be "$CheckCabextractVersion" or "{CheckCabextractVersion}" or "CheckCabextractVersion(...)" or ...
    (parsing expression " ! CheckCabextractVers...")
    invoked from within
"if { ! CheckCabextractVersion } {
if {[file exists [file join $dir "cabextract"]} {
set ::config(cabextractor) [file join $dir "cabextract"]
..."
    (procedure "::winks::Init" line 63)
    invoked from within
"::${namespace}::${init_proc} [file dirname $file]"
[11:02:32] Desktop Integration: aMSN called messageBox {type='ok', icon='info'}
[11:02:32] Desktop Integration: Calling 'zenity --info'
[11:02:32] core: Unloading plugin Winks
[11:02:32] core: Getting Winks and plugin_namespace
[11:02:32] core: Winks_plugin_namespace
[11:02:32] core: UnRegistering command 0 from ::winks::ReceivedWink...
[11:02:32] core: UnRegistering command 2 from ::Nudge::received ::Games::PacketReceived ::winks::ReceiveSomething...
[11:02:32] core: UnRegistering command 1 from ::Nudge::received ::winks::ReceiveSomething...
[11:02:32] core: UnRegistering command 4 from ::Nudge::sendbutton ::Nudge::blockbutton ::draw::AddInkSwitchButton ::SpellCheck::checkspellbutton ::winks::AddWinksButton...
[11:02:32] core: Getting Winks and plugin_namespace
[11:02:32] core: Winks_plugin_namespace
[11:02:32] core: Getting Winks and deinit_proc
[11:02:32] core: Winks_deinit_proc
[11:02:32] core: Error in deinit proc : wrong # args: should be "::winks::DeInit dir"
[11:02:32] core: save_config: saving plugin config for user xoanXXXX@XXXX.com in /home/xoan/.amsn/xoanXXXX_XXXX_com]
[11:02:32] core: save_config: saving plugin config_file. Opening of file returned : file10
[11:02:32] core: Getting Nudge and plugin_namespace
[11:02:32] core: Nudge_plugin_namespace
[11:02:32] core: save_config: Saving from Nudge's namespace: Nudge
[11:02:32] core: Getting Cam Shooter and plugin_namespace
[11:02:32] core: {Cam Shooter_plugin_namespace}
[11:02:32] core: Getting Organize Received Files and plugin_namespace
[11:02:32] core: {Organize Received Files_plugin_namespace}
[11:02:32] core: save_config: Saving from Organize Received Files's namespace: organize_received
[11:02:32] core: Getting Fortune and plugin_namespace
[11:02:32] core: Fortune_plugin_namespace
[11:02:32] core: Getting emotes and plugin_namespace
[11:02:32] core: emotes_plugin_namespace
[11:02:32] core: Getting Music and plugin_namespace
[11:02:32] core: Music_plugin_namespace
[11:02:32] core: save_config: Saving from Music's namespace: music
[11:02:32] core: Getting Inkdraw and plugin_namespace
[11:02:32] core: Inkdraw_plugin_namespace
[11:02:32] core: Getting Desktop Integration and plugin_namespace
[11:02:32] core: {Desktop Integration_plugin_namespace}
[11:02:32] core: save_config: Saving from Desktop Integration's namespace: desktop_integration
[11:02:32] core: Getting Games and plugin_namespace
[11:02:32] core: Games_plugin_namespace
[11:02:32] core: save_config: Saving from Games's namespace: Games
[11:02:32] core: Getting SpellCheck and plugin_namespace
[11:02:32] core: SpellCheck_plugin_namespace
[11:02:32] core: save_config: Saving from SpellCheck's namespace: SpellCheck
[11:02:32] core: Getting WebSearch and plugin_namespace
[11:02:32] core: WebSearch_plugin_namespace
[11:02:32] core: save_config: Saving from WebSearch's namespace: searchplugin
[11:02:32] core: Getting DualDisplayPicture and plugin_namespace
[11:02:32] core: DualDisplayPicture_plugin_namespace
[11:02:32] core: Getting UserStatus and plugin_namespace
[11:02:32] core: UserStatus_plugin_namespace
[11:02:32] core: Getting gnotify and plugin_namespace
[11:02:32] core: gnotify_plugin_namespace
[11:02:32] core: save_config: Saving from gnotify's namespace: gnotify
[11:02:32] core: Getting remind and plugin_namespace
[11:02:32] core: remind_plugin_namespace
[11:02:32] core: save_config: Saving from remind's namespace: remind
[11:02:32] core: save_config: Plugins config saved


I don't know if one ore more of others plugins are in conflict with Winks Plugin (or viceversa); or if a CheckCabextractVersion called isn't correct.


Title: Winks pluggin, a little work
Post by: Bloodsucker on March 23, 2007, 11:01:15 am
i have the same error when i try to enable

Winks: Failed to load source with result:
missing close-brace


Title: Winks pluggin, a little work
Post by: kakaroto on March 23, 2007, 03:04:23 pm
yes, we know, Zaskar said he couldn't test the changes he made because he doesn't have an internet connection... I have no time to take care of that for him, so when he'll be back, he'll fix the bugs and send a new workable version, in the meantime, use the previous version!


Title: Winks pluggin, a little work
Post by: Bloodsucker on March 24, 2007, 12:43:52 am
i'm very impacient! :D


Title: Winks pluggin, a little work
Post by: Zaskar on March 24, 2007, 05:15:51 pm
Here's the fixed one:

http://in.solit.us/archives/download/16261

It will try to find out the cabextract and the flashplayer configurations:
For cabextract:It first checks for extract32 (for windows version), then checks for cabextract (to see if there's one already installed), then looks for one inside the plugin directory.
For flashplayer: if will try first with gnash to see if there's one in the system, then it will look for a gnash in the plugin directory, and then it will look for another there that should be named flashplayer. If we are on windows, it will add .exe at the end of the command (it means that it looks for gnash.exe or flashplayer.exe). For gnash, it also finds out its version and sets/unsets playing inside chat window option.
Both thing are made to be checked only on the first time you load the plugin and to be remembered. The real condition for the guessing is that cabextrator or flashplayer fields in the plugin configuration dialog should be empty.

Edited: I've changed the link because the "play inside chat window" when it guesses the flash player was inverted.


Title: Winks pluggin, a little work
Post by: kakaroto on March 24, 2007, 09:03:25 pm
Hi Zaskar,
I didn't test the plugin yet, but I saw in the diff when I was commiting that you use : [file join $dir gnash] etc.. in the CheckFlashPlayer and CheckCabExtractor, but $dir is not defined.. you don't pass $dir as argument for those two functions.. I think that will cause a bug for sure!


EDIT:
ok, I just tested.. when we clear the cab/flash entries, and we load, we get this :
Quote

[16:08:59] core: Initialization of plugin Winks with winks::Init failed
can't read "dir": no such variable
can't read "dir": no such variable
    while executing
"file join $dir "gnash.exe""
    (procedure "GuessFlashplayer" line 19)
    invoked from within
"GuessFlashplayer"
    (procedure "::winks::Init" line 78)
    invoked from within
"::${namespace}::${init_proc} [file dirname $file]"

I also see this in the plugin's log :
Quote

[16:08:39] core: Error in deinit proc : wrong # args: should be "::winks::DeInit dir"



EDIT 2 : Ok, I fixed it in revision 8287 as well as fixing a way of using catch statements... please make sure to get my modifications before you continue working on the plugin... thanks!


Title: Winks pluggin, a little work
Post by: Zaskar on March 25, 2007, 01:26:36 am
Here's the new one ( this one works;) ):

http://in.solit.us/archives/download/16486

If fixes what kakaroto said in last post, and changes the way it adds a new wink (now it checks if its a wink, and it let you see the name, animation and thumbnail before adding it).


Title: Winks pluggin, a little work
Post by: kakaroto on March 25, 2007, 07:10:23 am
Hi Zaskar, thanks for the new version, and btw, glad you have internet back!
I just committed your changes in r8292.. I only changed the version in the plugininfo.xml into 20070325 because the version should be used by the autoupdater and I'm not sure how it would handle a dash in it.


Title: Winks pluggin, a little work
Post by: [S]haDoW on March 25, 2007, 10:40:47 am
This one is ok :)
the missing key of italian translation :
Code:
winks_file_is_not_a_wink Il file non contiene animoticon.


Bye


Title: Winks pluggin, a little work
Post by: Zaskar on March 25, 2007, 03:55:58 pm
Kakaroto: About version number... I'll be out for a week again. Remember that if 0.97 release comes you can freely change plugin version to 1.0, I'll adapt to this numbering if you think it's the better way.


Title: Winks pluggin, a little work
Post by: Fenix-TX on March 26, 2007, 10:39:51 am
Hi Zaskar, there is a little typo in spanish translation, not important:

Quote
Notificar los guiños recibidos en una linea


should be:

Quote
Notificar los guiños recibidos en una línea


Title: Winks pluggin, a little work
Post by: Trappski on March 26, 2007, 05:58:56 pm
freshly translated keys for langsv:

Code:

winks_file_is_not_a_wink Filen innehåller ingen blinkning.
winks_use_queque_in Använd en uppspelnings-kö när blinkningar spelas i konversationsfönstret.
winks_use_queque_out Använd en uppspelnings-kö när blinkningar spelas utanför konversationsfönstret.


and this one should replace the old misspelled one:
Code:

winks_play_wink_immediatly_when_recived Spela blinkning direkt efter nedladdning.

original spelling for key was:
winks_play_wink_inmediatly_when_recived


Title: Original Microsoft .mco files.
Post by: gbowden on April 12, 2007, 10:51:34 pm
I've created .mco files from the Microsoft wink files provided with MSN Live, you can download them below:

http://hyperupload.com/download/02bd1b9310/mco.zip.html

Regards,

Greg


Title: Winks pluggin, a little work
Post by: snipe2004 on April 12, 2007, 11:04:06 pm
They seems to work properly :P
Thanks gbowden!

Couldn't we add them by default to Winks Plug-in? If there's nothing like copyrights or such problem, I think this could be a good idea...


Title: Winks pluggin, a little work
Post by: kakaroto on April 12, 2007, 11:54:47 pm
I think there will be copyright issues...


Title: reciving winks
Post by: swejuggalo on April 19, 2007, 10:22:33 am
How do I make them play? I never get the preview, just "please wait".... Read something about flash and stuff... Maybe the solution is hidden somewhere in this tread, but 19 pages....way too tired right now to read them all ;)
Maybe a new thread just about the receving and playing issue?

Using r8484 on Ubuntu 6.10


Title: Winks pluggin, a little work
Post by: vivia on April 19, 2007, 10:32:48 am
Make sure you are not using gnash from the repositories. Use the previous version instead.


Title: Winks pluggin, a little work
Post by: swejuggalo on April 19, 2007, 10:46:32 am
Do not have gnash.. just the official flash from macromedia. What to download and install then?


Title: Winks pluggin, a little work
Post by: xoan on April 19, 2007, 11:28:18 am
Quote from: "swejuggalo"
Do not have gnash.. just the official flash from macromedia. What to download and install then?


Maybe from your package manager:

Code:
# apt-get install gnash
# yum install gnash
# ...


or by searching stand-alone packages from your distribution.

Compile it is a little hard task (I know it :D).


Title: Winks pluggin, a little work
Post by: swejuggalo on April 19, 2007, 11:32:08 am
Does not exist on Ubuntu 6.10 apperantly... will try to compile 0.7.1 or 0.7.2. Maybe o.7.1 since "Make sure you are not using gnash from the repositories. Use the previous version instead."? Have to work... back later


Title: Winks pluggin, a little work
Post by: xoan on April 19, 2007, 11:39:13 am
Quote from: "swejuggalo"
Does not exist on Ubuntu 6.10 apperantly... will try to compile 0.7.1 or 0.7.2. Maybe o.7.1 since "Make sure you are not using gnash from the repositories. Use the previous version instead."? Have to work... back later


Gnash exists in Ubuntu 6.10, but it is in *-backports repository

http://packages.ubuntu.com/edgy-backports/utils/gnash

Check your /etc/apt/sources.list and uncomment lines from backports (then update and install it with apt-get or synaptic).


Title: Winks pluggin, a little work
Post by: kakaroto on April 19, 2007, 08:31:21 pm
did you read the README.txt file coming with the plugin? it has all the information you need, it sumarizes anything important from these 19 pages... read it first!


Title: Winks pluggin, a little work
Post by: swejuggalo on May 09, 2007, 03:10:01 pm
Back again.

Got 0.7.1 to work fine with aMsn on Ubuntu 6.10. After a upgrade to 0.7.2 it still worked fine :)
But now I installed Ubuntu 7.04. Almost works. Can see the preview image (in other words cabextract works). The only thing not working it to show anything else but a white area where the wink should have been played (inside the windows is used). So far a older Gnash that can be installed on 7.04 can not be found.

Do I need to do something special to make Adobe flash to work? Just configuring aMsn for it do not seem to help.


Title: Winks pluggin, a little work
Post by: kakaroto on May 09, 2007, 04:03:03 pm
@swejuggalo :
read my above post please!!!!!!!!!!!!


Title: Winks pluggin, a little work
Post by: swejuggalo on May 09, 2007, 06:28:45 pm
I did. Opps... Found out that I used "-1" without removing the ":s

I does say Player arguments: "-1". The last idiot is not born yet... So why not make a note in the manual that says not to include "" in the arguments? Everything is easy if no one can misinterpret it.

A note... Gnash 0.7.2 on Ubuntu 7.04 with build 8581. Gnash does not work inside the window...


Title: Winks pluggin, a little work
Post by: kakaroto on May 09, 2007, 11:10:01 pm
gnash 0.7.2 is known not to work inside window.


Title: gnash 0.8
Post by: sinplomo on June 12, 2007, 08:16:02 pm
anyone tried if gnash 0.8 works inside windows ?

thanks


Title: Winks pluggin, a little work
Post by: Zaskar on July 09, 2007, 03:27:07 pm
Hi again. I've just downloaded gnash 0.8, and it still does not work inside the chat window as 0.7.1 does, but I found something. If you have kde, gnash includes a "plugin" for kde, whose binary file is klash, and klash do works (may be it also works in gnash 0.7.2), so if you have klash, change the player command from gnash to klash and it will work.


Title: Winks pluggin, a little work
Post by: woekele on July 13, 2007, 01:45:06 pm
I'm on windows and trying to use this. It says in the readme that for player-arguments, I have to put "". So, I left it empty like it was. When someone sends me a wink, after I while I see the preview, but when I try to play it, it just does nothing. I have flash-player (latest, 9.x.x.47) installed and it works fine both in Fx and IE.


Title: Winks pluggin, a little work
Post by: kakaroto on July 13, 2007, 03:08:14 pm
woekele, alt-p and see what the plugin log says..


Title: Winks pluggin, a little work
Post by: woekele on July 13, 2007, 03:52:57 pm
It says nothing.


Title: Winks pluggin, a little work
Post by: Zaskar on July 14, 2007, 12:36:41 am
Woekele: What flash player have you installed? May be you have installed only the browser plugin, but not the standalone player. What did you worte in the "Flash player command" field? You can get for example: http://download.macromedia.com/pub/flashplayer/updaters/9/sa_flashplayer_9_debug.exe

Many others: For those who have kubuntu or somenthing based on apt-get with kde, you can do "apt-get klash", and change the flash player command from gnash to klash, so you can enable the see the winks inside the chat window.


Title: Winks pluggin, a little work
Post by: othmane on July 14, 2007, 07:34:43 pm
Hi, I'm new on the forum  :)
I've downloaded the mco files from:
http://hyperupload.com/download/02bd1b9310/mco.zip.html

how I can extract them?
I've tried extract32.exe, but it doesn't work...  :(

Please, can you tell me how i can extract it, and where i must place them?

Thank you all  :D


Title: Winks pluggin, a little work
Post by: kakaroto on July 15, 2007, 10:00:10 pm
othmane, it's a zip file, you need winzip or winrar... I can't beleive someone doesn't have those utilities installed.


Title: Winks pluggin, a little work
Post by: woekele on July 15, 2007, 10:01:20 pm
Quote from: "Zaskar"
Woekele: What flash player have you installed? May be you have installed only the browser plugin, but not the standalone player.


That's probably the problem. I'll look again to see if I can get it to work :) ty.


Title: Winks pluggin, a little work
Post by: othmane on July 16, 2007, 06:19:41 pm
Excuse me kakaroto, i was asked in my previous post how i can extract the content of mco file :)
But now i know how i can do it...  I was curios to see the content of mco file...
To see its content you must open it with winrar XD, i wasn't know it, i was think that it isn't an archive...

p.s. I have winrar... :) XD

Sorry for my English...  :oops:

-EDIT
Can I link an mco archive?


Title: Winks pluggin, a little work
Post by: woekele on July 29, 2007, 04:32:03 pm
I'm having trouble finding the flash stand alone player. The adobe page only offers me what I already have installed.


Title: Winks pluggin, a little work
Post by: Rono on August 02, 2007, 11:46:58 pm
Helloooooo!!
I've a problem with winks: I've followed the instructions of README file , but the animoticons don't work, there is written:"impossibile aprire content.xml" (can't open content.xml) .
I've aMSN RC1 on ubuntu feisty, with flashplayer and cabextract
there are some people with the same problem.
can anyone help us?
Thanks =)


Title: Winks pluggin, a little work
Post by: Rono on August 09, 2007, 05:24:14 pm
now my aMSN accept the animoticons, I also can send them (after i've saved), but I can't see them  :shock:


Title: Winks pluggin, a little work
Post by: Rono on August 10, 2007, 12:44:54 pm
HELLOOOOOO!!
siete andati tutti al mare..? v'afogaste almeno XD

Should I use the SVN version?


Title: Winks pluggin, a little work
Post by: square87 on August 10, 2007, 06:30:50 pm
Quote from: "buggami"
HELLOOOOOO!!


Hi. don't write in uppercase...

Quote from: "buggami"
siete andati tutti al mare..? v'afogaste almeno XD

This is an English language forum, don't speak in "Italian" especially for jokes. It was not funny!!!

Quote from: "buggami"
Should I use the SVN version?


Read this thread! You'll find the solution or at least the reason!

Bye


Title: Winks pluggin, a little work
Post by: Rono on August 11, 2007, 09:26:22 am
Quote from: "square87"
Quote from: "buggami"
HELLOOOOOO!!


Hi. don't write in uppercase...

I was screaming 'cause you didn't hear me  :shock:
however.. it's funny for me ahahah
thanks for the suggestion...


Title: Winks pluggin, a little work
Post by: woekele on August 14, 2007, 05:10:28 pm
Seriously, I can't find a standalone flas player for windows on the adobe site...


Title: Winks pluggin, a little work
Post by: kakaroto on August 14, 2007, 07:04:02 pm
the README of the plugin has links.


Title: Winks pluggin, a little work
Post by: woekele on August 17, 2007, 08:46:03 am
Yes, it says http://www.adobe.com/support/flashplayer/downloads.html , but I can't find it there...

Looked some more, guess they mean the project content debugger? http://download.macromedia.com/pub/flashplayer/updaters/9/sa_flashplayer_9_debug.exe

Okay, pointed the command to that .exe and it is working now :) Very nice job.

Edit: zomg, I see now that Zaskar already gave that link a lot of posts ago. How could I have missed that?


Title: Winks pluggin, a little work
Post by: zekeco on February 17, 2008, 02:46:30 am
I've just installed aMSN and I have a problem with the Winks plugin.

When I try to add a wink theres a bug window which says "Can't open content.xml".

In Status Log it says:

Quote
[02:12:25] cabextract output: Microsoft (R) Cabinet Extraction Tool - Version 6.0.6000.16386
Copyright (c) Microsoft Corporation. All rights reserved..
ERROR: Invalid switch: /amsn/zoubi_hotmail_fr/winks/cache/tmp
child process exited abnormally


I have aMSN 0.97 and Winks plugin 20080105 installed on Windows Vista


Title: Winks pluggin, a little work
Post by: kakaroto on February 17, 2008, 04:56:34 am
Hi,
maybe this was never tested on windows vista.. maybe the extract program has different command line arguments on vista...


Title: Winks pluggin, a little work
Post by: Waveride on March 03, 2008, 03:07:14 am
Hey guys! First off, great MSN application, so far the best one i've used, makes me regret ever trying mercury messenger and a few other one. The webcam conversations are smooth and a breeze for a mac MSN user. I'd like to ask, how can i add some winks to the application, other than the standard official MSN ones that were posted on here. Also, how do you make them actually work and pop up like on PC's? Thanks!


Title: Winks pluggin, a little work
Post by: kakaroto on March 03, 2008, 03:34:08 am
Hi,
thanks for the comments, and yes, I agree, using mercury was probably a bad idea :p
About winks, read the README file, it contains all the info you need. To add a wink, you need to install this plugin, and have the '.mco' file for the wink (not the .cab) and click on the winks icon and then 'add new wink'. You can also right click on a received wink and choose the 'add wink to menu' option from the contextual menu (right click or command click, not sure for mac).


Title: Winks pluggin, a little work
Post by: square87 on March 08, 2008, 08:56:18 am
Hi folks :)
Just to say...
I have gnash 0.8.2-0ubuntu2 and i still cannot see winks playing in chatwindows
Bye :)


Title: Winks pluggin, a little work
Post by: soso on November 08, 2008, 12:18:30 pm
I've tried to download the winks from http://hyperupload.com/download/02bd1b9310/mco.zip.html but the link is dead.
Can anybody upload them again?
Thanks.


Title: Winks pluggin, a little work
Post by: BW on November 08, 2008, 12:37:33 pm
Hi soso,

the winks plugin is automatically installed with the current amsn version.


Title: Winks pluggin, a little work
Post by: soso on November 10, 2008, 12:34:38 am
Sorry, I've not explained well:

The winks plugin is installed but no winks files (.mco) are included. Those files could be downloaded from http://hyperupload.com/download/02bd1b9310/mco.zip.html but now the link is dead.
I can download many .mco files from Internet but that file contained the typical winks that all WLM users have.


Title: Winks pluggin, a little work
Post by: kakaroto on November 10, 2008, 02:51:39 am
get a friend of yours who uses WLM and tell him "please, can you send me all the winks you have? thx" then once you receive them, just click on the wink and select "add to my menu" (or whatever it's called).. that's how we all did it...