Add twitter_block and twitter_unblock commands
[twirssi-net-twitter-lite.git] / twirssi.pl
index aca557c52b0f5c426f4030b9ae2991abc4e739bd..48b01087556da95a53da05914d4322f6755dd864 100644 (file)
@@ -499,6 +499,15 @@ sub cmd_login {
         ssl      => Irssi::settings_get_bool("twirssi_avoid_ssl") ? 0 : 1,
     );
 
+    unless ($twit) {
+        &notice("Failed to create Net::$service object!  Aborting.");
+        return;
+    }
+
+    if ( my $timeout = Irssi::settings_get_int("twitter_timeout") and $twit->can('ua')) {
+        $twit->ua->timeout($timeout);
+    }
+
     unless ( $twit->verify_credentials() ) {
         &notice("Login as $user\@$service failed");
         $twit = undef;
@@ -910,7 +919,9 @@ sub do_updates {
     printf $fh "id:%u account:%s type:last_id timeline\n",
       $new_poll_id, $username;
 
-    print scalar localtime, " - Polling for replies" if &debug;
+    print scalar localtime, " - Polling for replies since ",
+      $id_map{__last_id}{$username}{reply}
+      if &debug;
     $new_poll_id = 0;
     eval {
         if ( $id_map{__last_id}{$username}{reply} )
@@ -1509,6 +1520,7 @@ Irssi::settings_add_str( "twirssi", "twirssi_replies_store",
     ".irssi/scripts/twirssi.json" );
 
 Irssi::settings_add_int( "twirssi", "twitter_friends_poll", 600 );
+Irssi::settings_add_int( "twirssi", "twitter_timeout", 30 );
 
 Irssi::settings_add_bool( "twirssi", "twirssi_upgrade_beta",      0 );
 Irssi::settings_add_bool( "twirssi", "tweet_to_away",             0 );
@@ -1611,6 +1623,22 @@ if ($window) {
             sub { &notice("Device updated to $_[0]"); }
         )
     );
+    Irssi::command_bind(
+        "twitter_block",
+        &gen_cmd(
+            "/twitter_block <username>",
+            "create_block",
+            sub { &notice("Blocked $_[0]"); }
+        )
+    );
+    Irssi::command_bind(
+        "twitter_unblock",
+        &gen_cmd(
+            "/twitter_unblock <username>",
+            "destroy_block",
+            sub { &notice("Unblock $_[0]"); }
+        )
+    );
     Irssi::signal_add_last( 'complete word' => \&sig_complete );
 
     &notice("  %Y<%C(%B^%C)%N                   TWIRSSI v%R$VERSION%N (r$REV)");