Tickets

Problems? Report bugs here.

See TipsForBugReports. Good bug reports are always appreciated. Thanks.

Open Tickets in MySpaceIM Protocol Plugin

#2661
msimprpl buddy search
#2789
msimprpl allow changing IM name capitalization and spacing
#2791
msimprpl blocklist/privacy support
#2794
msimprpl send IP addresses of network interface on login
#2800
msimprpl myim: URL enhancements
#2803
msimprpl look at newer versions of MySpaceIM
#2804
msimprpl version updating
#2905
msimprpl should disconnect if no keepalive is received periodically
#2918
msimprpl only adds up to 25 friends
#4689
msimprpl should know if buddies are on buddy list without MySpaceIM
#4691
msimprpl group chats
#4734
Msimprpl takes too long to login if there are too many buddies on the buddy list
#4775
Allow inviting non-IM buddies to MySpaceIM
#4855
msimprpl should verify the username is valid before setting
#4866
username setting memory leaks
#5019
msimprpl nested bold/italic/underline formatting - all levels
#8213
MySpace Expanded Alias Not Saving For Multiple Grouped Screen Names!
#8764
MySpaceIM seems to timeout under Linux and Windows with no notification
#9718
MySpaceIM buddy still "online" after server message
#9891
Crash when pasting text with wiki link
#9903
Add support for msim status moods
#9936
MySpace buddy doesn't stay in group when rearranging
#10537
Remove closed accounts from buddy list
#10747
MyspaceIM spambot detection is over-zealous
#10844
myspace IM problem
#10969
Myspace IM bug where if they're not already added your replies never reach them.
#11181
Myspace users don't stay in Pidgin groups
#11425
Myspace IM web users cannot recieve links from Myspace IM pidgin most of the time.

Related Open Tickets (not in MySpace component; add keyword "msimprpl" to list a ticket here)

#2930
libpurple purple_proxy_connect should have an equivalent to try multiple hosts/ports if one fails
#4688
Generic method to report unrecognized messages and optionally save to file for later analysis
#4766
Allow clicking music note next to buddy to play their music
#4810
Send Attention menu item in conversation menu should expand if there are multiple attention commands that can be sent

Things to do for MySpaceIM.

Possible Plugins

Closed tickets, since these features may be better implemented as a plugin:

  • #4776 Allow prpls to specify a callback for when the music note next to a buddy is clicked

This plugin is up for implementing, if anyone is interested.

Various Open Items

Tickets haven't been filed for these yet.

  • All the TODOs and XXX's mentioned in myspace.c
  • (forever) Identify all other features in official client to implement in plugin.

From TODOs in myspace.c:

  • Optionally dump unknown messages to a file, to help development. Add to msim_unrecognized().
  • Free what should be freed.
  • If keepalive or other message received within X minutes, then show as disconnected. Currently msimprpl doesn't detect a lost network connection.
  • Handle if addbuddy fails.
  • Update blocklist in addbuddy.
  • Find out what full tooltip text is and make it different if it should be.

Libpurple changes:

  • Try alternate ports, if first connection fails and is set to automatic. Store working port and use in the future first, trying others if it fails. (This is how the official client works.) Sean was talking about having a generic state-machine in libpurple, to try each of the ports that were given, so that the prpl wouldn't have to handle this.

Platforms and other clients:

  • Test with Finch text-based IM program.
  • Windows
    • Setup a Win32 virtual machine to test MySpaceIM without booting into Windows.
  • OS X
    • Try using with Adium?

Completed Tasks

#2659
msimprpl webchallenge support
#2792
msimprpl message background
#2802
msimprpl implement prpl_info->normalize
#2820
msimprpl too much CPU usage when importing friends, appears to hang, may freeze on Vista
#2844
msimprpl should allow user to choose IM username if not already set
#2931
Msimprpl user info overflow
#3064
MySpaceIM handles status information inconsistently
#3143
msimprpl 2-level nested bold/italic/underline formatting
#3201
MySpace should set wants_to_die when disconnected from another machine logging on
#3222
Pidgin crashes when connecting to MySpaceIM possibly after receiving offline messages
#3237
msimprpl allocates 2 GB of memory and crashes (Windows)
#3259
MyspaceIM doesn't show idle buddies
#3281
msimppl leaks memory in statstring, username, key_context, storing user info, user, MsimMessage dictionary parsing
#3303
msimppl leaks memory in statstring, username, key_context, storing user info, user, MsimMessage dictionary parsing
#3378
Group ordering not retained if MySpace IM account is enabled
#3406
Online users appear offline
#3645
MyspaceIM protocol sending massive font size
#3840
MySpace: Change in away status sometimes causes disconnect with "Invalid input condition" message
#3868
MySpace Contacts Ungroup on Restart
#3976
Myspace IM usernames not displayed correctly
#4000
Myspace IM always disconnected
#4001
Myspace IM always disconnected
#4013
not able to IM with friends on myspace
#4140
msimprpl should use PURPLE_STATUS_TUNE to show current song playing
#4182
MySpaceIM login attempt
#4206
MyspaceIM lockup when logging in. Pidgin consumes massive amounts of memory.
#4369
MyspaceIM error 260 when logging in to an account with an 11-character password, should ask user to change password
#4621
MySpaceIM freezes on login if account has too many buddies and read buffer overflows
#4631
msimprpl normalize should lookup user IDs not on buddy list
#4678
MySpaceIM infinite loop at signon or when updating "friends" list from server
#4687
msimprpl sending a message to a non-existent user should show error in IM window, not in a popup dialog
#4735
For msimprpl, look into using PurpleCircBuffer
#4736
myspace memory leak
#4737
msimprpl memory leak (msim_uid2username_from_blist)
#4755
Propagate t:v2.4.0 to im.pidgin.soc.2007.msimprpl
#4779
Move MsimProtocolSpec to IM Freedom wiki
#4790
myspace protocol performance improvement: call strlen outside of loop in msim_unescape
#4841
Group that buddy is in isn't changed when rearranging
#4856
msimprpl set username commands should use symbolic constants
#4857
immediately after setting a username, outgoing messages still appear as from a uid
#4937
msim_normalize() error during initialization of libpurple
#5136
msim doesn't convert to UTF-8
#5143
Patch: msim Ignore bots
#5194
MySpaceIM + XP Crash When No "@" Or Incorrect Screenname
#5240
Deleting buddy from MyspaceIM results in Protocol error, code 2817
#5253
password verification for MySpace IM
#5259
msimprpl font size setting reads from "port" instead of "dpi"
#5360
Myspace IM buddies whose song info has been gathered are not being sent to the right place
#5759
MySpace still exists
#6035
Contacts moved to a different list move back upon restart of Pidgin
#7089
will not log into myspace i.m.
#7247
myspace buddy list
#7361
MySpaceIM won't login as of today.
#7442
MYSPACE IM blocked
#7444
myspace im wont connect.
#7584
Protocol error, code 270: Error getting contact list from DB
#8183
no libmyspace.so or libmyspace.la in Pidgin packages for FreeBSD
#8633
myspace chat
#8846
people using web myspaceIM can't respond to pidgin myspaceIM
#9051
MySpaceIM doesn't handle disconnects
#9122
wont connect to myspace in windows vista
#9123
wont connect to myspace in vista
#9126
myspace im won't connect
#9203
Code 260: Myspace's New In-Browser IM App. Conflict?
#9370
MySpace IM not working
#9472
cant log into myspace
#9528
Myspace "Available - Connecting" forever.
#9615
Myspace IM friends are marked as offline when they are not
#9887
Myspace IM friend status update IM's
#9943
Buddy doesn't see URLs written in chat
#10125
Database entries received from some offline MySpaceIM friends
#10821
myspaceIM contacts not adding

#192
document prpl_info->list_icon(NULL, NULL)
#193
msimprpl crashes when login fails
#194
msimprpl myim: URL support, addContact and sendIM with cID and uID parameters
#648
msimprpl-20070502 snapshot crashes Pidgin 2.0.0
#677
msimprpl needs Tango love
#678
msimprpl needs Tango love
#1990
msimprpl 0.8 crashes when logging in on Windows
#1995
msimprpl 0.7 crashes when saving account on Vista
#1996
msimprpl 0.7 crashes when logging in with invalid email address, invalid cast from GtkEventBox to GtkButton
#1999
msimprpl 0.8 crashes on Windows when viewing tooltip text
#2010
msimprpl 0.9 limits passwords to 8 characters
#2036
msimprpl sometimes crashes in purple_debug_vargs on Windows
#2086
msimprpl: config.status: error: invalid argument: libpurple/protocols/myspace/Makefile
#2281
msimprpl: 0.12 doesn't build on gcc 4.1.2 (Fedora 7)
#2295
Add Account >> MSN >> "Screen name" should be "E-mail Address"
#2400
Crash when deleting a myspace contact
#2520
msimprpl crashes if set signed-on signal handler
#2521
msimprpl garbles links in messages
#2637
msimprpl status messages need to correctly handle formatting and escaped characters
#2658
msimprpl server-side contacts: addbuddy persistance request
#2659
msimprpl webchallenge support
#2660
msimprpl import all friends
#2662
Attention API for msim, yahoo, msn prpl's
#2720
msimprpl disconnects or crashes when adding non-existent buddy
#2722
msimprpl still notifies of new mail even with "New mail notifications" in account options isn't checked
#2723
g_log: ATK_ROLE_TOOLTIP object found, but doesn't look like a tooltip.
#2724
msimprpl should fetch buddy information and icons on sign-on
#2725
msimprpl sometimes crashes in buddy icon download, accessing freed memory
#2752
libpurple lets you add buddies to blist inside groups that aren't on blist; leads to duplicate groups
#2788
Pidgin attention GUI
#2790
msimprpl web challenge support
#2792
msimprpl message background
#2793
msimprpl should show username instead of email address in outgoing messages
#2802
msimprpl implement prpl_info->normalize
#2820
msimprpl too much CPU usage when importing friends, appears to hang, may freeze on Vista
#2824
Port retry on fail and Save working port
#2844
msimprpl should allow user to choose IM username if not already set
#2906
msimprpl shows timestamp message was received instead of sent
#2914
PurpleAccount servalias field
#2920
File cleanup on msimprpl-related wiki pages
#2931
Msimprpl user info overflow
#2934
Compiling msimprpl 0.17
#2953
libpurple parse_redirect() redirects on Content-Location header, instead of only Location
#3064
MySpaceIM handles status information inconsistently
#3096
msimprpl fails to build in Solaris 9, needs Unix line endings
#3143
msimprpl 2-level nested bold/italic/underline formatting
#3237
msimprpl allocates 2 GB of memory and crashes (Windows)
#3281
msimppl leaks memory in statstring, username, key_context, storing user info, user, MsimMessage dictionary parsing
#3303
msimppl leaks memory in statstring, username, key_context, storing user info, user, MsimMessage dictionary parsing
#4140
msimprpl should use PURPLE_STATUS_TUNE to show current song playing
#4735
For msimprpl, look into using PurpleCircBuffer
#4779
Move MsimProtocolSpec to IM Freedom wiki
#4856
msimprpl set username commands should use symbolic constants
#7361
MySpaceIM won't login as of today.
#9203
Code 260: Myspace's New In-Browser IM App. Conflict?

  • #2660 Option to import friends.
  • Make msim_uid2username_from_blist work, so can avoid sending queries.
  • msim_preprocess_incoming() used to send a uid-to-username message for every incoming message that has a userid field. Now cached, and also looked at buddy list, to avoid wasteful resolving.
  • Add dictionaries, lists (data types used by protocol) support to MsimMessage?.
  • Merge branch with im.pidgin.pidgin branch for 2.1.2 release.
  • Viewing buddy icon (avatar) support.
  • Use PurpleBuddy? proto_data, make MsimBuddy? and use it instead of purple_blist_node_set for most cases.
  • See what happens and handle case where buddies don't have a username.
    • Works fine - shows up as userid
  • Full emoticon support. Added in a86871bab386756aedf22d0e32c92bf2a2025afe
  • Compile list of msimprpl icons with screenshots for Hylke to add to Pidgin.
  • Disable sending version.
    • Can be enabled by compile-time option MSIM_SEND_CLIENT_VERSION.
  • What does official client do for passwords > 10 characters?
    • Nothing; you can only have passwords up to 10 characters (in password change page of web site)
  • Fix unofficial client not appearing in buddy info; overwritten by build number (instead, store separately)
  • Sending and receiving zaps. Sending with 59ecc80801c1319db79adf2e337e58b1684edd0e.
  • Outgoing emoticon support (make sure have an option to disable, since it could interfere with text). Completed in 0c554819c517bd017bccf06a9c1c29bc6447555c.
  • Display incoming emoticons.
  • Show official client build version in profile
  • Send buddy messages with code 200 (arbitrary) with Pidgin and msimprpl version, so can tell msimprpl version of buddies in other msimprpl clients. See how Miranda IM plugin does it and use the same format.
  • Notifications, particularly for: new mail, new friend request, new comment (see Alerts and Sounds in official client preferences for full list).
  • Set away, hidden, or online message (status string).
  • Set status to previous status, remove hidden option.
  • Support longer passwords - #2010. 10 characters, same as official.
  • Set status (away, hidden, online). Also added option to sign on as hidden.
  • Fix Windows crashes.
  • Install Windows so I can debug msimprpl on it more
  • Fake own user from being online. Added in 16092ccc33204bf758b6d642ee0df4f0bc27d6bc
  • Interpret different font faces, sizes, and decorations (bold/italic/underline) on incoming messages. e8d6248c4e56624be65f329b8dc7790f1d7fdad3
  • Show an error if passwords are greater than maximum length. 28946cbbe6a117256cb43c622f57c8d3203cb404 and #193 has some mention of this problem.
  • Offline messages. msim_offline_message() now always returns TRUE, so libpurple now knows that msimprpl supports offline IM's. The protocol doesn't distinguish between offline and online instant messages.
  • Allow showing buddy information in profile, for all users (even those not on buddy list), using "Get Info"--added in 1ff1633aac1aabb3e434493d376ee8f2fc6b3fd4, you now can "get info" on all users, by uid or username.
  • Setup cross-compiler for Win32 libmsim.dll on Linux. Added in 8ad5d96a69dddb5de9f5b721cdb0603b7cfcf9ea.
  • Show headline in status text, or display name, or both (make configurable, similar to official client)
  • Fix session corruption bug in login and logout. Ticket #193.
  • Show buddy information in profile, for users on buddy list
  • User information tooltip, shown in 926d75620197cdcadaf228d7ee0440cb62afafb6
  • Improvements, goal 2007-06-17
  • Typing notifications. Added in bfe1ec88b129e372a60b44087d1c79e3f9ebeb00
  • msim_remove_buddy needs your userid; obtain it, save with account, and use it. Saved in 'userid' field of MsimSession? upon login; no need to call persist message 1,4,5 to obtain our own userid.
  • Associate userid with buddy list items.
  • Adapt the following functions to use msim_postprocess_outgoing():
    • msim_send_im
    • msim_add_buddy newprofileid
    • msim_remove_buddy delprofileid
  • Status notifications: buddy sign on/off
  • Improve username/email to userid resolving, incorporating suggestions from Sean Egan. This is a crucial part of the code that would make adding buddy list improvements, typing notifications, and many other features easier to implement. 6b04b9f90adf5cc6e39fb43b3a881bdb78fdd239
    • seanegan: "There's a mechanism in blist.h that will let you save random data about a user, such as this [numeric userid]. That way you don't even need to do it everytime they login. Just once ever. Then for people who aren't on your list, I'd just maintain a GList in your proto_data struct which contains information about the pending message."
  • Setup MsimMessage? to be used also for receiving messages. Lot of work, but it is now complete in d8fa2d310531564d344fe314e08a25ac5f89c949. This change will bring greater flexibility and allow msimprpl to be expanded easier and cleanlier.
  • MsimMessage?: generic protocol message sending function, that handles packing of messages. New MsimMessage? struct? Need to add types, so know what values to escape (not base64'd binary fields, such as 'response'), need to be able to have multiple values for the same key (used in WebChallenge? message), preferably preserve order (since command name usually comes first), handle basic types (integers, strings, binary data).
    • 419: * TODO: escape the values that should be, don't escape what shouldn't! */
    • 515: * TODO: types
    • 662: /* TODO: use msim_send. But, response_str must NOT be escaped. */
    • 1022: /* TODO: Remove this code and use MsimMessage? after it is implemented and escapes strings. */
    • 1025: /* TODO: escape values */
    • 1029: /* TODO: Remove this code and use MsimMessage? after it is implemented and escapes strings. */
    • 1376: /* TODO: generic functions to split into a GList */
    • 1777: /* TODO: escape values */
  • In parser: translate /1 to / on incoming, and / to /1 on outgoing.
  • Add options to change connect server and port. ae64e4477492f939c14cd37043f4ba39410e8056
  • Remove usages of g_assert since it closes whole program. Fixed in 26b81a00d32bd3c7eac9a260fbf54b8fa4ebfabf. rlaager in #648:

P.S. For the record, we (the Pidgin team) generally feel it's inappropriate to use g_assert() because that kills the program hard.

marking strings for translation and adding appropriate files to po/POTFILES.in? The following is helpful for checking that you've got POTFILES.in right:

cd po intltool-update -m

  • Write escape/unescape functions (for /1 and /2)
  • Develop msimprpl within the Pidgin/libpurple tree (on a separate branch, im.pidgin.soc.2007.msimprpl, but in the tree nonetheless), instead of as a stand-alone package like mockprpl
  • Cosmetic: use prpl icon from hbons, instead of meanwhile icon.
  • Use g_convert for UTF-16LE conversion instead of converting manually (idea from Nathan Peterson)
  • Push local changes (including branch im.pidgin.soc.2007.msimprpl) to pidgin.im database (my public key has been added to the server.) http://pidgin.im/pipermail/commits/2007-April/001560.html
  • Use RC4 from cipher.c (Purple Cipher API), instead of adding RC4 code to myspace.c
  • Started blogging on planet-soc.com.
  • Apply Nathan Peterson's rc4 patch to cipher.c to local MTN
  • Port plugin to libpurple from Monotone, instead of Gaim 2.0.0beta6 libgaim.
  • Create im.pidgin.soc.2007.msimprpl branch in MTN repo and work from there. (have in local database--distributed version control is cool)
  • Parsing protocol messages
  • Login (using email address only)
  • Send IM by userid, username, or email
  • Receive IM
  • Some buddy list support (unstable/incomplete)
  • Tooltip text on buddy list
  • Win32 support

Unlikely to Happen

I'm not against these changes, and could be persuaded otherwise, but I don't plan to work on them for the time being.

Infrastructure and other improvements (postponed until necessary):

  • Send outgoing messages using a PurpleCircBuffer? like other prpls
  • Change msim_lookup_user() to queue messages in a GList, instead of having messy callbacks.
  • Use GList instead of callbacks for replies?

Last Modified by jeff, 2 years ago