[Slashdotjp-dev 524] CVS update: slashjp/themes/slashcode/tasks

Zurück zum Archiv-Index

Tatsuki SUGIURA sugi****@users*****
2006年 7月 12日 (水) 20:51:52 JST


Index: slashjp/themes/slashcode/tasks/dbsparklines.pl
diff -u slashjp/themes/slashcode/tasks/dbsparklines.pl:1.1.2.1 slashjp/themes/slashcode/tasks/dbsparklines.pl:removed
--- slashjp/themes/slashcode/tasks/dbsparklines.pl:1.1.2.1	Wed Jul 12 20:42:09 2006
+++ slashjp/themes/slashcode/tasks/dbsparklines.pl	Wed Jul 12 20:51:52 2006
@@ -1,91 +0,0 @@
-#!/usr/bin/perl -w
-# This code is a part of Slash, and is released under the GPL.
-# Copyright 1997-2005 by Open Source Technology Group. See README
-# and COPYING for more information, or see http://slashcode.com/.
-# $Id: dbsparklines.pl,v 1.1.2.1 2006/07/12 11:42:09 sugi Exp $
-
-use Slash::Constants ':slashd';
-
-use strict;
-use Time::HiRes;
-
-use vars qw( %task $me );
-
-$task{$me}{timespec} = '0-59 * * * *';
-$task{$me}{timespec_panic_1} = '';
-$task{$me}{fork} = SLASHD_NOWAIT;
-$task{$me}{code} = sub {
-	my($virtual_user, $constants, $slashdb, $user, $info, $gSkin) = @_;
-
-	return "" if !$constants->{dbsparklines_disp};
-
-	my @vus = $slashdb->getDBVUsForType("reader");
-	my $secsback = $constants->{dbsparklines_secsback} || 30*60;
-
-	for my $vu (@vus) {
-		my $dbid = get_reader_dbid($slashdb, $vu);
-		my $now = $slashdb->getTime();
-
-		my $resolution = $secsback / $constants->{dbsparklines_width};
-		my $bog_ar = $slashdb->getSparklineData($dbid, "query_bog_secs", $now,
-			$resolution, $secsback,     $constants->{dbsparklines_ymax} ,  1);
-		my $lag_ar = $slashdb->getSparklineData($dbid, "slave_lag_secs", $now,
-			$resolution, $secsback, abs($constants->{dbsparklines_ymin}), -1);
-
-		# The "inverted" versions of bog_ar and lag_ar are
-		# this:  wherever the original is defined, the
-		# ground is undef;  where the original is undef, the
-		# ground is the maximum value (positive for bog,
-		# negative for lag).
-		my $bog_ground_ar = invert_ar($bog_ar, $constants->{dbsparklines_ymax});
-		my $lag_ground_ar = invert_ar($lag_ar, $constants->{dbsparklines_ymin});
-
-slashdLog("bog_ar=$#$bog_ar lag_ar=$#$lag_ar bog_ground_ar=$#$bog_ground_ar lag_ground_ar=$#$lag_ground_ar");
-my $bar = "bar:"; for (@$bog_ar) { $bar .= " " . (defined($_) ? sprintf("%.2f", $_) : "U") }
-slashdLog($bar);
-my $lar = "lar:"; for (@$lag_ar) { $lar .= " " . (defined($_) ? sprintf("%.2f", $_) : "U") }
-slashdLog($lar);
-my $bgar = "bgar:"; for (@$bog_ground_ar) { $bgar .= " " . (defined($_) ? sprintf("%.2f", $_) : "U") }
-slashdLog($bgar); # 2nd
-my $lgar = "lgar:"; for (@$lag_ground_ar) { $lgar .= " " . (defined($_) ? sprintf("%.2f", $_) : "U") }
-slashdLog($lgar); # 3rd
-
-		my $png = slashDisplay('dbsparkline',
-			{ alldata => [ $bog_ar, $lag_ar, $bog_ground_ar, $lag_ground_ar ] },
-			{ Return => 1, Nocomm => 1 });
-
-slashdLog("vu=$vu length(png)=" . length($png) . " size(bog_ar)=" . scalar(@$bog_ar) . " size(lag_ar)=" . scalar(@$lag_ar));
-		my $dir = catdir($constants->{basedir}, "images/dbsparklines");
-		mkpath($dir, 0, 0775) unless -e $dir;
-		my $filename = catfile($dir,
-			"${vu}_$constants->{dbsparklines_pngsuffix}.png");
-slashdLog("filename='$filename'");
-		save2file($filename, $png);
-	}
-};
-
-# This should be in Static/MySQL.pm
-{ # cheap closure cache
-my $reader_dbid;
-sub get_reader_dbid {
-	my($slashdb, $vu) = @_;
-	if (!$reader_dbid) {
-		$reader_dbid = $slashdb->sqlSelectAllKeyValue(
-			"virtual_user, id",
-			"dbs",
-			"type='reader'");
-	}
-	return $reader_dbid->{$vu};
-}
-} # end closure
-
-sub invert_ar {
-	my($ar, $subst) = @_;
-	my @inverted = (
-		map { defined($_) ? undef : $subst } @$ar
-	);
-	return \@inverted;
-}
-
-1;
-
Index: slashjp/themes/slashcode/tasks/html_update.pl
diff -u slashjp/themes/slashcode/tasks/html_update.pl:1.1.2.1 slashjp/themes/slashcode/tasks/html_update.pl:removed
--- slashjp/themes/slashcode/tasks/html_update.pl:1.1.2.1	Wed Jul 12 20:42:09 2006
+++ slashjp/themes/slashcode/tasks/html_update.pl	Wed Jul 12 20:51:52 2006
@@ -1,298 +0,0 @@
-#!/usr/bin/perl -w
-# This code is a part of Slash, and is released under the GPL.
-# Copyright 1997-2005 by Open Source Technology Group. See README
-# and COPYING for more information, or see http://slashcode.com/.
-# $Id: html_update.pl,v 1.1.2.1 2006/07/12 11:42:09 sugi Exp $
-
-use strict;
-
-use Time::HiRes;
-use Slash::Constants ':slashd';
-
-use vars qw( %task $me );
-$!=0;
-# only run from runtask
-$task{$me}{standalone} = 1;
-$task{$me}{fork} = SLASHD_NOWAIT;
-$task{$me}{code} = sub {
-	my($virtual_user, $constants, $slashdb, $user, $info, $gSkin) = @_;
-
-	# XXX use reader?  do we care about the small atomicity problem,
-	# which is exacerbated by using a reader?
-	my $reader = getObject('Slash::DB', { db_type => 'reader' });
-
-	# stories, users bios/footers, authors bios ... what else?
-	my %sets = (
-		comments  => {
-			table	=> 'comment_text',
-			id	=> 'cid',
-			fields	=> ['comment'],
-		},
-		usersig   => {
-			table	=> 'users',
-			id	=> 'uid',
-			fields	=> ['sig'],
-		},
-		userbio   => {
-			table	=> 'users_info',
-			id	=> 'uid',
-			fields	=> ['bio'],
-		},
-		userspace => {
-			table	=> 'users_prefs',
-			id	=> 'uid',
-			fields	=> ['mylinks'],
-		},
-		stories   => {
-			table	=> 'story_text',
-			id	=> 'stoid',
-			fields	=> ['title', 'introtext', 'bodytext', 'relatedtext'],
-		},
-	);
-
-	# runtask -u slashusername -o only_set=stories,only_field=relatedtext html_update
-	# runtask -u slashusername -o only_set=stories,use_old=1 html_update
-	my $only_set   = $constants->{task_options}{only_set}   || '';
-	my $only_field = $constants->{task_options}{only_field} || '';
-	my $use_old    = $constants->{task_options}{use_old} || $only_field ? 1 : 0;
-
-	my $update_num = 10_000;
-
-	my $admindb = getObject('Slash::Admin');
-	my %authors;
-
-	for my $name (reverse sort keys %sets) {
-		next if $only_set && $only_set ne $name;
-
-		my $set = $sets{$name};
-
-		# max is last thingy saved under "old" spec, (needs to be figured out manually)
-		# lst is last thingy updated with this task
-		($set->{max}) = $slashdb->getVar("html_update_$set->{table}_max", 'value', 1);
-		($set->{lst}) = $slashdb->getVar("html_update_$set->{table}_lst", 'value', 1);
-		$set->{lst} = 0 if $use_old;
-
-		unless ($set->{max}) {
-			($set->{max}) = $slashdb->sqlSelect("MAX($set->{id})", $set->{table});
-			$slashdb->setVar("html_update_$set->{table}_max", $set->{max});
-		}
-
-		# old table is the previous data itself
-		$set->{table_old} = $set->{table} . '_html_update_old';
-		# beware: this won't work for comments for Slashdot since we have it in two tables
-		if ($use_old) {
-			$set->{table} = $set->{table_old};
-		}
-
-		slashdLog("Attempting to update HTML for $name $set->{lst} through $set->{max}");
-		while ($set->{lst} < $set->{max}) {
-			my $next = $set->{lst} + 1;
-			my $max = $set->{lst} + $update_num;
-			$max = $set->{max} if $max > $set->{max};
-
-			slashdLog("Updating HTML for $name $next through $max");
-
-			my $cols = join ',', $set->{id}, @{$set->{fields}};
-			my $fetch = $reader->sqlSelectAllHashref(
-				$set->{id}, $cols, $set->{table},
-				"$set->{id} BETWEEN $next AND $max"
-			);
-
-			my $keycount = scalar keys %$fetch;
-			if (!$keycount) {
-				slashdLog("No records for $name");
-				$set->{lst} = $max;
-				next;  # not last; could be gap
-			} else {
-				slashdLog("Processing $keycount records for $name");
-			}
-
-			my $admin = $name eq 'stories' ? 1 : 0;
-
-			for my $id (sort { $a <=> $b } keys %$fetch) {
-				my(%oldhtml, %html, $ok);
-				my $start_time = Time::HiRes::time;
-				for my $field (@{$set->{fields}}) {
-					next if $only_field && $only_field ne $field;
-
-					if ($name eq 'stories' && $field eq 'relatedtext') {
-						$oldhtml{$field} = $fetch->{$id}{$field};
-						$ok = 1 if $only_field && $only_field eq $field;
-						next;
-					}
-
-					if (length $fetch->{$id}{$field}) {
-						$oldhtml{$field} = $fetch->{$id}{$field};
-						$html{$field}    = _html_update_fix($fetch->{$id}{$field}, $field, 0, $admin);
-						$ok = 1 if $oldhtml{$field} ne $html{$field};
-					}
-				}
-				next unless $ok;
-
-				if ($name eq 'stories' && (!$only_field || $only_field eq 'relatedtext')) {
-					my $text = "$html{title} $html{introtext} $html{bodytext}";
-					my $tids = $slashdb->getTopiclistFromChosen($slashdb->getStoryTopicsChosen($id));
-					my $uid = $slashdb->getStory($id, 'uid');
-					my $nick = $authors{$uid} ||= $reader->getUser($uid, 'nickname');
-					$html{relatedtext} = $admindb->relatedLinks(
-						$text, $tids, $nick, $uid
-					);
-				}
-
-			# /. hack
-			unless ($name eq 'comments' && $id < 13_100_000) {
-				$slashdb->sqlInsert($set->{table_old}, {
-					$set->{id} => $id,
-					%oldhtml
-				}, { ignore => 1 }) unless $use_old;
-			}
-
-				if ($name eq 'stories') {
-					$html{is_dirty} = 1;
-					$html{-last_update} = 'last_update';
-					my $success = $slashdb->setStory($id, \%html);
-					if (!$success) {
-						slashdLog("setStory failed for id=$id");
-					}
-				} else {
-					if ($name =~ /^user/) {
-						$slashdb->setUser_delete_memcached($id);
-					}
-					my $rows = $slashdb->sqlUpdate($set->{table}, \%html,
-						"$set->{id} = $id"
-					);
-					if (!$rows) {
-						slashdLog("update failed for $set->{table} $set->{id}=$id");
-					}
-				}
-				my $duration = Time::HiRes::time - $start_time;
-				my $sleep_time = $duration * ($constants->{html_update_sleepfrac} || 0);
-				Time::HiRes::sleep($sleep_time) if $sleep_time > 0.00001;
-
-			} continue {
-				$set->{lst} = $id;
-				if ($set->{lst} =~ /000$/) {
-					slashdLog("Updated HTML for $name through $set->{lst}");
-				}
-			}
-
-			$slashdb->setVar("html_update_$set->{table}_lst", $set->{lst})
-				if $set->{lst} ne $constants->{"html_update_$set->{table}_lst"}
-				&& !$use_old;
-
-			slashdLog("Done updating HTML for $name $next through $max");
-
-			sleep(2);
-		}
-	}
-};
-
-sub _html_update_fix {
-	my($html, $field, $strip, $admin) = @_;
-
-	my $limit = 0;
-	if ($field eq 'bio') {
-		$limit = getCurrentStatic('users_bio_length') || 1024;
-	} elsif ($field eq 'sig') {
-		$limit = 120;
-	} elsif ($field eq 'mylinks') {
-		$limit = 255;
-	}
-
-	$html = chopEntity($html, $limit) if $limit;
-
-	# we can strip page-widening stuff, but for now, we don't,
-	# as we have no solution in CSS to page-widening at this point
-	$html =~ s!<nobr>(.|&#?\w+;)<wbr></nobr> !$1!gi if $strip;
-
-	if ($admin) {
-		local $Slash::Utility::Data::approveTag::admin = 1;
-		$html = parseSlashizedLinks($html);
-		$html = cleanSlashTags($html);
-		$html = strip_html($html);
-		$html = slashizeLinks($html);
-		$html = balanceTags($html);
-	} else {
-		$html = balanceTags(strip_html($html), { deep_nesting => 2, length => $limit });
-	}
-
-	if ($html && $field =~ /^(?:sig|bio|comment)$/) {
-		$html = addDomainTags($html);
-	}
-
-	return $html;
-}
-
-
-1;
-
-__END__
-
-DROP TABLE IF EXISTS comment_text_html_update_old;
-CREATE TABLE comment_text_html_update_old (
-	cid mediumint UNSIGNED NOT NULL,
-	comment text NOT NULL,
-	PRIMARY KEY (cid)
-);
-
-DROP TABLE IF EXISTS users_html_update_old;
-CREATE TABLE users_html_update_old (
-	uid mediumint UNSIGNED NOT NULL,
-	sig varchar(200),
-	PRIMARY KEY (uid)
-);
-
-DROP TABLE IF EXISTS users_info_html_update_old;
-CREATE TABLE users_info_html_update_old (
-	uid mediumint UNSIGNED NOT NULL,
-	bio text,
-	PRIMARY KEY (uid)
-);
-
-DROP TABLE IF EXISTS users_prefs_html_update_old;
-CREATE TABLE users_prefs_html_update_old (
-	uid mediumint UNSIGNED NOT NULL,
-	mylinks varchar(255) DEFAULT '' NOT NULL,
-	PRIMARY KEY (uid)
-);
-
-DROP TABLE IF EXISTS story_text_html_update_old;
-CREATE TABLE story_text_html_update_old (
-	stoid MEDIUMINT UNSIGNED NOT NULL,
-	title VARCHAR(100) DEFAULT '' NOT NULL,
-	introtext text,
-	bodytext text,
-	relatedtext text,
-	PRIMARY KEY (stoid)
-);
-
-
-
-INSERT INTO vars VALUES ('html_update_comment_text_max', 0, 'last posted under old spec');
-INSERT INTO vars VALUES ('html_update_comment_text_lst', 0, 'last comment processed by html_update');
-INSERT INTO vars VALUES ('html_update_users_max',        0, 'last posted under old spec');
-INSERT INTO vars VALUES ('html_update_users_lst',        0, 'last processed by html_update');
-INSERT INTO vars VALUES ('html_update_users_info_max',   0, 'last posted under old spec');
-INSERT INTO vars VALUES ('html_update_users_info_lst',   0, 'last processed by html_update');
-INSERT INTO vars VALUES ('html_update_users_prefs_max',  0, 'last posted under old spec');
-INSERT INTO vars VALUES ('html_update_users_prefs_lst',  0, 'last processed by html_update');
-INSERT INTO vars VALUES ('html_update_story_text_max',   0, 'last posted under old spec');
-INSERT INTO vars VALUES ('html_update_story_text_lst',   0, 'last processed by html_update');
-
-INSERT INTO vars VALUES ('html_update_sleepfrac',        '0.0', 'How much to sleep while processing (0.0 = as fast as possible, 1.0 = 50% duty cycle)');
-
-
-
-#### in case you need to revert:
-#REPLACE INTO vars VALUES ('html_update_comment_text_lst', 0, 'last processed by html_update');
-#REPLACE INTO vars VALUES ('html_update_users_lst',        0, 'last processed by html_update');
-#REPLACE INTO vars VALUES ('html_update_users_info_lst',   0, 'last processed by html_update');
-#REPLACE INTO vars VALUES ('html_update_users_prefs_lst',  0, 'last processed by html_update');
-#REPLACE INTO vars VALUES ('html_update_story_text_lst',   0, 'last processed by html_update');
-
-#UPDATE story_text   AS good, story_text_html_update_old   AS old SET good.title = old.title, good.introtext = old.introtext, good.bodytext = old.bodytext, good.relatedtext = old.relatedtext WHERE good.stoid = old.stoid;
-#UPDATE users        AS good, users_html_update_old        AS old SET good.sig = old.sig         WHERE good.uid = old.uid;
-#UPDATE users_info   AS good, users_info_html_update_old   AS old SET good.bio = old.bio         WHERE good.uid = old.uid;
-#
-UPDATE users_prefs  AS good, users_prefs_html_update_old  AS old SET good.mylinks = old.mylinks WHERE good.uid = old.uid;
-#UPDATE comment_text AS good, comment_text_html_update_old AS old SET good.comment = old.comment WHERE good.uid = old.uid;


Slashdotjp-dev メーリングリストの案内
Zurück zum Archiv-Index