Browse Source

first commit

master
nisstyre56 10 years ago
commit
4874247a0a
  1. 67
      facebook_rename.scm

67
facebook_rename.scm

@ -0,0 +1,67 @@
(use-modules
(srfi srfi-1))
(weechat:register "FacebookRename" "wes" "0.1" "None" "Rename facebook users" "" "")
(define (get-upto strs pred)
(cond
((pred (string-take (car strs) 1)) (list (string-drop (car strs) 1)))
(else
(cons
(format "-~a" (car strs))
(get-upto (cdr strs) pred)))))
(define parse-nick (lambda (nick)
(apply string-append
(reverse
(get-upto nick (lambda (x) (equal? ":" x)))))))
(define realnames (make-hash-table 100))
(define buffer
(weechat:buffer_search
"irc"
"localhost.&bitlbee"))
(define print (lambda (x) (weechat:print buffer x)))
(define (update-nick! nick realname)
(print
(format "~a is ~a"
nick
realname))
(weechat:command
buffer
(format "/msg ~a rename ~a ~a"
"&bitlbee" nick realname)))
(define (whois-callback data signal signal-data)
(let* ((splitted (string-split signal-data #\space))
(nick (cadddr splitted))
(reversed (reverse splitted))
(realname (parse-nick reversed)))
(hash-set! realnames nick realname)
(if (not
(equal? realname nick))
(update-nick! nick realname))
weechat:WEECHAT_RC_OK))
(define (join-callback data signal signal-data)
(let* ((parsed (string-split signal-data #\,))
(buf (car parsed))
(nick (cadr parsed))
(realname (hash-ref realnames nick #f)))
(cond
((not (equal? buf buffer)) weechat:WEECHAT_RC_OK)
(realname weechat:WEECHAT_RC_OK)
(else
(weechat:command buffer
(format "/whois ~a localhost" nick))
weechat:WEECHAT_RC_OK))))
(weechat:hook_signal "localhost,irc_in_311" "whois-callback" "")
(weechat:hook_signal "nicklist_nick_added" "join-callback" "")