iamb-dev Mailing List for IAMB -Iamb A Message Board
Status: Beta
Brought to you by:
rbowen
You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(12) |
Dec
(74) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(42) |
Feb
(11) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(2) |
Dec
|
| 2002 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
|
From: <rb...@us...> - 2011-11-22 20:53:26
|
Revision: 73
http://iamb.svn.sourceforge.net/iamb/?rev=73&view=rev
Author: rbowen
Date: 2011-11-22 20:53:20 +0000 (Tue, 22 Nov 2011)
Log Message:
-----------
Burninate CVSROOT
Removed Paths:
-------------
trunk/CVSROOT/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: Rich B. <rb...@rc...> - 2002-04-03 15:54:47
|
For those of you that still care, IAMB has moved again. IAMB will now be developed by CooperMcGregor (my company) and distributed under the Perl dual license, as before. I'm hosting RT, CVS, and mailing lists. We can add other stuff if/as necessary. An IAMB installation seems to make sense too. ;-) Anyways, if you still care about this project, please see http://www.CooperMcGregor.com/products/iamb/ and get on the new mailing lists. I will not be copying over subscribers from one list to the other, so you'll need to get on the list(s) of your own volition. Please direct follow-up discussion to the new mailing lists. -- Rich Bowen - rb...@rc... ReefKnot - http://www.reefknot.org |
|
From: Rich B. <rb...@us...> - 2002-03-28 16:03:18
|
Update of /cvsroot/iamb/iamb
In directory usw-pr-cvs1:/tmp/cvs-serv2053
Modified Files:
index.cgi
Log Message:
Code tidying. No functional change.
Index: index.cgi
===================================================================
RCS file: /cvsroot/iamb/iamb/index.cgi,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -r1.29 -r1.30
*** index.cgi 28 Jan 2001 22:30:14 -0000 1.29
--- index.cgi 28 Mar 2002 16:03:15 -0000 1.30
***************
*** 446,477 ****
=cut
! sub Edit {
! # Form to edit an existing article
! my ($iamb) = @_;
! my ($template, $details, $sth, $user,
! $article, %articles, %children,
! );
! my $form = $iamb->form;
! $user = $iamb->WhoAmI;
! $sth =$iamb->dbh->prepare("select * from ". $iamb->articles ."
! where ID=$form->{article}
! ");
! $sth->execute;
! $details = $sth->fetchrow_hashref;
! $details->{title} =~ s/"/"/g;
! # Only the author can edit the article
! if ($user->{ID} && $user->{ID}==$details->{authorID}) {
! $template = 'edit';
! }
! else {
! # Without access, edit becomes the same as view article
! ($template, $details) = Article($iamb);
! $template = 'notauthor';
}
! return ($template, $details);
! } # End Edit
=head2 Update
--- 446,476 ----
=cut
! sub Edit {
! # Form to edit an existing article
! my ($iamb) = @_;
! my ( $template, $details, $sth, $user, $article, %articles, %children, );
! my $form = $iamb->form;
! $user = $iamb->WhoAmI;
! $sth = $iamb->dbh->prepare( "select * from " . $iamb->articles . "
! where ID=$form->{article}
! " );
! $sth->execute;
! $details = $sth->fetchrow_hashref;
! $details->{title} =~ s/"/"/g;
!
! # Only the author can edit the article
! if ( $user->{ID} && $user->{ID} == $details->{authorID} ) {
! $template = 'edit';
! } else {
!
! # Without access, edit becomes the same as view article
! ( $template, $details ) = Article($iamb);
! $template = 'notauthor';
}
! return ( $template, $details );
! } # End Edit
=head2 Update
***************
*** 485,518 ****
=cut
! sub Update {
! # Update an existing article in the database
! my ($iamb) = @_;
! my ($template, $details, $sth, $time, $id,
! $html, $user, $sth2, $parent,
! $now,
! );
! my $form = $iamb->form;
! $user = $iamb->WhoAmI;
! $sth = $iamb->dbh->prepare("select * from " . $iamb->articles . "
where ID=$form->{ID}
! ");
! $sth->execute;
! $details = $sth->fetchrow_hashref;
!
! if ($user->{ID} && $user->{ID} == $details->{authorID})
! {
! $time = time; # Update the time
!
! # Remove script amd comments
! $form->{body} =~ s/<!--?|<script//ig;
! $form->{body} =~ s/-->//g;
! $form->{image}="" if ($form->{image} eq "http://");
! $form->{title} ||= 'Untitled';
!
! for (qw(title body author email link image)) {
! $form->{$_} = $iamb->dbh->quote($form->{$_});
! }
! $sth = $iamb->dbh->prepare("update ". $iamb->articles . "
set title = $form->{title},
body = $form->{body},
--- 484,515 ----
=cut
! sub Update {
! # Update an existing article in the database
! my ($iamb) = @_;
! my ( $template, $details, $sth, $time, $id, $html, $user, $sth2, $parent,
! $now, );
!
! my $form = $iamb->form;
! $user = $iamb->WhoAmI;
! $sth = $iamb->dbh->prepare( "select * from " . $iamb->articles . "
where ID=$form->{ID}
! " );
! $sth->execute;
! $details = $sth->fetchrow_hashref;
!
! if ( $user->{ID} && $user->{ID} == $details->{authorID} ) {
! $time = time; # Update the time
!
! # Remove script amd comments
! $form->{body} =~ s/<!--?|<script//ig;
! $form->{body} =~ s/-->//g;
! $form->{image} = "" if ( $form->{image} eq "http://" );
! $form->{title} ||= 'Untitled';
!
! for (qw(title body author email link image)) {
! $form->{$_} = $iamb->dbh->quote( $form->{$_} );
! }
! $sth = $iamb->dbh->prepare( "update " . $iamb->articles . "
set title = $form->{title},
body = $form->{body},
***************
*** 520,553 ****
image = $form->{image}
where ID = $form->{ID}
! ");
! # Users cannot move a thread/article from one forum to another
! # at this time.
! # Forum is not specified because articleID is always unique.
! $sth->execute;
! $now = time;
! $sth = $iamb->dbh->prepare("update ". $iamb->threads ."
set updated = $now
where ID = $form->{threadID}
! ");
! $sth->execute;
! }
! # Get the unread marks right
! $iamb->UpdateUnread($form->{forum}, $user->{ID});
! $sth = $iamb->dbh->prepare("delete from ". $iamb->unread . "
where userID = $user->{ID}
and articleID = $form->{ID}
and marktype = 1
! ");
! $sth->execute;
! $sth->finish;
!
! $form->{article} = $form->{ID};
! ($template, $details) = Article($iamb);
! return ($template, $details);
! } # End sub Update
=head2 MarkUnread
--- 517,551 ----
image = $form->{image}
where ID = $form->{ID}
! " );
! # Users cannot move a thread/article from one forum to another
! # at this time.
! # Forum is not specified because articleID is always unique.
! $sth->execute;
!
! $now = time;
! $sth = $iamb->dbh->prepare( "update " . $iamb->threads . "
set updated = $now
where ID = $form->{threadID}
! " );
! $sth->execute;
! }
! # Get the unread marks right
! $iamb->UpdateUnread( $form->{forum}, $user->{ID} );
! $sth = $iamb->dbh->prepare( "delete from " . $iamb->unread . "
where userID = $user->{ID}
and articleID = $form->{ID}
and marktype = 1
! " );
! $sth->execute;
! $sth->finish;
! $form->{article} = $form->{ID};
! ( $template, $details ) = Article($iamb);
!
! return ( $template, $details );
! } # End sub Update
=head2 MarkUnread
***************
*** 903,906 ****
--- 901,907 ----
Current version: $Revision$
$Log$
+ Revision 1.30 2002/03/28 16:03:15 rbowen
+ Code tidying. No functional change.
+
Revision 1.29 2001/01/28 22:30:14 rbowen
Date/Time field name change.
|
|
From: Rich B. <rb...@rc...> - 2001-11-29 13:48:08
|
On Thu, 29 Nov 2001, Benjamin wrote: > Hi there, > I like iamb! It has (almost) everything I expect from a decent Message > Board Software. But the stable code is somewhat a bit messy, and quite > difficult to expand. For example I want User Auth in every case, so no > one without an account can post. That alone is not to difficult, but > the database is not that well documented. It's quite hard to figure out > what a specific column is for, or even a table (e.g. forum). > So my question: Are yuo still developing iamb? What about the "major > rewrite" you wanted to do? The last sourceforge news post ist quite old. > In order to adjust iamb to my needs, I could help in the development. It is still a little in development, because I am using it on a number of sites, but it is not under the sort of active development that we had envisioned, largely due to lack of interested participants. If you want to submit patches, we would be glad to look them over. -- Pilgrim, how you journey on the road you chose To find out where the winds die and where the stories go --Pilgrim (Enya - A Day Without Rain) |
|
From: Benjamin <ben...@nu...> - 2001-11-29 12:26:36
|
Hi there, I like iamb! It has (almost) everything I expect from a decent Message Board Software. But the stable code is somewhat a bit messy, and quite difficult to expand. For example I want User Auth in every case, so no one without an account can post. That alone is not to difficult, but the database is not that well documented. It's quite hard to figure out what a specific column is for, or even a table (e.g. forum). So my question: Are yuo still developing iamb? What about the "major rewrite" you wanted to do? The last sourceforge news post ist quite old. In order to adjust iamb to my needs, I could help in the development. Benjamin -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GIT/P dx s: a? C(+++) L++ P+++ N++ w PS+ PE-(++) Y+ PGP t+ 5- X R@ !tv b+++ DI(+) D+ G e++(+++) UF++ h-- r@ y? ------END GEEK CODE BLOCK------ |
|
From: <no...@so...> - 2001-08-31 19:09:11
|
Task #24331 has been updated. Project: IAMB -Iamb A Message Board Subproject: Internals Summary: IAMBd - daemon for atomic changes of strees Complete: 35% Status: Open Authority : sungo Assigned to: nobody Description: A daemon is needed to accept and handle atomic changes to the stree structures. This will eliminate data collision and all other nastiness associated with these structures. Ideally, this will done in POE. ------------------------------------------------------- For more info, visit: http://sourceforge.net/pm/task.php?func=detailtask&project_task_id=24331&group_id=14613&group_project_id=6937 |
|
From: Matt C. <su...@us...> - 2001-02-07 03:51:11
|
Update of /cvsroot/iamb/iamb-dev/pm/IAMB
In directory usw-pr-cvs1:/tmp/cvs-serv21925/IAMB
Added Files:
Stree.pm
Log Message:
stree stuff added. the test script is not proper yet (see perldoc Test) but i dont feel like correcting it right now.
--- NEW FILE ---
# $Header: /cvsroot/iamb/iamb-dev/pm/IAMB/Stree.pm,v 1.1 2001/02/07 03:51:28 sungo Exp $
package IAMB::Stree;
=head1 NAME
IAMB::Stree
=head1 DESCRIPTION
Handles stringified tree structures for IAMB
=head1 AUTHOR(S)
Ken Rietz (kr...@qx...)
Matt Cashner (ma...@cr...)
=head1 DATE
$Date: 2001/02/07 03:51:28 $
=head1 METHODS
=over 4
=cut
use strict;
use warnings;
use vars qw($VERSION);
$VERSION = '0.01';
=head 2
plant() is the constructor for the Stree class. It is called with
the ID of the root article of the thread as a named parameter:
my $newstree = Stree -> plant(ARTICLE => $ArticleID);
=cut
sub plant {
my ($class, %args) = @_;
my $stree = '[' . $args{ARTICLE} . ']';
bless $stree, $class;
return $stree;
}
sub stree {
my $self = shift;
if(@_) {
$self->{STREE} = shift;
}
return $self->{STREE};
}
# This is a utility subroutine. It separates all the elements of $stree into
# individual array elements. It does this by inserting commas (the normal
# delimiter between successive IDs), and then splits on ','.
sub _explode {
my ($stree, # Input
@split_ra, # Output
%args,
);
%args = @_;
$stree = $args{STREE} or return 0;
$stree =~ s/\[/,\[,/g; # Put commas before and after '['
$stree =~ s/\]/,\],/g; # Put commas before and after ']'
$stree =~ s/,,/,/g; # In case we got too zealous
$stree =~ s/^,//;
@split_ra = split ',', $stree;
return @split_ra;
}
=head2 dissect()
splits $stree into two (non-stree) pieces exactly at the number $ArticleID.
Note that if $ArticleID does not occur in $stree, then both $before and
$after are null.
=cut
sub dissect {
my $self = shift;
my ($stree,
$ArticleID,
%args,
);
%args = @_;
=begin comments
The trick is to come up with the right regex, and let the (efficient!)
regex engine grind it through. The way to do it is to look for $ArticleID
preceded immediately and followed immediately by ',', '[', or ']'. That's
the crux of the regex. _explode() would be faster, most likely, except that
reconstructing the $before and $after strings is a royal mess.
=end comments
=cut
$stree = $self->{STREE};
$ArticleID = $args{ARTICLE} or return;
$stree =~ /(.*[,\[\]])$ArticleID([,\[\]].*)/;
return ($1, $2);
}
=head2 heritage()
Constructs an array of the successive immediate ancestors of any given
$ArticleID in any $stree, back to the root article.
=cut
sub heritage {
my $self = shift;
my ($stree,
$ArticleID,
%args,
@exploded_stree,
$index,
$tmp,
$generation, $max_generation,
@ancestors,
);
%args = @_;
=begin comments
The trick here is to note one critical fact: The last article at any specific
generational level before the article is the ancestor in that generation. The
strategy I use is to _explode the $stree, scan from the end to the beginning
looking for $ArticleID, then use the '[' and ']' to count generations, with
the first occurrence (still going backwards) at each level stored in the
@ancestors array. I never would have guessed this possible in one pass, but
it is!
=end comments
=cut
$stree = $self->{STREE};
$ArticleID = $args{ARTICLE} or return;
@exploded_stree = _explode(STREE => $stree);
$index = $#exploded_stree;
$index-- until (($index < 0) || ($ArticleID eq $exploded_stree[$index]));
# This next return ought to be an error: $ArticleID not found in $stree
return if ($index<0);
$generation = -1;
$max_generation = -1;
while ($tmp = $exploded_stree[--$index]) {
next if $tmp =~ /\d+/;
last if ($index <= 0);
if ($tmp eq ']') {
$generation--;
next;
} elsif ($tmp eq '[') {
$generation++;
if ($generation > $max_generation) {
$max_generation = $generation;
$tmp = $exploded_stree[--$index];
$ancestors[$generation] = $tmp if defined $tmp;
}
}
}
return @ancestors;
}
=head2 prune()
prune() deletes the article and all the articles responding to it
(recursively). That is, it deletes the entire subthread starting at
the article. A value is returned which is the deleted subthread.
The call looks like this
$subthread = $stree -> prune( ARTICLE => $ArticleID );
=cut
sub prune {
my $self = shift;
my ($stree,
$ArticleID,
%args,
$branch, # Return value
$before, $after, # From dissect
@exploded_stree, # From _explode
$generation, # Number unpaired '['
$numclosebrackets, # Total number ']'
$index, # Step through @exploded_stree
$regex, # For clobbering whole subthread
);
%args = @_;
$stree = $self->{STREE};
$ArticleID = $args{ARTICLE} or return;
($before, $after) = $self->dissect( ARTICLE => $ArticleID );
# This should be an error: $ArticleID not found in $stree
return unless ($before);
=begin comments
The $before of dissect is mostly what we want. We do have to remove a trailing
comma if the first character of $after is a '[' or a ','.
The $after might have to be altered.
If the next character is ']', nothing changes. If the next character is ',', only
remove the comma. If the next character is '[', life gets more interesting. We have
to find the corresponding ']', and remove everything in between.
=end comments
=cut
if (($after =~ /^\]/) || ($after =~ /^,/)) {
$stree = $before . $after;
$branch = '[' . $ArticleID . ']';
} else {
=begin comments
The purpose of this loop is to count the number of close brackets there are up
to the end of the subthread. We then use a regex to clobber just that much of
$after. It would be nice to do this with a regex, but that is intractable with
no known bound on the number of closing brackets.
=end comments
=cut
@exploded_stree = $self->_explode(STREE => $after);
$generation = $numclosebrackets = $index = 0;
while($generation <= 0) {
if ($exploded_stree[$index] eq '[') {
$generation++;
} elsif ($exploded_stree[$index] eq ']') {
$generation--;
$numclosebrackets++;
}
$index++;
}
# Clobber the rest of the subthread.
$regex = '^' . '[^\]]*]' x $numclosebrackets;
$after =~ s/($regex)//;
$branch = '[' . $ArticleID . $1 . ']';
} # End of else that deals with '['
# Reassemble $stree and clean it up.
$stree = $before . $after;
$stree =~ s/\[\]/,/;
$stree =~ s/,,/,/g;
$stree =~ s/,\]/\]/g;
$stree =~ s/([\[\]]),/$1/g;
$stree =~ s/^,$//;
return $branch;
}
1;
=head1 HISTORY
$Log: Stree.pm,v $
Revision 1.1 2001/02/07 03:51:28 sungo
stree stuff added. the test script is not proper yet (see perldoc Test) but i dont feel like correcting it right now.
=cut
|
|
From: Matt C. <su...@us...> - 2001-02-07 03:51:11
|
Update of /cvsroot/iamb/iamb-dev/pm/t
In directory usw-pr-cvs1:/tmp/cvs-serv21925/t
Added Files:
stree.t
Log Message:
stree stuff added. the test script is not proper yet (see perldoc Test) but i dont feel like correcting it right now.
--- NEW FILE ---
#!/usr/bin/perl
BEGIN { $| = 1; print "1..5\n"; }
END {print "not ok 1\n" unless $loaded;}
use IAMB::Stree;
$loaded = 1;
print "ok 1\n";
my $obj = IAMB::Stree->new(STREE => '[1[2[3,4[5]]6[7,8,9]10,11[12,13[14[15[16]]17]]]');
#hackish i know but you shouldnt be calling this outside the module anyway
my @test_explode = IAMB::Stree::_explode(STREE => $obj->stree);
my $count = scalar @test_explode;
if( $count == 34) {
print "ok 2\n";
} else {
print "not ok 2 \n";
}
my ($before, $after) = $obj->dissect(ARTICLE => 9);
if( ($before eq '[1[2[3,4[5]]6[7,8,') && ($after eq ']10,11[12,13[14[15[16]]17]]]')) {
print "ok 3\n";
} else {
print "not ok 3\n";
}
my @ancestors = $obj->heritage( ARTICLE => 6);
if ($ancestors[0] == 1) {
print "ok 4\n";
} else {
print "not ok 4\n";
}
my $branch = $obj->prune( ARTICLE => 9 );
if($branch eq '[9]') {
print "ok 5\n";
} else {
print "not ok 5\n";
}
|
|
From: Matt C. <su...@us...> - 2001-02-07 03:42:56
|
Update of /cvsroot/iamb/iamb-dev/pm/t In directory usw-pr-cvs1:/tmp/cvs-serv21315/t Log Message: Directory /cvsroot/iamb/iamb-dev/pm/t added to the repository |
|
From: Matt C. <su...@us...> - 2001-02-07 03:07:26
|
Update of /cvsroot/iamb/iamb-dev/pm/IAMB In directory usw-pr-cvs1:/tmp/cvs-serv17735/IAMB Log Message: Directory /cvsroot/iamb/iamb-dev/pm/IAMB added to the repository |
|
From: Matt C. <su...@us...> - 2001-02-07 03:00:36
|
Update of /cvsroot/iamb/iamb-dev/pm In directory usw-pr-cvs1:/tmp/cvs-serv17154/pm Log Message: Directory /cvsroot/iamb/iamb-dev/pm added to the repository |
|
From: Matt C. <su...@us...> - 2001-02-07 02:59:11
|
Update of /cvsroot/iamb/iamb-dev In directory usw-pr-cvs1:/tmp/cvs-serv17004 Removed Files: Community.ini IAMB.pm MANIFEST Makefile.PL admin.cgi index.cgi iniedit.cgi Log Message: further clean up --- Community.ini DELETED --- --- IAMB.pm DELETED --- --- MANIFEST DELETED --- --- Makefile.PL DELETED --- --- admin.cgi DELETED --- --- index.cgi DELETED --- --- iniedit.cgi DELETED --- |
|
From: Matt C. <su...@us...> - 2001-02-07 02:49:41
|
Update of /cvsroot/iamb/iamb-dev/scripts In directory usw-pr-cvs1:/tmp/cvs-serv16021/scripts Removed Files: process.pl set_threadid.pl Log Message: clean start. time to write code, folks --- process.pl DELETED --- --- set_threadid.pl DELETED --- |
|
From: Matt C. <su...@us...> - 2001-02-07 02:49:39
|
Update of /cvsroot/iamb/iamb-dev/templates In directory usw-pr-cvs1:/tmp/cvs-serv16021/templates Removed Files: admin.html article.html edit.html flat.html flat_article.html here.gif main.html new.html read_line.html redirect.html search.html thread_line.html thread_line_unread.html threadlist.html unread_line.html Log Message: clean start. time to write code, folks --- admin.html DELETED --- --- article.html DELETED --- --- edit.html DELETED --- --- flat.html DELETED --- --- flat_article.html DELETED --- --- here.gif DELETED --- --- main.html DELETED --- --- new.html DELETED --- --- read_line.html DELETED --- --- redirect.html DELETED --- --- search.html DELETED --- --- thread_line.html DELETED --- --- thread_line_unread.html DELETED --- --- threadlist.html DELETED --- --- unread_line.html DELETED --- |
|
From: Matt C. <su...@us...> - 2001-02-07 02:49:38
|
Update of /cvsroot/iamb/iamb-dev/setup In directory usw-pr-cvs1:/tmp/cvs-serv16021/setup Removed Files: IAMB.mysql Log Message: clean start. time to write code, folks --- IAMB.mysql DELETED --- |
|
From: Matt C. <su...@us...> - 2001-02-07 02:49:38
|
Update of /cvsroot/iamb/iamb-dev/IAMB In directory usw-pr-cvs1:/tmp/cvs-serv16021/IAMB Removed Files: Article.pm Forum.pm StdModule.pm Thread.pm User.pm Log Message: clean start. time to write code, folks --- Article.pm DELETED --- --- Forum.pm DELETED --- --- StdModule.pm DELETED --- --- Thread.pm DELETED --- --- User.pm DELETED --- |
|
From: Rich B. <rb...@us...> - 2001-02-03 20:49:17
|
Update of /cvsroot/iamb/iamb-modperl In directory usw-pr-cvs1:/tmp/cvs-serv30737 Log Message: Added iamb-modperl repository Status: Vendor Tag: IAMB Release Tags: start No conflicts created by this import ***** Bogus filespec: - ***** Bogus filespec: Imported ***** Bogus filespec: sources |
|
From: Rich B. <rb...@us...> - 2001-01-31 00:52:23
|
Update of /cvsroot/iamb/iamb-dev In directory usw-pr-cvs1:/tmp/cvs-serv8425 Removed Files: process.pl set_threadid.pl Log Message: Moved non-cgi stuff into scripts subdirectory. Might do something with these some day, or we may just blow them away later on. --- process.pl DELETED --- --- set_threadid.pl DELETED --- |
|
From: Rich B. <rb...@us...> - 2001-01-31 00:52:23
|
Update of /cvsroot/iamb/iamb-dev/scripts
In directory usw-pr-cvs1:/tmp/cvs-serv8425/scripts
Added Files:
process.pl set_threadid.pl
Log Message:
Moved non-cgi stuff into scripts subdirectory. Might do something with
these some day, or we may just blow them away later on.
--- NEW FILE ---
#!/usr/bin/perl
use DBI;
use Community::IAMB;
use strict;
my $iamb = new Community::IAMB;
my $dbh = DBI->connect($iamb->database,
$iamb->DBIlogin, $iamb->DBIpassword);
my (@info, $line, $subject, $from, $body);
@info = <STDIN>;
$line = "X";
# Get the headers
while ($line =~ /\w/) {
$line = shift @info;
if ($line =~ /^Subject:/) {
($subject = $line) =~ s/^Subject:\s+//;
} # Endif
elsif ($line =~ /^From:/) {
($from = $line) =~ s/^From:\s+//;
} # Endif
} # Wend
# Get the body
$body = join "", @info;
# Put it in the database
my $id = GetID($dbh, 'article','ID');
my $time = time;
my $sth = $dbh->prepare("insert into article
(ID, title, body, date_time, author,
email, parent)
values
($id, '$subject','$body',$time,
'$from','$from',0)
");
$sth->execute;
#######
=head1 NAME
process.pl
=head1 DESCRIPTION
This was an early attempt to make a mail->IAMB gateway. It even worked
pretty well. I left it out because I thought - and still think - that
a mail->IAMB gateway allows people to throw things at the board without
actually participating, which is rather contrary to the whole notion of
Community. But I've left the code in here because I expect that I'll
be called upon to write it again some time, and I'd rather not have
to write it from scratch.
=cut
--- NEW FILE ---
#!/usr/bin/perl;
use Community::IAMB;
use strict;
my $iamb = new Community::IAMB;
# Need to ditch all thread IDs for this to work
my $sth = $iamb->dbh->prepare("update " . $iamb->articles . " set threadID=-1");
$sth->execute;
my (@root, $id);
$sth = $iamb->dbh->prepare("select ID from " . $iamb->articles . "
where parent=0");
$sth->execute;
$sth->bind_columns (undef, \$id);
push @root, $id while $sth->fetch;
foreach $id (@root) {
print "Setting thread ids on thread $id\n";
my @kids = $iamb->Decendants($iamb->dbh, $id);
my $kids = join ', ', @kids;
print "$kids\n";
$sth = $iamb->dbh->prepare("update " . $iamb->articles . "
set threadID = $id where
ID in ($kids)
");
$sth->execute;
}
|
|
From: Rich B. <rb...@us...> - 2001-01-31 00:50:46
|
Update of /cvsroot/iamb/iamb-dev/scripts In directory usw-pr-cvs1:/tmp/cvs-serv8229/scripts Log Message: Directory /cvsroot/iamb/iamb-dev/scripts added to the repository |
|
From: Rich B. <rb...@us...> - 2001-01-31 00:49:20
|
Update of /cvsroot/iamb/iamb-dev In directory usw-pr-cvs1:/tmp/cvs-serv7959 Removed Files: Changes Log Message: We never used the changes file anyway. --- Changes DELETED --- |
|
From: Rich B. <rb...@us...> - 2001-01-31 00:48:24
|
Update of /cvsroot/iamb/iamb-dev In directory usw-pr-cvs1:/tmp/cvs-serv7709 Removed Files: talk_story.txt Log Message: I like the story, but it does not really fit any more. --- talk_story.txt DELETED --- |
|
From: Rich B. <rb...@us...> - 2001-01-31 00:46:33
|
Update of /cvsroot/iamb/iamb-dev In directory usw-pr-cvs1:/tmp/cvs-serv7443 Removed Files: .htaccess Log Message: OK, we're going to stop doing Apache authentication, so this is not needed any more. --- .htaccess DELETED --- |
|
From: Rich B. <rb...@us...> - 2001-01-31 00:45:09
|
Update of /cvsroot/iamb/iamb-dev In directory usw-pr-cvs1:/tmp/cvs-serv7250 Removed Files: Community.pm Log Message: Removing stuff that is no longer needed. --- Community.pm DELETED --- |
|
From: Rich B. <rb...@us...> - 2001-01-31 00:43:46
|
Update of /cvsroot/iamb/iamb-dev/Community In directory usw-pr-cvs1:/tmp/cvs-serv6764/Community Removed Files: Directory.pm IAMB.pm Links.pm User.pm Log Message: Removing some stuff that is no longer needed. --- Directory.pm DELETED --- --- IAMB.pm DELETED --- --- Links.pm DELETED --- --- User.pm DELETED --- |