kareila: (Default)
kareila ([personal profile] kareila) wrote in [site community profile] changelog2009-10-01 07:43 pm

[dw-free] Code Refactoring

[commit: http://hg.dwscoalition.org/dw-free/rev/2732c4614ced]

http://bugs.dwscoalition.org/show_bug.cgi?id=1726

Rename ljlinks.pl to LJ/Links.pm.

Patch by [personal profile] szabgab.

Files modified:
  • cgi-bin/LJ/Links.pm
  • cgi-bin/ljlinks.pl
  • cgi-bin/modperl_subs.pl
--------------------------------------------------------------------------------
diff -r 28e0103cbb09 -r 2732c4614ced cgi-bin/LJ/Links.pm
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cgi-bin/LJ/Links.pm	Thu Oct 01 14:43:06 2009 -0500
@@ -0,0 +1,149 @@
+#!/usr/bin/perl
+
+#
+# Functions for lists of links created by users for display in their journals
+#
+
+use strict;
+
+package LJ::Links;
+
+# linkobj structure:
+#
+# $linkobj = [
+#    { 'title'     => 'link title',
+#      'url'       => 'http://www.somesite.com',
+#      'children'  => [ ... ],
+#    },
+#    { ... },
+#    { ... },
+# ];
+
+sub load_linkobj
+{
+    my ($u, $use_master) = @_;
+    return unless LJ::isu($u);
+
+    # check memcache for linkobj
+    my $memkey = [$u->{'userid'}, "linkobj:$u->{'userid'}"];
+    my $linkobj = LJ::MemCache::get($memkey);
+    return $linkobj if defined $linkobj;
+
+    # didn't find anything in memcache
+    $linkobj = [];
+
+    {
+        # not in memcache, need to build one from db
+        my $db = $use_master ? LJ::get_cluster_def_reader($u) : LJ::get_cluster_reader($u);
+
+        local $" = ",";
+        my $sth = $db->prepare("SELECT ordernum, parentnum, title, url " .
+                               "FROM links WHERE journalid=?");
+        $sth->execute($u->{'userid'});
+        push @$linkobj, $_ while $_ = $sth->fetchrow_hashref;
+    }
+
+    # sort in perl-space
+    @$linkobj = sort { $a->{'ordernum'} <=> $b->{'ordernum'} } @$linkobj;
+
+    # fix up the data structure
+    foreach (@$linkobj) {
+
+        # TODO: build child relationships
+        #       and store in $_->{'children'}
+
+        # ordernum/parentnum are only exposed via the 
+        # array structure, delete them here
+        delete $_->{'ordernum'};
+        delete $_->{'parentnum'};
+    }
+
+    # set linkobj in memcache
+    LJ::MemCache::set($memkey, $linkobj);
+
+    return $linkobj;
+}
+
+sub save_linkobj
+{
+    my ($u, $linkobj) = @_;
+    return undef unless LJ::isu($u) && ref $linkobj eq 'ARRAY' && $u->writer;
+
+    # delete old links, we'll rebuild them shortly
+    $u->do("DELETE FROM links WHERE journalid=?", undef, $u->{'userid'});
+
+    # only save allowed number of links
+    my $numlinks = @$linkobj;
+    my $caplinks = LJ::get_cap($u, "userlinks");
+    $numlinks = $caplinks if $numlinks > $caplinks;
+
+    # build insert query
+    my (@bind, @vals);
+    foreach my $ct (1..$numlinks) {
+        my $it = $linkobj->[$ct-1];
+
+        # journalid, ordernum, parentnum, url, title
+        push @bind, "(?,?,?,?,?)";
+        push @vals, ($u->{'userid'}, $ct, 0, $it->{'url'}, $it->{'title'});
+    }
+
+    # invalidate memcache
+    my $memkey = [$u->{'userid'}, "linkobj:$u->{'userid'}"];
+    LJ::MemCache::delete($memkey);
+
+    # insert into database
+    {
+        local $" = ",";
+        return $u->do("INSERT INTO links (journalid, ordernum, parentnum, url, title) " .
+                      "VALUES @bind", undef, @vals);
+    }
+}
+
+sub make_linkobj_from_form
+{
+    my ($u, $post) = @_;
+    return unless LJ::isu($u) && ref $post eq 'HASH';
+
+    my $linkobj = [];
+
+    # remove leading and trailing spaces
+    my $stripspaces = sub {
+        my $str = shift;
+        $str =~ s/^\s*//;
+        $str =~ s/\s*$//;
+        return $str;
+    };
+
+    # find number of links allowed
+    my $numlinks = $post->{'numlinks'};
+    my $caplinks = LJ::get_cap($u, "userlinks");
+    $numlinks = $caplinks if $numlinks > $caplinks;
+
+    foreach my $num (sort { $post->{"link_${a}_ordernum"} <=>
+                            $post->{"link_${b}_ordernum"} } (1..$numlinks)) {
+
+        # title is required
+        my $title = $post->{"link_${num}_title"};
+        $title = $stripspaces->($title);
+        next unless $title;
+
+        my $url = $post->{"link_${num}_url"};
+        $url = $stripspaces->($url);
+
+        # smartly add http:// to url unless they are just inserting a blank line
+        if ($url && $title ne '-') {
+            $url = LJ::CleanHTML::canonical_url($url);
+        }
+
+        # build link object element
+        $post->{"link_${num}_url"} = $url;
+        push @$linkobj, { 'title' => $title, 'url' => $url };
+
+        # TODO: build child relationships
+        #       push @{$linkobj->[$parentnum-1]->{'children'}}, $myself
+    }
+
+    return $linkobj;
+}
+
+1;
diff -r 28e0103cbb09 -r 2732c4614ced cgi-bin/ljlinks.pl
--- a/cgi-bin/ljlinks.pl	Thu Oct 01 08:25:28 2009 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +0,0 @@
-#!/usr/bin/perl
-
-#
-# Functions for lists of links created by users for display in their journals
-#
-
-use strict;
-
-package LJ::Links;
-
-# linkobj structure:
-#
-# $linkobj = [
-#    { 'title'     => 'link title',
-#      'url'       => 'http://www.somesite.com',
-#      'children'  => [ ... ],
-#    },
-#    { ... },
-#    { ... },
-# ];
-
-sub load_linkobj
-{
-    my ($u, $use_master) = @_;
-    return unless LJ::isu($u);
-
-    # check memcache for linkobj
-    my $memkey = [$u->{'userid'}, "linkobj:$u->{'userid'}"];
-    my $linkobj = LJ::MemCache::get($memkey);
-    return $linkobj if defined $linkobj;
-
-    # didn't find anything in memcache
-    $linkobj = [];
-
-    {
-        # not in memcache, need to build one from db
-        my $db = $use_master ? LJ::get_cluster_def_reader($u) : LJ::get_cluster_reader($u);
-
-        local $" = ",";
-        my $sth = $db->prepare("SELECT ordernum, parentnum, title, url " .
-                               "FROM links WHERE journalid=?");
-        $sth->execute($u->{'userid'});
-        push @$linkobj, $_ while $_ = $sth->fetchrow_hashref;
-    }
-
-    # sort in perl-space
-    @$linkobj = sort { $a->{'ordernum'} <=> $b->{'ordernum'} } @$linkobj;
-
-    # fix up the data structure
-    foreach (@$linkobj) {
-
-        # TODO: build child relationships
-        #       and store in $_->{'children'}
-
-        # ordernum/parentnum are only exposed via the 
-        # array structure, delete them here
-        delete $_->{'ordernum'};
-        delete $_->{'parentnum'};
-    }
-
-    # set linkobj in memcache
-    LJ::MemCache::set($memkey, $linkobj);
-
-    return $linkobj;
-}
-
-sub save_linkobj
-{
-    my ($u, $linkobj) = @_;
-    return undef unless LJ::isu($u) && ref $linkobj eq 'ARRAY' && $u->writer;
-
-    # delete old links, we'll rebuild them shortly
-    $u->do("DELETE FROM links WHERE journalid=?", undef, $u->{'userid'});
-
-    # only save allowed number of links
-    my $numlinks = @$linkobj;
-    my $caplinks = LJ::get_cap($u, "userlinks");
-    $numlinks = $caplinks if $numlinks > $caplinks;
-
-    # build insert query
-    my (@bind, @vals);
-    foreach my $ct (1..$numlinks) {
-        my $it = $linkobj->[$ct-1];
-
-        # journalid, ordernum, parentnum, url, title
-        push @bind, "(?,?,?,?,?)";
-        push @vals, ($u->{'userid'}, $ct, 0, $it->{'url'}, $it->{'title'});
-    }
-
-    # invalidate memcache
-    my $memkey = [$u->{'userid'}, "linkobj:$u->{'userid'}"];
-    LJ::MemCache::delete($memkey);
-
-    # insert into database
-    {
-        local $" = ",";
-        return $u->do("INSERT INTO links (journalid, ordernum, parentnum, url, title) " .
-                      "VALUES @bind", undef, @vals);
-    }
-}
-
-sub make_linkobj_from_form
-{
-    my ($u, $post) = @_;
-    return unless LJ::isu($u) && ref $post eq 'HASH';
-
-    my $linkobj = [];
-
-    # remove leading and trailing spaces
-    my $stripspaces = sub {
-        my $str = shift;
-        $str =~ s/^\s*//;
-        $str =~ s/\s*$//;
-        return $str;
-    };
-
-    # find number of links allowed
-    my $numlinks = $post->{'numlinks'};
-    my $caplinks = LJ::get_cap($u, "userlinks");
-    $numlinks = $caplinks if $numlinks > $caplinks;
-
-    foreach my $num (sort { $post->{"link_${a}_ordernum"} <=>
-                            $post->{"link_${b}_ordernum"} } (1..$numlinks)) {
-
-        # title is required
-        my $title = $post->{"link_${num}_title"};
-        $title = $stripspaces->($title);
-        next unless $title;
-
-        my $url = $post->{"link_${num}_url"};
-        $url = $stripspaces->($url);
-
-        # smartly add http:// to url unless they are just inserting a blank line
-        if ($url && $title ne '-') {
-            $url = LJ::CleanHTML::canonical_url($url);
-        }
-
-        # build link object element
-        $post->{"link_${num}_url"} = $url;
-        push @$linkobj, { 'title' => $title, 'url' => $url };
-
-        # TODO: build child relationships
-        #       push @{$linkobj->[$parentnum-1]->{'children'}}, $myself
-    }
-
-    return $linkobj;
-}
-
-1;
diff -r 28e0103cbb09 -r 2732c4614ced cgi-bin/modperl_subs.pl
--- a/cgi-bin/modperl_subs.pl	Thu Oct 01 08:25:28 2009 -0500
+++ b/cgi-bin/modperl_subs.pl	Thu Oct 01 14:43:06 2009 -0500
@@ -63,6 +63,7 @@ BEGIN { $LJ::HAVE_DBI_PROFILE = eval "us
 BEGIN { $LJ::HAVE_DBI_PROFILE = eval "use DBI::Profile (); 1;" }
 
 use LJ::Lang;
+use LJ::Links;
 use LJ::Syn;
 require "htmlcontrols.pl";
 require "weblib.pl";
@@ -72,7 +73,6 @@ require "cleanhtml.pl";
 require "cleanhtml.pl";
 require "talklib.pl";
 require "ljfeed.pl";
-require "ljlinks.pl";
 require "emailcheck.pl";
 require "ljmemories.pl";
 require "ljmail.pl";
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org