Posted on 06/19/2002 4:43:21 PM PDT by John Robinson
Many familar with USENET News may have heard of the killfile, or of killfiling someone. A killfile is simply a list of names you wish to ignore. Any posts with a matching name in the killfile are discarded, unread.
The Focus software will have the ability to killfile posters, or in other words, the often requested "Ignore" feature.
However, Focus killfiles will be much more.
First, a little info about how the posting software works. When a post is made, a number of records are placed onto a list. This list is the source data for the Self-Search routine among other things. Each record is associated with a comment, but a comment can have any number of such records. The record associates a user with a comment, and also notes how the association is made. This association field is similar to what you might see in a mail program. There are 'From' and 'To' associations, as well as 'CC' and 'BCC' associations. Each mean something different, but all associate a user with a comment.
FROM - The user who posted the comment.
TO - A user mentioned in the "To:" field.
CC - This will be reserved for bumps. It's currently not used.
BCC - This will be used for concealed bumps. Have a long bump list? Use BCC and conserve screen real estate!
The Focus version of the killfile will operate on these associations. This is the "What". You will be able to ignore all bumps (CCs) 'in some particular context'.
The "Context" is the magic, it defines when you ignore "What".
Want to ignore bumps? "What" = "bumps", "Context" = "all".
Want to ignore all posts involving you on a particular thread? "What" = anything, "Context" = some thread.
Want to ignore all posts from some user? "What" = anything, "Context" = some user
Or just their bumps? "What" = "bumps", "Context" = some user.
BUT WAIT, THERE'S MORE ...
Not only will you be able to describe what you want to ignore, you will also be able to describe other actions as well. An "Action" is one of: Ignore, Deny, Allow, or Promote.
IGNORE -- silently discard the comment from your self-search
DENY -- informs the user that you do not wish to receive such-and-such.
ALLOW -- accepts the comment into your self-search.
PROMOTE -- accepts and flags the comment. Want special notice of anything JohnRob bumps to you? "What" = "Bump"; "Context" = "user John Robinson"; "Action" = "Promote"
You can specifically "ALLOW" comments because you can set defaults. You can setup your defaults to never allow bumps from anyone. And then further instruct the software to allow bumps from JohnRob. The more specific defined rule wins.
Now, I should note that IGNORED or DENIED comments are still accessible. It will take an extra click to get to these, but that will not be a problem because you didn't want to see them in the first place.
Additionally, you will be able to delete individual comments from your Self-Search, or even wipe the slate completely.
These features are not yet ready, I have some footwork to do before I go there, but this is what is in store for you.
Of related interest, we will have the ability to WATCH various things. A separate list will allow us to know, via automatic BCC bump, any new thread posted to your favorite forum. The watch list is further out yet, but will be a reality as time permits.
Nice of you to talk to me:>)
We gave him a hard time!
That would be excellent. If one posts an article that gets a lot of response you lose sight of pings that you would like to see!
A lot of time is wasted just trying to find replys to you that you have not responded to!
There is a comment table, a comment_user table with the comment-to-user associations, and a killfile table.
create table killfile ( kf_rule_id int unsigned not null auto_increment primary key, kf_owner_uid mediumint unsigned not null, kf_action enum('ignore', 'deny', 'dissuade', 'allow', 'promote') not null, kf_what enum('all', 'from', 'to', 'replied', 'cc', bcc') not null, kf_context enum('user', 'forum', 'thread', 'comment') not null, kf_context_id int unsigned not null, index owner (kf_owner_uid, kf_context, kf_context_id) );When a post is made, and the program is writing the comment-to-user table, it will consult the kf_rule table where kf_owner_uid = the target user, and kf_context will be, in turn, the current thread, the current forum, the current user, etc.
Mind you none of this lives as real code just yet. It's still on my scratch book for the most part.
sub get_reply { my $reply = {}; $reply->{text} = $Focus::r->cgi->param('reply'); if ($reply->{text} =~ m#<\w+(?:.|\n)*>#i) { # MAGIC $reply->{text} = html_filter($reply->{text}); } else { $reply->{text} = html_format($reply->{text}); } my $l = new Focus::UserLookup; $l->lookup($Focus::r->cgi->param('name')); $reply->{rcpt_string} = $l->lookup_string; $reply->{rcpt_list} = $l->lookup_list; if ($reply->{text} !~ /\S/) { push @{$reply->{errors}}, "Enter a reply."; } push @{$reply->{errors}}, map { $_->{text} } $l->errors if $l->errors; $reply; }Scared ya, didn't I?
Doesn't look like COBOL or FORTRAN!
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.