Additionally, I'd like WakabaMark to be fixed somehow.
I don't know how, though. You know my resentments.
Finally, thanks for your fine work throughout all this time.
It is appreciated!
> Also, I couldn't be arsed to fix Amber, since it was just a joke in the first place.
Booo!
> who here finds enough use in the auto-expanding comment box to justify the annoyances when you click in or out of it?
I love that feature. Please don't remove it!
> I think the drop-in Style capability is fantastic-- but it just doesn't seem to play nice with the current 2ch page design.
plz 2 be keeping that feature too
Nothing specific, just protecting against any possible future ones.
I don't see what's so bad about >>330. The alternative is to force the table to be full width, which will make it uglier (because in HTML all columns will become wider, including the skinniest ones), and harder to read.
> No need for a database, just a text file. You're right about storing IPs, though, but then how can you implement a banning system? Do you use an encrypted IP like the algorithm to generate ID codes?
Banning is done through Apache, which really makes more sense than doing it in the script. I don't want to re-invent the wheel for that.
> I mean that (for example) if I wanted to replace the permasaging function under the MAX_POSTS condition (permasage after X posts) with the thread-closing function (close after X posts), all it would require is a simple replacement of the proper function references in post_stuff(), correct?
No, they're done at different different places, because they are essentially different functions. The permasage behaviour doesn't actually permasage a thread, it only refrains from bumping it. There's no permsage flag added to the thread. The closing, on the other hand, does add a flag to the thread.
> Making "More options..." an option in the configs.
> Seems sensible, when you already have the ability to turn off WakabaMark as a board admin.
No. And I actually removed the DISABLE_WAKABAMARK option since it's no longer really needed. The replacement will be an option to select the default markup for a board, which makes much more sense overall.
...and admin posts that override all board/thread restrictions (ie, bumping a permasaged thread and possibly even posting in closed threads).
So, does that mean you approve of removing the style selector on subpages? I just woke up and I'm confused.
Anyway, Safari doesn't, as far as I know, let you pick stylesheets. And IE obviously doesn't. Also, not even Firefox will actually remember your choice, making the ability completely useless anyway, unless coupled with Javascript on the page to save the setting.
> The Futaba template is missing the "No File" checkbox next to the File field in the Post New Thread area.
That's because Kareha has no "No File" check in the first place, and I'm not sure I want to add code just for that (since it'd have to be optional anyway).
Thanks. I did it the hard way and put in the proper transformations everywhere so filenames can be kept intact, though.
> Also: I just noticed that "¦" in tripcodes will work correctly but turn into "�U" through the cookie on /soc/ but not on the sandbox.
This might have been worded a bit akwardly. What I meant was: Tricodes work fine with ¦ on both the sandbox and /soc/&/sup/, although the latter boards will strangely turn the ¦ into a U? after the reply button was hit.
>>48-50
First of all, I don't believe it would make bumps more valuable in any way. People bump threads all the time with worthless replies since most don't even know what "sage" is or means or what it is good for. They will simply continue to do this, no matter whether the sage function is changed in this way.
Even at this stage, years after its introduction to a major western userbase, people are still clueless about the main basic functions of image- and discussionboards in the Futaba/0ch style. There are some signs of improvement, but they are rare.
I doubt people would be willing or eager to learn a new, different behaviour at this point in time.
The only real change is what >>50 points out (though I want to mention that even that point is mostly misunderstood: if people want to protest against a certain thread, they should post as many sage posts as it needs to get permasaged (although it's arguably counterproductive, considering the default prune behaviour of imgboards). If threads are still bumpable and trolls find that they have been flamed with a sage, they will just bump it once more). And I don't think that's enough to justify a pretty major function change.
> Thorough search functionality a-la notchan, using PATH_INFO. This might not be possible without implementing a per-post metadata system though.
I think this not something that needs to be part of the software itself.
Besides, Google mostly provides that function just fine with site:blahblahblah.com blah
Also, what is "user deletion"?
If you want to have a look at what the code actually does to dig out flaws, here is the current version:
sub sanitize_html($%)
{
my ($html,%tags)=@_;
my (@stack,$clean);
my $entity_re=qr/&(?!\#[0-9]+;|\#x[0-9a-fA-F]+;|amp;)/;
while($html=~/(?:([^<]+)|<([^<>]*)>?)/g)
{
my ($text,$tag)=($1,$2);
if($text)
{
$text=~s/$entity_re/&/g;
$text=~s/>/>/g;
$clean.=$text;
}
else
{
if($tag=~m!^\s*(/?)\s*([a-z0-9_:\-\.]+)(?:\s+(.*?)|)\s*(/?)\s*$!si)
{
my ($closing,$name,$args,$implicit)=($1,lc($2),$3,$4);
if($tags{$name})
{
if($closing)
{
if(grep { $_ eq $name } @stack)
{
my $entry;
do {
$entry=pop @stack;
$clean.="</$entry>";
} until $entry eq $name;
}
}
else
{
my %args;
$args=~s/\s/ /sg;
while($args=~/([a-z0-9_:\-\.]+)(?:\s*=\s*(?:'([^']*?)'|"([^"]*?)"|['"]?([^'" ]*))|)/gi)
{
my ($arg,$value)=(lc($1),defined($2)?$2:defined($3)?$3:$4);
$value=$arg unless defined($value);
my $type=$tags{$name}{args}{$arg};
if($type)
{
my $passes=1;
if($type=~/url/i) { $passes=0 unless $value=~/(?:^$protocol_re:|^[^:]+$)/ }
if($type=~/number/i) { $passes=0 unless $value=~/^[0-9]+$/ }
if($passes)
{
$value=~s/$entity_re/&/g;
if($value=~/"/) { $value="'$value'" }
else { $value="\"$value\"" }
$args{$arg}=$value;
}
}
}
my $cleanargs=join " ",map { "$_=$args{$_}" } keys %args;
$implicit="/" if($tags{$name}{empty});
push @stack,$name unless $implicit;
$clean.="<$name";
$clean.=" $cleanargs" if $cleanargs;
$clean.=" $implicit" if $implicit;
$clean.=">";
}
}
}
}
}
my $entry;
while($entry=pop @stack) { $clean.="</$entry>" }
return $clean;
}I think it'd be a better idea to have some kind of load-balancing/distributed server cluster approach, like what dmpk2k was working on for Wakaba.
> Also, I'd like to ask exactly how Kareha does automatically generates deletion passwords. I'm guessing it's similar if not identical to how it creates ID session codes with a user's IP.
Actually, no, the Javascript just strings some random numbers and letters together.
> Because it's one of the two requirements for creating a new thread, and it's a lot more important to have a well-defined topic than to fill in your name.
But the body text is even more important, and that goes at the bottom. So I dunno.
>It's more convenient if you want to start a new thread, but for those who don't it's one more form to have to scroll by.
Would it maybe make sense to make a separate thread creation page?
I fixed the Javascript a bit, and uploaded it for these boards. Try shift-reloading to get the new code, and see if cookies work better now that I'm not using cargo-cult code.
So, I made the All threads page a lot fancier. Might need some shift-reloading to get the proper CSS.
Is this about done, besides the admin bit? I'm getting a bit tired and distractions are looming to the left and right.
I have always found that it's more difficult than one would think to implement features that will measure "popularity" in a satisfying way that isn't open to abuse in one way or another.
Your browser momentarily regressed to an old bug and then got better? Who can tell?
Running in pure perl would be ideal, portability-wise, but in practice implementing a JPEG loader and saver from scratch in Perl is both a lot more work than anyone wants to do, and the result will also be too slow.
As was already stated, making a statically linked executable lets you distribute pre-compiled binaries that people can just upload along with the script.
I've been meaning to change some of the defaults away from Futaba-style to saner behaviours. Any suggestions for what to change are welcome. So far:
>>178
There will always be pranksters around. This is probably a good example on what matters to trust tripcoders more than anonymous contributors.
Trivia: Here is a list of 2ch kopipe to fool people into using fusianasan:
http://ansitu.xrea.jp/guidance/?fusianasan
> Put the Entire thread link on the top of the thread, not the bottom.
Well, since the current update has removed almost all links to entire threads, I won't do THAT, but I guess a Last 50 link could be snuck in somewhere... Maybe the thread title should be an l50 link?
>>321
Wait, why should l50 links be indexed/cached? IMO the only links that should be on Google at all are main pages and "entire thread" links.
Some final points (I hope) before the whole thing is wrapped up:
> statically linked executable
I have to disagree with this. It should run in perl too.
Text Art's description about auto-linking URLs and >> references is redundant. Not a bad solution with the layout, though (hiding the menu behind "More options..." still bugs me).
I can't reproduce this on Firefox 1.0.4 nor Safari on the Mac, but that ancient Firebird had a similar problem (but even worse).
Anyone else? Try post with a | in your name.
test2. looks good!