Trac is being migrated to new services! Issues can be found in our new YouTrack instance and WIKI pages can be found on our website.

Changes between Version 1 and Version 2 of MsimIMToDo


Ignore:
Timestamp:
May 24, 2007, 3:15:06 AM (17 years ago)
Author:
jeff
Comment:

clear

Legend:

Unmodified
Added
Removed
Modified
  • MsimIMToDo

    v1 v2  
    1 Things to do for [wiki:MySpaceIM].
    2 
    3 == Open Items ==
    4 (Very) rough estimated times are shown in parenthesises. (These times are not commitments and may change; they're only intended for personal scheduling purposes.)
    5 
    6  * (1 week) 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), transparently handle integers, strings, binary data, dictionaries, lists.
    7  * (5 min) In parser: translate /1 to / on incoming, and / to /1 on outgoing.
    8  * (1 day) Fix session corruption bug in login and logout.
    9  * (1 day) Typing notifications.
    10  * (5 days) Improved buddy list support.
    11  * (3 days) Status notifications (buddy sign on/off, headline).
    12  * (1/2 day) Add buddy.
    13  * (1/2 day) Delete buddy.
    14  * (1 day) Set status (away message, hidden, ...).
    15  * (1 day) User information.
    16  * (5 days) Blocklist/privacy.
    17  * (3 days) Picture.
    18  * (1 day) Change caps/spaces in IM name.
    19  * (5 days) Text formatting (size, color, font).
    20  * (5 days) Message background.
    21  * (5 days) Notifications, particularly for: new mail, new friend request, new comment (see Alerts and Sounds in official client preferences for full list).
    22  * (1 day) Offline messages.
    23  * (2 days) Setup a Win32 virtual machine to test MySpaceIM without booting into Windows.
    24  * (2 weeks) All the TODOs and XXX's mentioned in myspace.c
    25  * (forever) Identify all other features in official client to implement in plugin.
    26 
    27 === Completed Tasks ===
    28  * Add options to change connect server and port. ae64e4477492f939c14cd37043f4ba39410e8056
    29  * Remove usages of `g_assert` since it closes whole program. Fixed in 26b81a00d32bd3c7eac9a260fbf54b8fa4ebfabf. rlaager in #648:
    30 
    31   P.S. For the record, we (the Pidgin team) generally feel it's inappropriate to use g_assert() because that kills the program hard.
    32 
    33  * Internationalization (use _ macro). Fixed in 26b81a00d32bd3c7eac9a260fbf54b8fa4ebfabf. rlaager in #648:
    34 
    35   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:
    36 
    37     cd po intltool-update -m
    38  * Write escape/unescape functions (for /1 and /2)
    39  * 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
    40  * Cosmetic: use prpl icon from hbons, instead of meanwhile icon.
    41  * Use g_convert for UTF-16LE conversion instead of converting manually (idea from Nathan Peterson)
    42  * Push local changes (including branch im.pidgin.soc.2007.msimprpl) to pidgin.im database ([wiki:jeff my public key] has been [http://pidgin.im/pipermail/commits/2007-April/001553.html added] to the server.) [http://pidgin.im/pipermail/commits/2007-April/001560.html]
    43  * Use RC4 from cipher.c (Purple Cipher API), instead of adding RC4 code to myspace.c
    44  * [http://planet-soc.com/user/100 Started blogging] on planet-soc.com.
    45  * Apply [https://sourceforge.net/tracker/?func=detail&atid=300235&aid=1694487&group_id=235 Nathan Peterson's rc4 patch to cipher.c] to local MTN
    46  * Port plugin to libpurple from Monotone, instead of Gaim 2.0.0beta6 libgaim.
    47  * Create im.pidgin.soc.2007.msimprpl branch in MTN repo and work from there. (have in local database--distributed version control is cool)
    48 
    49 ==== Implemented Features ====
    50  * Parsing protocol messages
    51  * Login (using email address only)
    52  * Send IM by userid, username, or email
    53  * Receive IM
    54  * Some buddy list support (unstable/incomplete)
    55  * Tooltip text on buddy list
    56  * Win32 support
    57 
    58 == TODO and XXX in myspace.c ==
    59 grep -n TODO myspace.c|perl -pe's/^/  /'
    60 
    61 37 hits. Line numbers refer to f8f316361902ebae273166d4c34bff78d615c74a.
    62 
    63 === refactoring (3) ===
    64   * 100:  /* TODO: Clean up - I don't like all this repetition */
    65   * 155:  /* TODO: make more elegant, refactor with msim_escape */
    66   * 175:  /* TODO: make more elegant, refactor with msim_unescape */
    67 
    68 === provoke creation of MsimMessage (10) ===
    69   * 275:                /* TODO: Some dictionaries have multiple values for the same
    70   * 345:        /* TODO: make the GHashTable values be GList's, and append to the list if
    71   * 419:   * TODO: escape the values that should be, don't escape what shouldn't! */
    72   * 515: * TODO: types
    73   * 662:  /* TODO: use msim_send. But, response_str must NOT be escaped. */
    74   * 1022: /* TODO: Remove this code and use MsimMessage after it is implemented and escapes strings. */
    75   * 1025: /* TODO: escape values */
    76   * 1029: /* TODO: Remove this code and use MsimMessage after it is implemented and escapes strings. */
    77   * 1376:    /* TODO: generic functions to split into a GList */
    78   * 1777: /* TODO: escape values */
    79 
    80 === features (24) ===
    81 trying different ports (5):
    82   * 592:        /* TODO: try other ports if in auto mode, then save
    83   * 876:    /* TODO: obtain IPs of network interfaces. This is not immediately
    84   * 886:          /* TODO: change to length of IP list */
    85   * 892:            /* TODO: IP addresses of network interfaces */
    86   * 1971: /* TODO: default to automatically try different ports. Make the user be
    87 
    88 sent message username consistency (3):
    89   * 987:     * TODO: In MySpace, you login with your email address, but don't talk to other
    90   * 995:     * TODO: Make the sent IM's appear as from the user's username, instead of
    91   * 1395:        /* TODO: purple aliases, userids and usernames */
    92 
    93 related to username/uid/email resolving/relationship (4):
    94   * 1245:         * this cache never expires so is never freed. TODO: expire and destroy
    95   * 1248:         * TODO: Cache what doesn't change only
    96   * 1449:    /* TODO: if buddies were identified on buddy list by uid, wouldn't have to lookup
    97   * 1739:    /* TODO: check if this user's info was cached and fresh; if so return immediately */
    98 
    99 other features (12):
    100   * 1036:    /* TODO: notify Purple that we sent the IM. */
    101   * 1209:         /* TODO: dump unknown msgs to file, so user can send them to me
    102   * 1308:    /* TODO: check 'fatal' and die if asked to.
    103   * 1309:     * TODO: do something with the error # (localization of errmsg?)  */
    104   * 1400:        /* TODO: sometimes (when click on it), buddy list disappears. Fix. */
    105   * 1407:     * TODO: make status reflect reality
    106   * 1408:     * TODO: show headline */
    107   * 1499:        /* TODO: fix 100% CPU after closing */
    108   * 1763:        /* TODO: document cmd,dsn,lid */
    109   * 1844:        // TODO: if (full), do something different
    110   * 1859:    OPT_PROTO_MAIL_CHECK,/* options - TODO: myspace will notify of mail */
    111   * 1862:    NO_BUDDY_ICONS,    /* icon_spec - TODO: eventually should add this */
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!