mourningdove/cgi-bin/LJ/URI.pm
2026-05-24 01:03:05 +00:00

53 lines
1.7 KiB
Perl

# This code was forked from the LiveJournal project owned and operated
# by Live Journal, Inc. The code has been modified and expanded by
# Dreamwidth Studios, LLC. These files were originally licensed under
# the terms of the license supplied by Live Journal, Inc, which can
# currently be found at:
#
# http://code.livejournal.org/trac/livejournal/browser/trunk/LICENSE-LiveJournal.txt
#
# In accordance with the original license, this code and all its
# modifications are provided under the GNU General Public License.
# A copy of that license can be found in the LICENSE file included as
# part of this distribution.
# This is a module for handling URIs
use strict;
package LJ::URI;
use Apache2::Const qw/ :common REDIRECT HTTP_NOT_MODIFIED
HTTP_MOVED_PERMANENTLY HTTP_MOVED_TEMPORARILY
M_TRACE M_OPTIONS /;
# Takes an Apache $apache_r and a path to BML filename relative to htdocs
sub bml_handler {
my ( $class, $apache_r, $filename ) = @_;
$apache_r->handler("perl-script");
$apache_r->notes->{bml_filename} = "$LJ::HTDOCS/$filename";
$apache_r->push_handlers( PerlHandler => \&Apache::BML::handler );
return OK;
}
# Handle a URI. Returns response if success, undef if not handled
# Takes URI and Apache $apache_r
sub handle {
my ( $class, $uri, $apache_r ) = @_;
return undef unless $uri;
# handle "RPC" URIs
if ( my ($rpc) = $uri =~ m!^.*/__rpc_(\w+)$! ) {
my $bml_handler_path = $LJ::AJAX_URI_MAP{$rpc};
return LJ::URI->bml_handler( $apache_r, $bml_handler_path )
if $bml_handler_path;
}
# handle normal URI mappings -- removed, unused
# handle URI redirects -- removed, also unused
return undef;
}
1;