1969 års psalmbokskommitté
Från Rilpedia
ChatZilla
Svensk version från 26 mars 2006 kl.10.34 (CEST) för senaste version se en:Rilpedia:IRC_channel_scripts#ChatZilla. För att installera, kopiera scriptet till en fil som kallas wikilinks.js någonstans och lägg till det på Auto-load scripts under Startup-taben under Global Settings.
//*********************************************** // IceKarma's WikiLinks script for ChatZilla // Version 1.2 // 1.2 by James Ross: fix the normal links by shunting the // word-hyphenator as well. // Version 2.0 // 2.0 By Glen Mailer: // - Converted to new plugin API // - Ripped out a whole load of unused stuff plugin.prefary = [ ["class", "wiki-link", ""], ]; // // Plugin management // plugin.init = function init(glob) { plugin.major = 2; plugin.minor = 2; plugin.version = plugin.major + "." + plugin.minor; plugin.description = "Munges wiki-links to be clickable in the output window"; plugin.prefary = plugin.prefary.concat(plugin.prefary); } plugin.disable = function disable() { client.munger.delRule("wiki-link"); client.munger.delRule("wiki-template-link"); client.commandManager.removeCommands(plugin.commands); display( plugin.id + " v" + plugin.version + " disabled."); return true; } plugin.enable = function enable() { client.munger.addRule("wiki-link", /(\[\[.+?\]\])/, insertWikiLink); client.munger.addRule("wiki-template-link", /(\{\{.+?\}\})/, insertWikiTemplateLink); // ugly hack to cause the munger to evaluate wiki-link before these rules var tmp1 = client.munger.entries["link"]; var tmp2 = client.munger.entries["channel-link"]; var tmp3 = client.munger.entries["word-hyphenator"]; delete client.munger.entries["link"]; delete client.munger.entries["channel-link"]; delete client.munger.entries["word-hyphenator"]; client.munger.entries["link"] = tmp1; client.munger.entries["channel-link"] = tmp2; client.munger.entries["word-hyphenator"] = tmp3; var cmdary = [ [ "wiki-links-class", cmdClass, CMD_CONSOLE, "[<className>]" ], ]; plugin.commands = client.commandManager.defineCommands(cmdary); display( plugin.id + " v" + plugin.version + " enabled."); return true; } // // Mungers // function insertWikiLink(matchText,containerTag) { var wikiLink = matchText; var linkTitle; wikiLink = matchText.replace(/^\[\[/, ""); wikiLink = wikiLink.replace(/\]\]$/, ""); linkTitle = wikiLink; if (linkTitle.match(/\|/)) { var ary = linkTitle.match(/^(.*?)\|(.*)$/); wikiLink = ary[1]; linkTitle = ary[2]; } wikiLink = escape(wikiLink.replace(/ /g, "_")); var anchor = document.createElementNS( "http://www.w3.org/1999/xhtml", "html:a"); anchor.setAttribute("href", "http://sv.wikipedia.org/wiki/" + wikiLink); anchor.setAttribute("class", "chatzilla-link "+plugin.prefs["class"]); insertHyphenatedWord(linkTitle, anchor); containerTag.appendChild(document.createTextNode("[[")); containerTag.appendChild(anchor); containerTag.appendChild(document.createTextNode("]]")); } function insertWikiTemplateLink(matchText,containerTag) { var wikiLink = matchText; var linkTitle; wikiLink = matchText.replace(/^\{\{/, ""); wikiLink = wikiLink.replace(/\}\}$/, ""); linkTitle = wikiLink; if (linkTitle.match(/^subst:/)) { var ary = linkTitle.match(/^(subst:)(.*)$/); wikiLink = ary[2]; } if (linkTitle.match(/\|/)) { if(linkTitle.match(/^subst:/)) { var ary = linkTitle.match(/^(subst:)(.*?)\|(.*)$/); wikiLink = ary[2]; } else { var ary = linkTitle.match(/^(.*?)\|(.*)$/); wikiLink = ary[1]; } } wikiLink = escape(wikiLink.replace(/ /g, "_")); var anchor = document.createElementNS( "http://www.w3.org/1999/xhtml", "html:a"); anchor.setAttribute("href", "http://sv.wikipedia.org/wiki/Template:" + wikiLink); anchor.setAttribute("class", "chatzilla-link "+plugin.prefs["class"]); insertHyphenatedWord(linkTitle, anchor); containerTag.appendChild(document.createTextNode("{{")); containerTag.appendChild(anchor); containerTag.appendChild(document.createTextNode("}}")); } // // Commands // function cmdClass(e) { if ( null != e.linkclass ) plugin.prefs["class"] = e.linkclass; display( "Current value: " + plugin.prefs["class"] ); }
irssi
Ursprungligen från http://en.wikipedia.org/wiki/Wikipedia:Scripts#Irssi
#!/usr/bin/perl use strict; use warnings; use Irssi; Irssi::settings_add_str ('wikify', 'wiki_lang', 'sv'); Irssi::settings_add_str ('wikify', 'wiki_active_channels', 'freenode/#wikipedia freenode/#wikibooks'); sub wikilang { Irssi::settings_get_str ('wiki_lang'); } sub urlencode { my $string = shift; $string =~ y/ /_/; $string =~ s/([^A-Za-z0-9_])/sprintf("%%%02X", ord($1))/seg; return $string; } sub wikilink { my $s = shift; my $u = urlencode $s; my $l = wikilang; "[[$s]] <http://$l.wikipedia.org/wiki/$u>"; } sub wikitemplate { my $s = shift; my $u = urlencode $s; my $l = wikilang; "{{$s}} <http://$l.wikipedia.org/wiki/Template:$u>"; } sub wikify { my $line = shift; $line =~ s/\[\[(.*?)\]\]/wikilink $1/eg; $line =~ s/Template:(.+?)/wikitemplate $1/eg; return $line; } sub sig_message_public { my ($server, $msg, $nick, $address, $target) = @_; my $chatnet = $server->{chatnet}; my $ok = 0; for my $t (split /\s+/, Irssi::settings_get_str ('wiki_active_channels')) { $ok = 1 if lc $t eq lc "$chatnet/$target"; } return unless $ok; $msg = wikify $msg; Irssi::signal_continue ($server, $msg, $nick, $address, $target); } Irssi::signal_add_first ('message public', \&sig_message_public);