Changeset 9997691


Ignore:
Timestamp:
2010-05-03T21:36:43Z (9 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
7d53efb, aa7ce1b
Parents:
6824fb3
Message:

Check Tweet length on the BitlBee side already.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • doc/user-guide/commands.xml

    r6824fb3 r9997691  
    663663        </bitlbee-setting>
    664664
     665        <bitlbee-setting name="message_length" type="integer" scope="account">
     666                <default>140</default>
     667
     668                <description>
     669                        <para>
     670                                Since Twitter rejects messages longer than 140 characters, BitlBee can count message length and emit a warning instead of waiting for Twitter to reject it.
     671                        </para>
     672
     673                        <para>
     674                                You can change this limit here but this won't disable length checks on Twitter's side. You can also set it to 0 to disable the check in case you believe BitlBee doesn't count the characters correctly.
     675                        </para>
     676                </description>
     677
     678        </bitlbee-setting>
     679
    665680        <bitlbee-setting name="mode" type="string" scope="account">
    666681                <possible-values>one, many, chat</possible-values>
  • protocols/twitter/twitter.c

    r6824fb3 r9997691  
    144144}
    145145
     146static gboolean twitter_length_check( struct im_connection *ic, gchar *msg )
     147{
     148        int max = set_getint( &ic->acc->set, "message_length" ), len;
     149       
     150        if( max == 0 || ( len = g_utf8_strlen( msg, -1 ) ) <= max )
     151                return TRUE;
     152       
     153        imcb_error( ic, "Maximum message length exceeded: %d > %d", len, max );
     154       
     155        return FALSE;
     156}
     157
    146158static void twitter_init( account_t *acc )
    147159{
    148160        set_t *s;
     161       
     162        s = set_add( &acc->set, "message_length", "140", set_eval_int, acc );
    149163       
    150164        s = set_add( &acc->set, "mode", "one", set_eval_mode, acc );
     
    231245                        }
    232246                }
    233                 else
     247                else if( twitter_length_check(ic, message) )
    234248                        twitter_post_status(ic, message);
    235249        }
     
    262276static void twitter_chat_msg( struct groupchat *c, char *message, int flags )
    263277{
    264         if( c && message )
     278        if( c && message && twitter_length_check(c->ic, message))
    265279                twitter_post_status(c->ic, message);
    266280}
Note: See TracChangeset for help on using the changeset viewer.