kldp.org | kldp.net | qmail.kldp.net :: Forum :: Wiki ::: FAQ :: MAN
E D R S I H C RSS
Login:
Password:
Join
Put not your trust in money, but put your money in trust.
This works well with GoogleGroups Beta service. This helps make links to GoogleGroups with text remotely extracted from usenet topic.
<?php
/**
 * Copyright 2004 by Gyoung-Yoon Noh <nohmad at sub-port.net>
 * All rights reserved. Distributable under GPL.
 *
 * $Id: UsenetMacro,v 1.13 2005/02/05 03:23:51 root Exp root $
 */

function macro_Usenet($formatter, $value)
{
    global $DBInfo;
    list($group, $thread) = @explode(':', $value);
    $img = sprintf('<img src="%s/google-16.png" alt="GoogleGroups:"'.
                   ' align="middle" hspace="1" />', $DBInfo->imgs_dir);
    if ($group == 'http') {
        $url = $value;
    } else {
        $url = 'http://groups-beta.google.com/group/'.$group;
        if (preg_match('/[[:xdigit:]]+/', $thread))
            $url .= '/browse_thread/thread/'.$thread;
        else
            $subj = $group;
    }
    if (!$subj) {
        $purl = parse_url($url);
        $fp = @fsockopen($purl['host'], 80, $errno, $errstr, 5);
        $out = "GET {$purl['path']} HTTP/1.0\nHost: {$purl['host']}\n\n";
        @fwrite($fp, $out);
        $buf = @fgets($fp, 80);
        if (!preg_match('@200 OK@i', $buf))
            return '<!> URL is not found <!>';
        while (strlen($buf) <= 25000) {
            $_ = @fread($fp, 1024);
            $buf .= $_;
            if (strlen($_) < 1024) break;
        }
        fclose($fp);
        $seek = strpos($buf, '<TR><TD>Subject: <b>') + 20;
        $offset = strpos($buf, '</b></TD></TR>', $seek);
        $subj = substr($buf, $seek, $offset-$seek);
        if (!$subj) $subj = $group;
    }
    return sprintf('%s<a href="%s">%s</a>', $img, $url, $subj);
}
?>

Write like this,
[[Usenet(comp.lang.python)]]
[[Usenet(comp.lang.python:fec2ae850574adf4)]]
[[Usenet(http://groups-beta.google.com/group/comp.unix.programmer/browse_thread/thread/d302919d5af2b802)]]
then it will be displayed like...
Usenet
Usenet
Usenet


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-10-24 09:05:23
Processing time 0.0490 sec