On Tue, Jul 21, 2009 at 3:54 PM, Bill Traynor <[email protected]> wrote:
> I'd like to push wiki changes to an IRC channel (#elinux) on freenode
> and I can't seem to get Wikinotify working. The documentation
> indicates to set three variables, which I've set to:
>
> $psyctarget = "irc://freenode.net/elinux";
> $psychost = "udp://freenode.net";
> $psycport = 4404;
>
> Am I missing something?
>
> Thanks
> Bill
>
>
> The full psychnotify.php looks like this:
>
> $psyctarget = "irc://freenode.net/elinux";
> $psychost = "udp://freenode.net";
> $psycport = 4404;
>
> /* in an ideal world, there is nothing you need to do below here */
>
> function psycnotify($article, $user, $text, $summary, $isminor,
> $iswatch, $section) {
> global $psyctarget, $psychost;
>
> $url = "http://" . $_SERVER['SERVER_NAME'];
> $url .= str_replace("index.php?title=", "index.php/",
> substr($_SERVER['REQUEST_URI'], 0, -14));
> # header
> $s = ":_target\t$psyctarget\n"
> # . ":_encoding\tutf-8\n" # PSYC uses UTF-8 anyway
> . "\n" # move on from routing layer to application
> layer
> . ":_nick_wiki\t". strToLower($user->mName) ."\n"
> . ":_article\t". $article->mTitle->mTextform ."\n"
> . ":_page\t$url$section\n";
> if ($section) {
> $s .= ":_section\t$section\n";
> if ($summary && ($p = strpos($summary, " */ ")))
> $summary = substr($summary, $p + 4);
> }
> if ($summary) $s .= ":_summary\t$summary\n";
>
> # method
> $mc = "_notice_update_wiki";
> if ($isminor) $mc .= "_minor";
> $s .= $mc ."\n";
>
> # body
> $s .= "(Wiki:[_nick_wiki]) has made a "
> . ($isminor ? "minor" : "major")
> . " change in [_page]\n";
> if ($summary) $s .= "saying: [_summary]\n";
>
> # deliver, as simple as that
> $udp = fsockopen($psychost, $psycport);
> fwrite($udp, ".\n". $s .".\n");
> fclose($udp);
> return true;
> }
>
> $wgHooks['ArticleSaveComplete'][] = array('psycnotify');
>
Use MediaWiki's built-in rc notification settings:
http://www.mediawiki.org/wiki/Manual:Configuration_settings#UDP_updates
_______________________________________________
MediaWiki-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-l