Index: openacs.org-dev/packages/irc-logger/ChangeLog =================================================================== RCS file: /usr/local/cvsroot/openacs.org-dev/packages/irc-logger/ChangeLog,v diff -u -r1.1 -r1.2 --- openacs.org-dev/packages/irc-logger/ChangeLog 30 Jan 2003 00:14:01 -0000 1.1 +++ openacs.org-dev/packages/irc-logger/ChangeLog 4 Feb 2003 19:12:39 -0000 1.2 @@ -1,5 +1,19 @@ -2003-01-29 Bart Teeuwisse <bart.teeuwisse@7-sisters.com> +2003-01-31 Bart Teeuwisse <bart.teeuwisse@thecodemill.biz> - * irc-logger.info (Module): Initial revision - (Module): Bumped up revision to 1.0b (beta) + * www/doc/index.adp (Module): Fixed link to daemontools +2003-01-30 Bart Teeuwisse <bart.teeuwisse@thecodemill.biz> + + * tcl (Module): + - Shortened the timestamps to allow more space for the conversation. + - Added links to the user accounts who's screen name matches their IRC nick. + - Updated documentation to reflect new features. + - Removed <pre> tags from XSL sheet as they misfired too often. + + +2003-01-29 Bart Teeuwisse <bart.teeuwisse@thecodemill.biz> + + * irc-logger.info (Module): + - Initial revision + - Bumped up revision to 1.0b (beta) + Index: openacs.org-dev/packages/irc-logger/data/default.xsl =================================================================== RCS file: /usr/local/cvsroot/openacs.org-dev/packages/irc-logger/data/default.xsl,v diff -u -r1.1 -r1.2 --- openacs.org-dev/packages/irc-logger/data/default.xsl 30 Jan 2003 00:14:19 -0000 1.1 +++ openacs.org-dev/packages/irc-logger/data/default.xsl 4 Feb 2003 19:13:19 -0000 1.2 @@ -5,8 +5,9 @@ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wn="http://xmlns.com/wordnet/1.6/" - xmlns:foaf="http://xmlns.com/foaf/0.1/"> - + xmlns:foaf="http://xmlns.com/foaf/0.1/" + xmlns:irc="irc::logger"> + <xsl:template match="foaf:ChatChannel"> <xsl:apply-templates/> </xsl:template> @@ -32,13 +33,14 @@ </xsl:template> <xsl:template match="dc:date"> - <font size="-1" color="grey"><xsl:value-of select="translate(.,'TZ',' ')"/> GMT</font> + <xsl:variable name="formatted_date"><xsl:value-of select="translate(.,'TZ',' ')"/> GMT</xsl:variable> + <font size="-1" color="grey" title="{$formatted_date}">[<xsl:value-of select="substring-before(substring-after(.,'T'), 'Z')"/>]</font> </xsl:template> <xsl:template match="dc:creator/wn:Person"> <td align="right" valign="top"> <font color="grey"><</font> - <b><xsl:value-of select="@foaf:nick"/></b> + <b><xsl:value-of select="irc:user_link(@foaf:nick)" disable-output-escaping="yes"/></b> <font color="grey">></font> </td> </xsl:template> @@ -63,9 +65,6 @@ <xsl:when test="starts-with(.,'*')"> <i><xsl:value-of select="substring-after(.,'* ')"/></i> </xsl:when> - <xsl:when test="contains(.,'{') or contains(.,'}') or contains(.,'[') or contains(.,']')"> - <pre><xsl:value-of select="."/></pre> - </xsl:when> <xsl:otherwise> <xsl:value-of select="."/> </xsl:otherwise> Index: openacs.org-dev/packages/irc-logger/tcl/irc-logger-procs-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs.org-dev/packages/irc-logger/tcl/irc-logger-procs-postgresql.xql,v diff -u -r1.1 -r1.2 --- openacs.org-dev/packages/irc-logger/tcl/irc-logger-procs-postgresql.xql 30 Jan 2003 00:14:44 -0000 1.1 +++ openacs.org-dev/packages/irc-logger/tcl/irc-logger-procs-postgresql.xql 4 Feb 2003 19:13:50 -0000 1.2 @@ -11,4 +11,15 @@ select etp__create_page(:parent_package_id, :date, :date, :content_type) </querytext> </fullquery> + + <fullquery name="dom::xpathFunc::irc::logger::user_link.get_user"> + <querytext> + select u.user_id, p.first_names || ' ' || p.last_name as name + from users u, persons p + where u.screen_name = :nick + and p.person_id = u.user_id + limit 1 + </querytext> + </fullquery> + </queryset> Index: openacs.org-dev/packages/irc-logger/tcl/irc-logger-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs.org-dev/packages/irc-logger/tcl/irc-logger-procs.tcl,v diff -u -r1.1 -r1.2 --- openacs.org-dev/packages/irc-logger/tcl/irc-logger-procs.tcl 30 Jan 2003 00:14:44 -0000 1.1 +++ openacs.org-dev/packages/irc-logger/tcl/irc-logger-procs.tcl 4 Feb 2003 19:13:50 -0000 1.2 @@ -218,3 +218,111 @@ -date $gmt_today \ -package_id $package_id } + +namespace eval dom::xpathFunc::irc::logger { + + # The namespace of the tDOM XSLT extension functions for the + # irc-logger module. + +} + +ad_proc -public dom::xpathFunc::irc::logger::user_link { + ctxNode + pos + nodeListType + nodeList + args +} { + + <p>Create a link to the user account on this site where the IRC + nick matches the user's screen name.</p> + + <p>Rolf (rolf@pointsman.de) from the tDOM team on tDOM extension + functions:</p> + + <blockquote> + <p>If an XPath expr (both for the selectNodes method and in XSLT + stylesheets) uses a not standard XPath function name (you cannot + 'overwrite' the C coded standard built-in functions), the engine + looks, if there is a tcl proc with the given function name in + the ::dom::xpathFunc:: namespace. In other words: all extension + functions procs must reside in the namespace ::dom::xpathFunc or + in a child namespace of that namespace. If the XPath extension + function has a prefix, the prefix is expanded to the namespace + URI and that namespace URI must be the name of the child + namespace of the ::dom::xpathFunc namespace.</p> + + <p>If there is such a proc, this proc is called with the following + arguments: ctxNode pos nodeListType nodeList args. The 'args' + are, as type/value pairs, the arguments, that are given to the + extension functions. (E.g. if you have + myExtensionFunction('foo'), you will get two args, the first + "string" the second "foo").</p> + + <p>The tcl proc, which implements the extension function must + return a list of two elements: {<type> <value>}. The possible + types at the moment are: "bool", "number", "string", "nodes".</p> + + <p>But don't get confused by my probably (too) vague + explanations. Just look at the examples in the xpath.test and + tdom.tcl files. For almost all 'real life' needs, you should get + it very fast, what to do from that usage examples.</p> + </blockquote> + + @author Bart Teeuwisse (bart.teeuwisse@thecodemill.biz) + @creation-date 2003-01-31 + + @param ctxNode See <a href="http://www.tdom.org">tDOM</a> documentation. + @param pos See <a href="http://www.tdom.org">tDOM</a> documentation. + @param nodeListType See <a href="http://www.tdom.org">tDOM</a> documentation. + @param nodeList See <a href="http://www.tdom.org">tDOM</a> documentation. + + @param args A single (type, value) pair of type 'attrnodes' with + the nick of the IRC user. + + @return A single (type, value) pair with a link to the user + account on the site. Or just the nick if no user account was found. + + @error The empty string. + +} { + + # Default return value + + set link "" + + # Limited parameter checking. The tDOM related parameters don't + # matter. + + if {[llength $args] == 2} { + + # Get argument type and value. + + foreach {type value} $args { + break + } + + # Check that the parameter an attribute node is and extract + # the value of the attribute. + + if {[string equal $type "attrnodes"]} { + set nick [lindex [lindex $value end] end] + + # Locate the first user with a screen name of 'nick' on this + # site. DB caching reduces the number of hits on the DB + # itself. + + if {[db_0or1row get_user {}]} { + set link "<a href=\"[acs_community_member_url -user_id $user_id]\" title=\"$name\">$nick</a>" + } else { + set link $nick + } + } else { + ns_log warning "dom::xpathFunc::irc::logger::user_link wrong parameter type '$type($value)'; type should have been attrnodes" + } + } else { + ns_log warning "dom::xpathFunc::irc::logger::user_link accepts only 1 parameter, received [llength $args] parameters" + } + + return [list string $link] +} Index: openacs.org-dev/packages/irc-logger/www/doc/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs.org-dev/packages/irc-logger/www/doc/index.adp,v diff -u -r1.1 -r1.2 --- openacs.org-dev/packages/irc-logger/www/doc/index.adp 30 Jan 2003 00:17:02 -0000 1.1 +++ openacs.org-dev/packages/irc-logger/www/doc/index.adp 4 Feb 2003 19:14:50 -0000 1.2 @@ -70,7 +70,7 @@ </code></pre></blockquote> <p>Place logger under supervision using <a - href=="http://cr.yp.to/daemontools.html">daemontools</a> or crontab + href="http://cr.yp.to/daemontools.html">daemontools</a> or crontab to guarantee that the bot stays connected to the IRC channel it is logging.</p> @@ -142,8 +142,13 @@ Edit-This-Page page of the log directly under the instance of Edit-This-Page that @package_name@ is mounted under.</p> - <p>@package_name@ can be mounted more than once. Each instance processing the logs of a different bot.</p> + <p>@package_name@ can be mounted more than once. Each instance + processing the logs of a different bot.</p> + <p>@package_name@ will link to the user's profile and include the + full name for users of the site who have entered their IRC nick as + their OpenACS <a href="@pvt_home@">screen name</a>.</p> + <h2>Credits</h2> <p>The @package_name@ was designed and written by <a Index: openacs.org-dev/packages/irc-logger/www/doc/index.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs.org-dev/packages/irc-logger/www/doc/index.tcl,v diff -u -r1.1 -r1.2 --- openacs.org-dev/packages/irc-logger/www/doc/index.tcl 30 Jan 2003 00:17:02 -0000 1.1 +++ openacs.org-dev/packages/irc-logger/www/doc/index.tcl 4 Feb 2003 19:14:50 -0000 1.2 @@ -21,6 +21,8 @@ set context_bar [ad_context_bar $package_name] +set pvt_home [ad_pvt_home] + # Set signatory for at the bottom of the page set signatory "bart.teeuwisse@thecodemill.biz"