set reply [oauth::query_api $url{*}[registry get twitter.oauth.consumer]$method{*}$token$query_list]
json::json2dict $reply
}
}
#.identica
proc dcc:identica {handle idx arg}{
}
#!idee
proc pub:idee {nick uhost handle chan text}{
set who [whois$nick]
if{$who==""}{
append text " — via IRC."
}{
append text " — $who, via IRC."
}
twitterpublish ideedarticles $nick$text
}
#!identica
proc pub:identica {nick uhost handle chan text}{
putquick"NOTICE $nick :!identica is currently disabled. Is identi.ca still usable since pump.io migration? If so, please request the command."
}
proc whois {nickname}{
# By handle
set result [nick2hand$nickname]
if {$result!="*"}{
#Will return "", when nick doesn't exist to avoid further processing.
return$result
}
#Gets user@host
set uhost [getchanhost$nickname]
set host [lindex[split$uhost@]1]
# By Cloak
if{[regexp/$host]}{
set cloak [split$host/]
set group [lindex$cloak0]
if{$group!="gateway"&&$group!="nat"}{
# @freenode/staff/ubuntu.member.niko → niko
# @wikipedia/pdpc.21for7.elfix → elfix
# @wikipedia/poulpy → poulpy
return[lindex[split[lindex$cloak end] .] end]
}
}
# By NickServ
# TODO: code with callback
# By user@host, when the host doesn't contain any digit
if{[regexp{^[^0-9]*$}$host]}{
return"$nickname!$uhost"
}
# Can't identify
return""
}
#!pub or !twit or !tweet
#The account is channel dependant
proc pub:twitter {nick uhost handle chan text}{
if{$chan=="#wikipedia-fr"}{
set account wikipediafr
set who [whois$nick]
if{$who==""}{
putquick"NOTICE $nick :Pour utiliser !pub sur $chan, vous devez disposer d'un cloak projet ou unaffiliated, être connecté depuis un host sans chiffre ou encore avoir votre user@host reconnu par mes soins."
return0
}{
append text " —$who"
}
}elseif{$chan=="#wolfplex"}{
set account wolfplex
}{
putquick"NOTICE $nick :!pub n'est pas activé sur le canal $chan"
return
}
twitterpublish$account$nick$text
}
proc twitterpublish {account nick text}{
if{$text==""}{
putquick"NOTICE $nick :Syntaxe : !pub <texte à publier sur identi.ca et Twitter>"
return
}
set len [string length $text]
if{$len>140}{
putquick"NOTICE $nick :140 caractères max, là il y en a $len."
return
}
if[twitterpost$account$text]{
putquick"NOTICE $nick :Publié sur Twitter"
return1
}{
putquick"NOTICE $nick :Non publié, une erreur a eu lieu."