Jump to content

YMSG protocol support


Recommended Posts

  • Replies 132
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

What error are you having?

If it's a connection error and not a script error, it's likely related to the server changes (as noted in my previous post).

In the server case, some of the example scripts (YChatClient,Y_PM) are using a server address which is no longer valid. However, changing the address to 'scsc.msg.yahoo.com' or one listed in my post (#120) resolves this issue.

If it's a script error, a login error (0,100,12xx), or a connection error not resolved by the above suggestion, I need to know specifically what error you're having to offer advice or make appropriate changes.

Edited by crashdemons

My Projects - WindowDarken (Darken except the active window) Yahsmosis Chat Client (Discontinued) StarShooter Game (Red alert! All hands to battlestations!) YMSG Protocol Support (Discontinued) Circular Keyboard and OSK example. (aka Iris KB) Target Screensaver Drive Toolbar Thingy Rollup Pro (Minimize-to-Titlebar & More!) 2D Launcher physics example Ascii Screenshot AutoIt3 Quine Example ("Is a Quine" is a Quine.) USB Lock (Another system keydrive - with a toast.)

Link to comment
Share on other sites

@crashdemons

This UDF is going to be very good but is still need one thing. The packet messages have not a good documentation. To be easy to understand and work with this UDF, the user should know that '0055' mean that he is logged in or '00F1' '00F0' mean a buddies list and the structure of this list must have a documentation. Hope you get my point.

Edited by Andreik
Link to comment
Share on other sites

@LeHuynhNam

I didn't have any problem after I changed the server address in both scripts. Before that, I had the exact same problems.

I've just updated all the examples, anyway. (Y_PM, YChatClient, YConsole have had the server address changed; YRoomList didn't startup TCP Services before using them)

They all seem to be working for me now.

@Andreik

I get the point, but I'm not sure how to present the documentation. One way that appears to be popular is making a CHM (Compiled HTML Help) for libraries, but I don't really have any experience with CHM's. Another way that may ease confusion is to have a separate au3 for YMSG Constants like packets or fields.

The other matter is that much of the description of specific packets requires understanding of the underlying concepts of packet and field formatting, which makes the learning curve steeper.

Anyhow, if we can come to a decision on this, I'll attempt to document it as much as possible.

Also, I've toyed with the idea of moving YMSGLib.au3 developement to Google Code because of wiki presentation and issue management - but it's not required.

My Projects - WindowDarken (Darken except the active window) Yahsmosis Chat Client (Discontinued) StarShooter Game (Red alert! All hands to battlestations!) YMSG Protocol Support (Discontinued) Circular Keyboard and OSK example. (aka Iris KB) Target Screensaver Drive Toolbar Thingy Rollup Pro (Minimize-to-Titlebar & More!) 2D Launcher physics example Ascii Screenshot AutoIt3 Quine Example ("Is a Quine" is a Quine.) USB Lock (Another system keydrive - with a toast.)

Link to comment
Share on other sites

  • 3 weeks later...

YMSGLib.au3 3.3

This change is independent of existing talks for documentation and library separation.

- - - -

Some observation of YMSG17 and Yahoo Messenger has been done, resulting in additional functions, changes to existing functions.

I also made it possible for you to include Crypt.au3 for MD5 support required for specific YMSGLib functions.

Removals:

$_YMSG_Stealth removed because of inconsistencies (see Observation notes ) - LibPurple and other libraries seem to use a constant value for flag field 13 and change field 31 for function - this also seems inconsistent with Messenger testing.

Changes:

$_YMSG_ProtocolVersion (default global) - changed to 17
__YMSG_MD5bin (library-conditional MD5) - now accepts Crypt.au3
_YMSG_Client_IgnoreUser - name List/Item format,Network field now conditional
_YMSG_Client_ChatLogin - Language field added
_YMSG_Client_PM - Fields added, Network field now conditional
_YMSG_Client_VerifyContact - Network field now conditional
_YMSG_Client_BuddyAdded - "
_YMSG_Client_BuddyDeleted - "
_YMSG_Client_PictureRequest - "

Additions:

_YMSG_Client_Disconnect - Should have been added ages ago.
_YMSG_Client_StealthPerm
_YMSG_Client_StealthSess
_YMSG_Client_SpamReport
_YMSG_Client_Acknowledge
_YMSG_ListCreate
_YMSG_ItemCreate

General Notes:

The _YMSG_Client_Stealth* functions still require you to decide what 13 and 31 flags to use since the values aren't specifically defined at this time - please see Observation notes.

_YMSG_Client_SpamReport requires a timestamp which near another timestamp but not necessarily defined - see function comments and Observation notes.

ListCreate and ItemCreate were added to shorten particular code that use Item and List field-constructs and would normally require redundant use of FieldCreate.

There doesn't seem to be any response to the Spam report (assuming it's E0), even using Messenger.

Observation notes:

Stealth flag field 13 purpose wasn't able to be determined as it changed in testing.

Collected data from Messenger:

Appear [conditionally] (session and perm) Online to selected: 
    send B9 on selectedlist, (31=2, 13=?)
    send BA on selectedlist, (31=1, 13=1)
    set awaystate to Available.

            trial 1:
            b9  31=2   13=1  (resp   31=2   13=1)
            ba  31=1   13=1  (resp   31=1   13=1)

            trial 2:
            b9  31=2   13=2  (resp   31=2   13=2)
            ba  31=1   13=1  (resp   31=1   13=1)

Appear perm Offline to selected
    send B9 on selectedlist, (31=1, 13=2)

Appear session Offline to selected
    send BA on selectedlist (32=2, 13=1)

SpamReport testing notes:

Incoming PM

YMSG
«00»«11»
«00»«00»
«00»«b4»
«00»«06»
«00»«00»«00»«01»
«00»D«cd»«99»
4«»Spammer«»
5«»Tester«»
14«»hiiiiiiiiiiii«»
15«»1281870975«»
63«»;0«»
64«»0«»
97«»1«»
206«»2«»
252«»sYFizayrvKgYsgl5EN0X/C8drN3/Rg==«»
429«»0000000111F3297D«»
450«»0«»


Acknowledge PM

YMSG
«00»«11»
«00»«00»
«00»_
«00»«fb»
«00»«00»«00»«00»
«00»D«cd»«99»
1«»Tester«»
5«»Spammer«»
302«»430«»
    430«»0000000111F3297D«»
303«»430«»
450«»0«»

Spam Report?

YMSG
«00»«11»
«00»«00»
«00»«af»
«00»«e0»
«00»«00»«00»«00»
«00»D«cd»«99»
1«»Tester«»
269«»Spammer«»
15«»1281870998«»
270«»1«»
302«»274«»
    300«»274«»
        14«»hiiiiiiiiiiii«»
        252«»sYFizayrvKgYsgl5EN0X/C8drN3/Rg==«»
        13«»2«»
    301«»274«»
303«»274«»


Ignore Request, unknown state 3 (1=ignore,2=unignore, 3=?)
YMSG
«00»«11»
«00»«00»
«00»[
«00»«85»
«00»«00»«00»«00»
«00»D«cd»«99»
1«»Tester«»
13«»3«»
302«»319«»
    300«»319«»
        7«»Spammer«»
    301«»319«»
303«»319«»


Ignore Response, unknown state 3 (1=ignore,2=unignore, 3=?), Rejection code=0 (OK - but can sometimes be 12(unknown error))

YMSG
«00»«11»
«00»«00»
«00»;
«00»«85»
«00»«00»«00»«01»
«00»D«cd»«99»
0«»Spammer«»
1«»Tester«»
13«»3«»
66«»0«»
Edited by crashdemons

My Projects - WindowDarken (Darken except the active window) Yahsmosis Chat Client (Discontinued) StarShooter Game (Red alert! All hands to battlestations!) YMSG Protocol Support (Discontinued) Circular Keyboard and OSK example. (aka Iris KB) Target Screensaver Drive Toolbar Thingy Rollup Pro (Minimize-to-Titlebar & More!) 2D Launcher physics example Ascii Screenshot AutoIt3 Quine Example ("Is a Quine" is a Quine.) USB Lock (Another system keydrive - with a toast.)

Link to comment
Share on other sites

C:\Program Files\AutoIt3\Include\MD5.au3(6,72) : WARNING: $_MD5CodeBuffer: possibly used before declaration.

If Not IsDeclared("_MD5CodeBuffer") Or Not IsDllStruct($_MD5CodeBuffer)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

C:\Program Files\AutoIt3\Include\YMSGLib.au3(293,33) : ERROR: _Hash(): undefined function.

$sHash=Call('_Hash',"MD5",$str)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

;):);):P
Link to comment
Share on other sites

;):);):P

1. The WARNING reported in MD5.au3 (which I assume is Ward's) shouldn't be of any great concern.

2. The ERROR on the Call line is because of an Au3Check issue. Au3Check reports an error when it can't find Call functions passed directly by string. However, this is not a critical error when using AutoIt itself. (note the @error handling)

See here for the Help-File entry for Call.

So, nothing is incorrect in the code concerning the Au3Check ERROR.

How to avoid the ERROR:

Disable Au3Check in your script,

or wait for a YMSGLib update that passes Call variables dynamically. (note: apparently will require a For on an array of Execute strings, or a For Loop on a Function array containing individual CallArgArray's which will have to be copied and looped through to find the input element)

Or motivate me to file an Au3Check bug report suggesting it should give a WARNING instead of ERROR. nvm, see Here

Edited by crashdemons

My Projects - WindowDarken (Darken except the active window) Yahsmosis Chat Client (Discontinued) StarShooter Game (Red alert! All hands to battlestations!) YMSG Protocol Support (Discontinued) Circular Keyboard and OSK example. (aka Iris KB) Target Screensaver Drive Toolbar Thingy Rollup Pro (Minimize-to-Titlebar & More!) 2D Launcher physics example Ascii Screenshot AutoIt3 Quine Example ("Is a Quine" is a Quine.) USB Lock (Another system keydrive - with a toast.)

Link to comment
Share on other sites

  • 7 months later...

Hi, thanks for this awesome project. I'm trying to get it running...

I've got the following files (all from the links provided in your first post)

Base64.au3

MD5.au3

WinHTTP_COM.au3

Y_PM_Example.au3

YAccountExistence.au3

YChatClient_Example.au3

YConsoleOutput.au3

YCookieDecoder_Example.au3

YMSGLib.au3

YMSGLib.INI

YRoomList.au3

When I try run YChatClient_Example.au3 I get

MD5.au3(6,72) : WARNING: $_MD5CodeBuffer: possibly used before declaration.

I get the same error if I run MD5Test.

Thanks!

Link to comment
Share on other sites

Hi, thanks for this awesome project. I'm trying to get it running...

I've got the following files (all from the links provided in your first post)

When I try run YChatClient_Example.au3 I get

MD5.au3(6,72) : WARNING: $_MD5CodeBuffer: possibly used before declaration.

I get the same error if I run MD5Test.

Thanks!

As noted in previous posts MD5CodeBuffer warning from MD5.au3 is an issue between Ward's MD5 library code and Au3Check.

I do not maintain that code nor am I involved with it - you should consult Ward in his thread (I probably linked it in the first post, if not it's searchable.) about the issue.

There are other MD5 libraries that are supported by this library and I noted so on the first post if I recall correctly.

Also, since that is merely a warning, hitting Continue on the Au3Check window bypasses the issue (as does "compiling" the code).

My Projects - WindowDarken (Darken except the active window) Yahsmosis Chat Client (Discontinued) StarShooter Game (Red alert! All hands to battlestations!) YMSG Protocol Support (Discontinued) Circular Keyboard and OSK example. (aka Iris KB) Target Screensaver Drive Toolbar Thingy Rollup Pro (Minimize-to-Titlebar & More!) 2D Launcher physics example Ascii Screenshot AutoIt3 Quine Example ("Is a Quine" is a Quine.) USB Lock (Another system keydrive - with a toast.)

Link to comment
Share on other sites

  • 2 months later...
*sneaks an update quietly onto the thread. Edited by crashdemons

My Projects - WindowDarken (Darken except the active window) Yahsmosis Chat Client (Discontinued) StarShooter Game (Red alert! All hands to battlestations!) YMSG Protocol Support (Discontinued) Circular Keyboard and OSK example. (aka Iris KB) Target Screensaver Drive Toolbar Thingy Rollup Pro (Minimize-to-Titlebar & More!) 2D Launcher physics example Ascii Screenshot AutoIt3 Quine Example ("Is a Quine" is a Quine.) USB Lock (Another system keydrive - with a toast.)

Link to comment
Share on other sites

  • 10 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...