Script for facebook nikname rename for weechat and minbif or bitlbee

This script rename automatically from facebook “id” to facebook “Real Name” on weechat when you use minbif or bitlbee irc gateway

Downloads latest script version 0.0.3: facebook_rename.py

Original script: http://www.weechat.org/scripts/source/stable/facebook_rename.py/

TODO:

  • fix “This nick contains invalid characters” bugs
  • remove whois print when rename nick

Below code:

# This script renames your Facebook buddies to a readable format when 
# using Facebook's XMPP gateway with Minbif or Bitlbee. 
 
# Based on the Irssi script at http://browsingtheinternet.com/temp/bitlbee_rename.txt 
# Ported for Weechat 0.3.0 or later by Jaakko Lintula (crwl@iki.fi)
# Modified for Minbif by 'varogami' <varogami@gmail.com>
# Testing contrib 'bizio' <maestrozappa@gmail.com>
# 
# This program can be distributed under the terms of the GNU GPL3.
 
 
#Edit this variables with your own minbif configuration settings
mode = "minbif" #set 'minbif' or 'bitlbee' for select gateway type
minbifChannel = "&minbif"
minbifServer = "minbif"
bitlbeeChannel = "&bitlbee"
bitlbeeServer = "bitlbee"
facebookhostname = "chat.facebook.com"
 
minbifBuffer = "%s.%s" % (minbifServer, minbifChannel)
bitlbeeBuffer = "%s.%s" % (bitlbeeServer, bitlbeeChannel)
nicksToRename = set()
 
import weechat
import re
 
weechat.register("facebook_rename", "varogami", "0.0.3", "GPL", "Renames Facebook usernames when using minbif or bitlbee", "", "")
 
def message_join_minbif(data, signal, signal_data):
  signal_data = signal_data.split()
  channel = signal_data[2]
  hostmask = signal_data[0]
  nick = hostmask[1:hostmask.index('!')]
  username = hostmask[hostmask.index('!')+1:hostmask.index('@')]
  server = hostmask[hostmask.index('@')+1:]
  server = server[:+server.index(':')]
 
  if channel == minbifChannel and nick == username and nick[0] == '-' and server == facebookhostname:
   nicksToRename.add(nick)
   weechat.command(weechat.buffer_search("irc", minbifBuffer), "/whois "+nick+" "+nick)
 
  return weechat.WEECHAT_RC_OK
 
def whois_data_minbif(data, signal, signal_data):
  if "Full Name" in signal_data:
   nick = signal_data.split("Full Name:")[0].strip()
   nick = nick[1:nick.index(' :')]
   nick = nick.split(' ')
   nick = nick[3]
   realname =  signal_data.split("Full Name:")[1].strip()
 
   if nick in nicksToRename:
     nicksToRename.remove(nick)   
     ircname = re.sub("[^A-Za-z0-9]", "", realname)[:24]
     if ircname != nick:
       weechat.command(weechat.buffer_search("irc", minbifBuffer), "/quote -server %s svsnick %s %s" % (minbifServer, nick, ircname))
 
  return weechat.WEECHAT_RC_OK
 
def message_join_bitlbee(data, signal, signal_data):
  signal_data = signal_data.split()
  channel = signal_data[2][1:]
  hostmask = signal_data[0]
  nick = hostmask[1:hostmask.index('!')]
  username = hostmask[hostmask.index('!')+1:hostmask.index('@')]
  server = hostmask[hostmask.index('@')+1:]
 
  if channel == bitlbeeChannel and nick == username and nick[0] == '-' and server == facebookhostname: 
    nicksToRename.add(nick)
    weechat.command(weechat.buffer_search("irc", bitlbeeBuffer), "/whois " + nick)
 
  return weechat.WEECHAT_RC_OK
 
def whois_data_bitlbee(data, signal, signal_data):
  nick = signal_data.split()[3]
  realname = signal_data[signal_data.rindex(':')+1:]
 
  if nick in nicksToRename:
    nicksToRename.remove(nick)
 
    ircname = re.sub("[^A-Za-z0-9]", "", realname)[:24]
    if ircname != nick:
      weechat.command(weechat.buffer_search("irc", bitlbeeBuffer), "/msg %s rename %s %s" % (bitlbeeChannel, nick, ircname))
      weechat.command(weechat.buffer_search("irc", bitlbeeBuffer), "/msg %s save" % (bitlbeeChannel))
 
  return weechat.WEECHAT_RC_OK
 
if mode == "minbif":
  weechat.hook_signal(minbifServer+",irc_in_join", "message_join_minbif", "")
  weechat.hook_signal(minbifServer+",irc_in_320", "whois_data_minbif", "")
if mode == "bitlbee":
  weechat.hook_signal(bitlbeeServer+",irc_in_join", "message_join_bitlbee", "")
  weechat.hook_signal(bitlbeeServer+",irc_in_311", "whois_data_bitlbee", "")
 
facebook_rename_minbif.txt · Last modified: 2011/02/19 14:56 by varogami
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki