[sword-svn] r2428 - trunk/utilities/diatheke/tcl

chrislit at crosswire.org chrislit at crosswire.org
Thu Jun 4 00:07:15 MST 2009


Author: chrislit
Date: 2009-06-04 00:07:15 -0700 (Thu, 04 Jun 2009)
New Revision: 2428

Modified:
   trunk/utilities/diatheke/tcl/makebooklist.pl
Log:
added all necessary code to write biblebot-diatheke-books.tcl from the current Sword installation


Modified: trunk/utilities/diatheke/tcl/makebooklist.pl
===================================================================
--- trunk/utilities/diatheke/tcl/makebooklist.pl	2009-06-04 06:52:51 UTC (rev 2427)
+++ trunk/utilities/diatheke/tcl/makebooklist.pl	2009-06-04 07:07:15 UTC (rev 2428)
@@ -0,0 +1,109 @@
+#!/bin/perl
+
+# Diatheke/Tcl 5.0 by Chris Little <chrislit at crosswire.org>
+
+# Copyright 1999-2009 CrossWire Bible Society (http://www.crosswire.org)
+# 	CrossWire Bible Society
+# 	P. O. Box 2528
+# 	Tempe, AZ  85280-2528
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation version 2.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
+# GNU General Public License for more details.
+
+ at booklist = `diatheke -b system -k modulelist`;
+
+open TCL, ">:utf8", "biblebot-diatheke-books.tcl";
+
+print TCL "# Diatheke/Tcl 5.0 by Chris Little <chrislit at crosswire.org>\n\n# Copyright 1999-2009 CrossWire Bible Society (http://www.crosswire.org)\n#	CrossWire Bible Society\n#	P. O. Box 2528\n#	Tempe, AZ  85280-2528\n#\n# This program is free software; you can redistribute it and/or modify it\n# under the terms of the GNU General Public License as published by the\n# Free Software Foundation version 2.\n#\n# This program is distributed in the hope that it will be useful, but\n# WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU General Public License for more details.\n\n";
+
+foreach $line (@booklist) {
+    $line =~ s/[\r\n]+$//;
+    if ($line =~ /^Biblical Texts:/) {
+	$mode = "bible";
+    }
+    elsif ($line =~ /^Commentaries:/) {
+	$mode = "comm";
+    }
+    elsif ($line =~ /^Dictionaries:/) {
+	$mode = "dict";
+    }
+    elsif ($line =~ /^Generic books:/) {
+	$mode = "genbook";
+    }
+    elsif ($line =~ /^([^:]+) : (.+)/) {
+	$bookid = $1;
+	$bookdesc = $2;
+	if ($mode eq "bible") {
+	    print TCL "bind pub - !$bookid setver_$bookid\nproc setver_$bookid {nick uhost hand channel arg} {\n    global botnick chan bibver\n    set bibver $bookid\n    pub_lookup \$nick \$uhost \$hand \$channel \$arg\n}\n\n";
+	    print TCL "bind pub - !s$bookid setver_s$bookid\nproc setver_s$bookid {nick uhost hand channel arg} {\n    global botnick chan bibver\n    set bibver $bookid\n    pub_lookups \$nick \$uhost \$hand \$channel \$arg\n}\n\n";
+
+	    if ($count_bible != 0) {
+		$putservtext_bible .= ", ";
+	    }
+	    if (($count_bible != 0) && ($count_bible % 5 == 0)) {
+		$putservtext_bible .= "\n";
+	    }
+	    $count_bible++;
+	    $putservtext_bible .= "$bookdesc (!$bookid)";
+	}
+	elsif ($mode eq "comm") {
+	    print TCL "bind pub - !$bookid setver_$bookid\nproc setver_$bookid {nick uhost hand channel arg} {\n    global botnick chan bibver\n    set bibver $bookid\n    pub_lookupc \$nick \$uhost \$hand \$channel \$arg\n}\n\n";
+
+	    if ($count_comm != 0) {
+		$putservtext_comm .= ", ";
+	    }
+	    if (($count_comm != 0) && ($count_comm % 5 == 0)) {
+		$putservtext_comm .= "\n";
+	    }
+	    $count_comm++;
+	    $putservtext_comm .= "$bookdesc (!$bookid)";
+	}
+	elsif ($mode eq "dict") {
+	    print TCL "bind pub - !$bookid setver_$bookid\nproc setver_$bookid {nick uhost hand channel arg} {\n    global botnick chan bibver\n    set bibver $bookid\n    pub_lookupd \$nick \$uhost \$hand \$channel \$arg\n}\n\n";
+
+	    if ($count_dict != 0) {
+		$putservtext_dict .= ", ";
+	    }
+	    if (($count_dict != 0) && ($count_dict % 5 == 0)) {
+		$putservtext_dict .= "\n";
+	    }
+	    $count_dict++;
+	    $putservtext_dict .= "$bookdesc (!$bookid)";
+	}
+	elsif ($mode eq "genbook") {
+	    # do nothing until diatheke supports genbooks
+	}
+    }
+}
+
+$putservtext_bible = "\n$putservtext_bible";
+$putservtext_bible =~ s/\n/\"\n\tputserv \"NOTICE \$nick :/gs;
+$putservtext_bible =~ s/, \"/,\"/gs;
+$putservtext_bible .= "\"\n";
+$putservtext_bible = "\tputserv \"NOTICE \$nick :Bibles ($count_bible):$putservtext_bible";
+$putservtext_bible = "proc printBibles \{nick\} \{\n$putservtext_bible\}\n";
+
+$putservtext_comm = "\n$putservtext_comm";
+$putservtext_comm =~ s/\n/\"\n\tputserv \"NOTICE \$nick :/gs;
+$putservtext_comm =~ s/, \"/,\"/gs;
+$putservtext_comm .= "\"\n";
+$putservtext_comm = "\tputserv \"NOTICE \$nick :Commentaries ($count_comm):$putservtext_comm";
+$putservtext_comm = "proc printComms \{nick\} \{\n$putservtext_comm\}\n";
+
+$putservtext_dict = "\n$putservtext_dict";
+$putservtext_dict =~ s/\n/\"\n\tputserv \"NOTICE \$nick :/gs;
+$putservtext_dict =~ s/, \"/,\"/gs;
+$putservtext_dict .= "\"\n";
+$putservtext_dict = "\tputserv \"NOTICE \$nick :Dictionaries, Lexicons, & Daily Devotionals ($count_dict):$putservtext_dict";
+$putservtext_dict = "proc printDicts \{nick\} \{\n$putservtext_dict\}\n";
+
+print TCL $putservtext_bible;
+print TCL $putservtext_comm;
+print TCL $putservtext_dict;
+




More information about the sword-cvs mailing list